I messed up. Hiring good programmers is a hard problem, and I failed. A few weeks have passed since the new replacement for the junior developer position started, and it is becoming increasingly obvious to me and the other developers that he falls into the "not everyone can be a programmer" category.

It's not lack of experience - we don't expect a lot of experience for a junior position. But we require programming talent: The ability to quickly grasp and understand abstract concepts, advanced analytical thinking, things like that. I don't know what it is exactly (I'm a developer/manager, not a psychologist), but I think I've learned to recognize it in people after working with them for some time. (Now I just need to work on recognizing it faster -- ideally before hiring them -- but that's another problem.)

If I honestly tell him why I have to let him go, I

  • Criticize him for something that he (probably) cannot change and
  • Basically tell him that I don't believe he will be a good programmer, even if we continue to train him.

For someone who enjoys programming, this must be devastating.

What and how do I tell him? He's a nice guy, hard-working, willing to learn, helpful, etc., and I do feel that I owe him an explanation when terminating his employment.

  • 4
    @Hamlet: German-speaking Europe.
    – user5761
    Commented Sep 15, 2017 at 5:47
  • 4
    Does the employee have a probationary period clause in his hiring contract?
    – user
    Commented Sep 15, 2017 at 9:37
  • 6
    Also, don't forget that employment laws are generally very different in large parts of Europe to what you see in the US, and much advice online seems to be focused on the situation in the US. As such, it may not even apply. Make sure that whichever action you take is within the legal bounds, or the company might very well end up in court.
    – user
    Commented Sep 15, 2017 at 9:41
  • 4
    That study is flawed. I have proposed an edit to the linked answer. Here is the retraction.
    – Nelson
    Commented Sep 20, 2017 at 7:25
  • 3
    I don't think time is the issue here, speaking of my own experiences as a programmer...I'm convinced that there doesn't have to be much talent to be a good software developer, my assuption is that the working environment is lacking some of the things he needs to really get going. How about telling him how you feel about the situation, and ask what you could help than he can start to improve and really deliver?
    – WayneEra
    Commented Nov 6, 2017 at 9:24

8 Answers 8


There are times when giving people the benefit of the doubt is really fostering false hope. But telling someone that they aren't cut out for an entire field is treading on thin ice. Maybe a different branch of the field would be more suitable?

You may be confident in your ability to assess the abilities of others, but you might also be wrong. Experience is a good teacher, and more accurate.

In your link, the authors state that the predictive value of whether someone can be a programmer or not is lower than originally thought. If this guy is "a nice guy, hard-working, willing to learn, helpful, etc.", and he really has his heart set on programming, then perhaps you can tell the truth about what is lacking in his work at your workplace, and suggest further study and maybe interning (?) would benefit him. (I know absolutely nothing about programming, so I don't even know if there are unpaid internships.)

But if you want a more direct answer to your question, probably the kindest approach is to tell him everything that's good about his work (and his person as applies), and really stress it, because once you start in on the negatives, he will not remember much about the positives.

For example,

First, Bob, I want you to know what a pleasure you are to work with. You're hard working, helpful, willing to learn, you respond well to suggestions, (and everything that applies.) But this job requires skills that you don't yet possess, and I'm afraid (etc.)

Again, I want to stress that you have many great qualities that are valuable in the workplace. I do think that you need to get some additional training, though. (if you can be concrete here, it would be great.)

If I can answer any questions you have, please ask.

If he asks you if he's doomed to failure, then answer him honestly from your experience.

I've never had to terminate anyone's employment, so I have no personal experience. But I've had to hand out plenty of bad news, sometimes the worst news anyone has ever had to hear. There are studies about what people actually hear when doing so. Sometimes the best you can hope for is to minimize the pain.

  • 4
    Just note that the articles themselves have been retracted by the original author. It's been over a decade and the bad research is still circulating :)
    – Nelson
    Commented Sep 20, 2017 at 7:28

In my company we had a similar situation once. I was impressed by the neat solution my manager found. She simply transferred the poor guy to Quality Assurance, where he started to excel. Bringing in automation and generally improving processes. He became quite valuable. We had an interdisciplinary team where requirements engineers, designers, programmers and testers all shared an office and were on the same hierarchy level.

My advice is to consider his strengths. Maybe you can find or create a different position and keep the nice, hard-working, helpful guy.

  • I like the solution but wouldn't it mean demoting the employee and him accepting a pay cut?
    – user3114
    Commented Sep 18, 2017 at 11:03
  • 3
    For us QA is on the same hierarchy level as development and I imagine a junior developer roughly earns the same as a good tester? This particular guy pushed the QA in our team forward. Bringing in automation and improving processes. He became quite valuable.
    – Mary Sue
    Commented Sep 18, 2017 at 11:23
  • 1
    @user3114 I would not view QA as a lesser position than a junior coder, especially if automation is involved. I'd not cut his pay.
    – Tony Ennis
    Commented Apr 20, 2018 at 4:05

I used to have a supervisory authority over a large number of employees but luckily it was a government organization and I was not authorised to terminate the job of anyone -- but I understand your problem, because we don't want to derail anybody's career nor demoralize them (especially a young person), and yet you do have a duty to the company not to retain him if he is not the right choice, don't you! I also appreciate your determination not to take the easy route and drop him under false pretences, but to 'bite the bullet' and give him an honest explanation.

So first be sure of your assessment that he lacks the talent to be a good programmer, and also make up your mind whether you have absolutely decided to terminate his empolyment.

If so, there is nothing wrong in being tactfully honest and explaining to him that it's not personal, but in your professional opinion based on your considerable experience, he does not have the talent your company was looking for. You can stress that it is not his attitude, professionalism or commitment at fault, but his lack of 'that something' which makes a good programmer. Having said that, it is not your job to convince him to seek another profession.

Apologize for the inconvenience you caused by hiring him without understanding this problem, and explain that you have no choice to retain him because the company expects you to let an employee go whenever they are found not upto expectations.

You should be aware that the person might still resent your action because it lost him his job: my former 'intermediate boss' was a decent person who broke the news to me gently that he needed to downgrade my job description, which eventually led to my resignation, but I can still not avoid despising him for buckling under pressure from my ferociously hostile 'big boss' who was a political bureaucrat of the worst type, had an irreconcilable clash of personalities with me, and wanted to see me professionally diminished or begone. So despite your kindest approach you are likely to become unpopular with this person, unless you help him find a better job!

However, you can try to make amends by giving the employee a positive letter of recommendation for future employment opportunities. Another practical assistance and courtesy you might extend is to give him a few weeks' notice (after specifying the date of termination) to let him continue in the current employment while he looks for another job.


Just tell the truth, job isn't a joke, if he can't be a good programmer, tell him now that he's young, he won't have time to change his whole life later.

I'm a programmer too. I changed company because I didn't like my job there.

There, I did a lot of front-end, but I suck at graphical things. I'm a back-end programmer, I had skills, passion and other good qualities to do this job, but not in the way they asked me to.

Maybe this guy is just in the wrong place.

Every programmer who met me, told me that I have great skills. My actual company avoided low paid contracts for young workers, why?

Because our senior programmers are excited of my approach and know how.

My last company before letting me go as I asked, told me that I wasn't a good team-worker and that I was visibly doing their tasks while thinking it was too easy.

What am I trying to say? Maybe he's just a fish in the wrong sea.

If he's a bad programmer, tell him, if he just doesn't fit your idea of "how to do things", just say that, he may be good but not for you ^^


It's possible the problem originates in how you onboard your inexperienced individual contributors, so please be cautious about how you determine the cause of the discomfort.

If I were in your position, I would start by asking this individual contributor how they feel about the work so far, the organization, their contributions, then finish on a positive note. This conversation can be educational for both parties and I would start it with the intention of learning without any deliberate effort on teaching.

If the relationship is truly doomed to failure, it's better for both parties to understand the inevitable, come to peace with it, then part on good terms. If the person realizes this is a poor fit, then ending the relationship will be far less painful and completely unsurprising. If there is a wide gulf between perspectives, try to narrow them. If the aforementioned conversation opens avenues to improve the outputs of the relationship, take advantage of those discoveries.


Be careful! These days it's not uncommon for fired employees to file wrongful termination lawsuits. It makes it difficult to fire employees, which is why most employers just wait and lay them off during the next round of layoffs.

If you are going to fire him, make sure you have clear documentation of negative employee reviews. You'll want to be able to prove that you fired them for performance reasons and not for discrimination. This article is helpful, but if I were you I would consult with a lawyer before terminating the employee.


The moment you tell him he's fired, his brain will go into fight, flight or freeze mode.

Best case scenario given your situation

Before you speak to him, make a list of all the things you've noticed he's good at and see if other managers may find someone with his skills useful, another type of job.

If he's not a natural programmer and you don't think he'll be able to be trained as one, offering an alternative will be the best win-win. Explaining to him why you're suggesting this alternative it will help him.

Remember "Everybody is a Genius. But If You Judge a Fish by Its Ability to Climb a Tree, It Will Live Its Whole Life Believing that It is Stupid" - you helping him find what he is good at means you'll change his life.

If not, at least suggest some other jobs in that industry you think he could be fit for.


Ah, the not so fun stuff. Most companies have a probationary period with a no fault termination statement if it not working out.

As you have already mentioned, the reason: - we require programming talent: The ability to quickly grasp and understand abstract concepts, advanced analytical thinking, etc...

And you can spin it in away that it not too painful ...it has become obvious to us over the past few weeks that you are not a good match for what we need, so unfortunately we are letting you go immediately.

  • 2
    Did you mean to make this a community wiki? Please let me know if it was accidental so that I can switch it over. You do not get reputation for CW posts, and they're generally designed to be used very infrequently.
    – Catija
    Commented Sep 15, 2017 at 0:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.