27

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.

TheRealLester
  • 7,426
  • 4
  • 32
  • 47
user5761
  • 281
  • 3
  • 5
  • Where are you located? Culture plays a huge role in interpersonal interactions, and it's something we need to take into account before writing answers. –  Sep 15 '17 at 01:18
  • Does your company have a dedicated HR dept. or person? What you are describing is typically an HR responsibility, though I realize that some small companies might not have them. In my opinion, there are so many possible employment-related issues that it is risky for untrained individuals to handle them. – user3169 Sep 15 '17 at 01:35
  • 4
    @Hamlet: German-speaking Europe. – user5761 Sep 15 '17 at 05:47
  • @user3169: Nope, we are too small for an HR department. – user5761 Sep 15 '17 at 05:47
  • 4
    Does the employee have a probationary period clause in his hiring contract? – user Sep 15 '17 at 09: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 Sep 15 '17 at 09:41
  • @MichaelKjörling Even if it's in the contract the max. legally enforceable probationary period is 6 months in Germany and Luxemburg and less in Switzerland and Austria (as far as I can see from a quick google) – AllTheKingsHorses Sep 15 '17 at 10:45
  • 1
    @AllTheKingsHorses Exactly. The employee has been at the job for a few weeks, as per the question. It's generally much easier to end a probationary period (if one is specified in the contract) before it transitions into full employment, than to fire someone. That's pretty much why probationary periods are used in the first place. – user Sep 15 '17 at 11:00
  • @MichaelKjörling Probationary or full, someone has to be the bad guy ... – Fildor Sep 19 '17 at 12:17
  • 4
    That study is flawed. I have proposed an edit to the linked answer. Here is the [retraction](http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hump_retraction.pdf). – Nelson Sep 20 '17 at 07:25
  • 1
    How are you so sure this person is unsuited to be a programmer? Is it not possible that they could become a perfectly able programmer but simply need more time before they 'get it'? Isn't your real problem that you were hoping to have a more productive employee by now and that your reason for letting this employee go stems from that? – Cronax Sep 26 '17 at 12:27
  • @Cronax: Experience. In the past years, we've had a few programmers where we thought that they might "simply need more time". In *all* of those cases, we had to let them go after giving them between 6 months and 1.5 years to improve. Those were *very expensive* mistakes, especially for a small company like ours. Not only because of the (mostly wasted) salary, but also because they take up the time of other developers who try to teach them. – user5761 Oct 01 '17 at 09:07
  • 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 Nov 06 '17 at 09:24
  • @user5761 "criticize him for something that he (probably) cannot change" --> what do you think he probably cannot change? i would like to know that because i lack little math skill..kindly let me know – divine Apr 18 '18 at 11:28

8 Answers8

22

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.

anongoodnurse
  • 24,776
  • 15
  • 79
  • 122
  • 4
    Just note that the articles themselves have been [retracted](http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hump_retraction.pdf) by the original author. It's been over a decade and the bad research is still circulating :) – Nelson Sep 20 '17 at 07:28
20

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.

Mary Sue
  • 301
  • 1
  • 4
  • I like the solution but wouldn't it mean demoting the employee and him accepting a pay cut? –  Sep 18 '17 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 Sep 18 '17 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 Apr 20 '18 at 04:05
4

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.

English Student
  • 10,531
  • 5
  • 33
  • 71
4

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 ^^

Tycho's Nose
  • 7,528
  • 7
  • 27
  • 64
Marco Salerno
  • 1,785
  • 2
  • 8
  • 19
2

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.

Jason
  • 121
  • 2
2

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.

Bradley Wilson
  • 9,709
  • 10
  • 62
  • 95
Bronco
  • 121
  • 1
2

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.

Geek Speaker
  • 779
  • 4
  • 8
0

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.

Stacy
  • 1
  • 1
  • 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 Sep 15 '17 at 00:10