views:

2245

answers:

20

I know this may sound like a totally silly question, but here it is:

Did you meet a programmer who is running out of luck ? We have a colleague that is not getting any work done, every task that is assigned to him hits a major block (a bug or a missing piece of information). If we put anyone else on it, it just gets done. That guy didn't use to be like that at all.

It is just that the answer is right in front of him and he still can not see it. He has been distracted for a very long time now (5 months at least). We tried giving him days off and long vacations. We even let him choose what to work on.

However, we feel helpless and I am not sure how we should handle this. Firing someone is the hardest decision to make.

Any help/suggestions would be greatly appreciated.

+2  A: 

It is a dangerous thing for a programming environment to base theories on luck

Either the employer does not know what is suitable for the employee.
Or, the employee is not up to work (at least these days).

In this case, it appears to be the latter.
It might help for him to recheck his interests and maybe change his work
(within or outside his current employment)

nik
nik, I totally agree with you. I am just using the word "luck" to describe the problem. Taking decisions based on luck is pure crazy!
a b
+4  A: 

Have you tried calling a priest to cast off whatever has come onto the guy?

User
+1 to counteract the downvote. If a major international organization (hint: it's been around for centuries and has an ex-Nazi leader who wears silly hats) believes this stuff, why shouldn't we?
MusiGenesis
We shouldn't believe it, because then we'll start burning incense and sprinkling special (non-alcoholic) fluids whenever it's time to compile the code. If it works, they'll say obviously it was dut to a Higher Power (and not you), and if it fails, they'll say it was you and replace you with someone who carries more beads. Oh, maybe not today, but once you start down a path, it's hard to turn back when everyone else is doing it.
Philip Kelley
-1 is enough for a funny answer, -5 should be reserved for spam or useless
Peter Kofler
Yeah, why so many downvotes for an obviously intended-to-be-funny answer to a silly question? (The question was titled "Developer running out of luck" at the time this answer was posted.)
ShreevatsaR
+1 to counteract the down vote
a b
3 down votes, oh no, give a sympathy upvote! I don't have problem with occasionally silly answers mind you...but gaining large rep on the venom/sympathy see-saw seems silly. He's gained 50+ rep for this answer so far...that's plenty.
Beska
+4  A: 

Perhaps he is just burnt-out. I would suggest that maybe he needs a long vacation or he needs to switch jobs or career-paths.

You don't have to fire him, but instead talk with him about what it's going to take to turn things around. Moving on sometimes is a good thing, for everyone involved and maybe that needs to be encouraged. Or maybe he really just needs four weeks on the beach and a good book.

Either way, you have to set expectations and goals and checkpoints, be understanding and as helpful as possible along the way, but in the end it's a business and if work isn't getting done, then he has to go.

jeffamaphone
If he is burnt out he needs more then a vacation.
Jens Schauder
+1 I thought a long vacation would take care of him being burnt out
a b
+75  A: 

As a manager, it is your duty and responsibility to produce with the people you have, motivate them, and understand their problems both inside and outside of the workplace, without getting too personal (unless he wants to, and I would still raise some warnings, you are his boss, not his friend) or interested in details that have no relation with the job. Yearly assessment meetings are also for this, but you can call an assessment meeting any time, with the important point that it's not for productivity assessment, rather a "mood assessment". Don't be an inquisitor. Use a relaxed setup: an afterwork, or a beer break, but still keep the fact between you and him, and at the workplace, not in a pub. Behave friendly, but without being a friend.

If the guy is in a bad period, firing him is not the solution. Firing is for people that effectively damage the company. Firing someone from a company is like killing brain cells: a fired person will bring all his knowledge with him, leaving none to you, and worst of all it will bring it to a competitor.

Allocate him to simpler tasks for a while, or propose him a part-time. Work is not the only part of life. Marriages go bust, health can go bust, parents can die or be sick, children can be troublesome. If the guy is smart and at the senior level, he is not a slacker. He probably has troubles. Unless he really hinders your productivity, I'm sure you can still have him productive somehow. Also, never underestimate that little ugly sickness called depression. It's one of the major diseases today. Having a good company shrink can be a good idea sometimes (if he is a qualified person), but remember that depression is a health issue, not a mental state, so a psychological counselor can help in recognizing the problem and providing suggestions to him, not fix it. That's something a doctor has to do.

How much should you wait? in order to obtain results, it depends on his problem. In order to act, I think you shouldn't wait for the situation to adjusts by itself. You should (must) do something, as it's your responsibility. Lower the pressure on him, have a chat, check how he behaves, and then decide how to proceed, eventually adjusting your decision as time passes. But never let him feel guilty unless he is acting in a consciously disruptive way.

A good idea could be to have him pair program with someone else. You will still keep him active (in terms of experience and suggestions) without too heavy involvement in the project. If he stumbles, there's the pair programmer who can help him out.

And another important point, keep other employees oblivious of this treatment. You must be ready to properly take decision for everybody, without being too transparent on why/how you take them, otherwise you could be accused of favoritism. If your company is new to pair programming, say to the others you are trying an experiment, and potentially also with top managers (and be ready to justify it, eventually putting some force into it). You are the interface of your team, you should protect them, defend them, keep the "upper floors" heat from distracting or disgruntling them, and direct them so that they can give the best they can. You should not let top managers mess with the private parts of your team, unless there's a real need to.

Stefano Borini
+1 how much should I wait for him to bounce back ? have been waiting for 5 months so far.
a b
@Stefano, Thanks your answer is pure gold.
a b
There are some good bits in this answer, but over all, I don't think it's that great. Much of Stefano's advice is common sense. As S.Lott points out in his comment, ab should figure out if this guy is being affected by something in his personal life. Many parts of this answer don't make sense. eg "In order to act, I think you shouldn't wait." Finally, I don't like how the last paragraph hinges on keeping employees in the dark about what you're doing. Obviously, you don't want to embarrass the guy by letting everyone know you're not pleased with him, but information control seems so Orwellian.
allyourcode
It's Orwellian up to a point. Too much information is detrimental to the team mood and they risk to be overloaded with useless details. You should not be a censor, you should be a filter, eventually a delayer. If the upper management pressure you in delivering, but you know that there were incidents and the team is working hard, you should not percolate this information to the team. You will just stress them more, reducing their productivity (as they know the upper management is unhappy, despite the fact they are giving everything they can). They are your soldiers, you are their Sergeant.
Stefano Borini
Often, common sense is not so common.
Stefano Borini
+9  A: 

Have you tried directly asking him directly about his degrading performance? There could be a number of reasons for what you describe. He may not feel challenged. Or he is unhappy with the management and no longer dedicated to the company in which case it really would be best to let him go and find some place he will be happier.

Ultimately I suggest you confront him and find out what is going on. After that, depending on what information you get you will be able to make a better decision about firing or keeping him.

anio
I did. It is not about management or the company. I am really starting to think his personal life is getting to his work life.
a b
+3  A: 

I've had this with developers before. Check out manager-tools.com. It's a management coaching podcast/site. They have some good pointers on coaching people, giving feedback, and if necessary, eventually rolling them out of the organization.

Matt

mhunter007
+1 Thanks for the link. Will definitely take a look :)
a b
Really good podcast that more managers should listen too.
Matthew Whited
+1  A: 

Well really we can't diagnose this dev's issues here but it sounds like maybe he has lost interest in the work you do (no longer feels inspired), he's not interested in being a dev any longer, he has family/personal issues going on outside of work, etc.

The first step is communication. Talk with him. Make sure he is aware of the impact he's having on the team. If he's a valued team member then put in the effort to pull him back. But it starts with communication.

esabine
+1  A: 

I saw a very similar case. The management were clueless, they couldn't explain what's happening. The guy was just a slacker with a side job (not programming related). He was fired eventually, but he had managed to get a few month's salary for nothing.

+22  A: 

Lots of the other answers say this, but they're all too wordy:

Talk to him!

Find out if he's aware of it, what he feels is affecting him, and so on.

And above all, be supportive and a human being, not a "businessman".

Peter Boughton
+1  A: 

If I were you I would:

  1. make sure he feels secure
  2. give him some time off
  3. make sure the task is well defined/well designed
  4. send him on a training for empowerment purpose not education
  5. try to speak to him about it and see if there is anything outside work causing such distraction, he might have a problem with his landlord, children and schools, etc.
  6. give him some boost in his confidence (praising whatever he does right)
A.Rashad
+1  A: 

Perhaps he has a personal problem (maybe even an illness he is not aware of), or maybe he just lost the knack

Danny Varod
http://www.youtube.com/watch?v=kVdnqEyToqg
Nosredna
Dammit, nosredna! It's been years since I even thought of that song, and now it's stuck in my head forever. I'm going to go hang myself with one of my old skinny ties.
MusiGenesis
That crazy octave bassline cannot be removed from the brain.
Nosredna
No kidding. I still have a piece of pencil lead (ok, graphite) stuck in my pinkie, from dancing around my room to My Sharona with a pencil in my hand.
MusiGenesis
A: 

Fire him. Sorry, but I've been through this many times, and I've never seen the problem resolve itself. You'll be doing yourselves and him a huge favor.

MusiGenesis
Does the world need another laid off developer :( ? The whole point of the question is me not wanting to fire him. This is going to be our last resort if all failed.
a b
All else has already failed - that's what I'm trying to say. I'm serious about this. The only thing that will snap him out of this rut is to fire him.
MusiGenesis
How will that work?
ShreevatsaR
It's known as a "wake-up call". I had a coworker once who was in a similar rut, only he had been doing next to nothing for more than two years. He got a new job almost immediately, working at a place that simply didn't tolerate that level of slacking. He's now one of their best programmers.
MusiGenesis
What amazes me the most about this sort of situation is why any company would allow someone to slough off for this length of time. If I were signing the paychecks, I might tolerate a week or two of nothingness, but that's it. After that, I would sit the guy down and give him an ultimatum. Five months is ludicrous.
MusiGenesis
Even with the most dehumanizing view of employees, you must admit that a programmer is not simply a cog in a machine, he's at least a *resource*. So it's silly to discard one at the first sight of a defect: when finding better-than-mediocre programmers is extremely hard, you should at least be sure before firing someone that the defect is not rectifiable, which is what the questioner is trying to do. Though this question should probably have been asked earlier than five months, your strategy of firing someone after tolerating "a week or two" is a very short-sighted (and non-optimal) strategy.
ShreevatsaR
@ShreevatsaR: perhaps a week or two is too short a period to fire someone, but 5 months is beyond a doubt way too long. If a talented programmer is making, say, $100,000 a year, then he's costing the company around $125,000 a year, which means 5 months of nothing is about $50,000 wasted. And (based on what I've witnessed) 5 months of this can easily become two years. To reiterate my basic point, if I were paying the bills, this guy would be gone by now. Maybe you have a quarter of a million dollars to throw away, but I sure don't.
MusiGenesis
What I'm describing is not a "dehumanizing view of employees"; I'm describing something called "reality".
MusiGenesis
A: 

There are no many things that I can apport to this theme. The only thing perhaps is tell you to have some patience, if this person is a really value one. It seems to be just a bad time for him. If not, just find out if there's a reason to act this way with the company. Maybe that's the problem.

Hope you fix it in a short period.

elvenbyte
+9  A: 

I've been this person before in some jobs where what has happened is a combination of a few things:

  • There are 101 other things to fix but that aren't a priority and so while I have these other sucky things around it does somewhat demotivate me from doing things as nothing is being done about these things that for me are a priority but I'm not sure how to say, "IMO, this sucks and should be fixed soon," without sounding all hoity-toity. Another way to view this would be that when I start working someplace I don't see all the broken windows that may be there, but over time this can become clear and lowers how hard I work in a sense.

  • When I try to do things that I believe should be done, I will get chewed out for that but if I do nothing, this seems acceptable. For example, if I fix a bug that wasn't supposed to be fixed so soon and I have to go undo the fix and have been told this in front of the rest of the developers in the company.

  • Communication breakdown can also be a cause for some of this. If I don't have a bond with the boss that I go to and say, "This isn't working well," or "Could you give me something else to do," then I may go quiet and the quality of my work can suffer. The challenge here may be that I'm not sure what to do first or how to approach things which can be somewhat annoying I'd think.

  • Misguided praise. This is where I know what I did was mediocre or crap but someone else thinks it was good or awesome. When I get this, it is like a mixed message in terms of, "Well, if you like me at mediocre, why should I try to do any better?"

Note: I'm not saying this is good or proper behavior, just that I used to be a bit lackluster and these are various rationales for how I got into this situation.

JB King
A: 

If he has skills above the average, he is just looking for recognition. Otherwise you can ask him what he’d change in the environment.

L. Cooper
+1  A: 

I don't understand why everyone is saying keep him, console him, blah, blah. After 1 or 2 months maybe, but if he has been a consist problem for 5-6 months, cut him loose. He may not admit it, but he needs to get away, for good. The best thing for him sounds like a) a wake up call (firing) and b) a new place to work.

I don't want to sound like a d*ck, especially in this economy, but (especially in this economy), your team needs to be produce. I don't care if the guy wrote the whole .Net Framework by himself, if he is not producing, he needs to go. You are wasting your time, and other developer's time, dealing with him and going back over his code.

I think the fact that he WAS such a good developer before was the reason you keep him for the 5-6 months. If he was a Junior Developer, after 1 or 2 months of no results, he would be gone. Senior Developer ... ok, you gave him 6 months, bye bye.

Martin
It's amazing how many people here are in "that poor fellow" mode - I've gotten 3 downvotes for saying the same thing as you. If these people were signing the paychecks they'd change their minds very quickly.
MusiGenesis
Come on, really? If he wrote the whole .Net Framework by himself? That's pretty damned impressive. He should get a huge bonus in my opinion.
Nosredna
@Nodredna - Yeah, he gets a bonus for when he wrote the Framework, but now that he is not performing, cut him loose.
Martin
+2  A: 

5 months? seems like a long time to be thinking about it, what I would suggest is:

  • get HR involved, which ever way it goes, it needs to be documented to protect you and the company
  • have a 'healthy' discussion with the person (with HR present - always present), about his performance issues and ask him directly what the problem is. it could be you, it could be something personal that he doesn't want to discuss, but without knowing what it is you'll never be able to make an intelligent decision on what to do
  • look at the impact that the person is having on the rest of the team, take that into consideration when deciding on next steps
  • if possible work on a plan - with him and HR - to correct the issue and to monitor improvement
  • sometimes letting someone go is good for everyone - especially him - could be a wake up call
meade
+1 for the "work on a plan". Without clearly communicating your expectations and writing them down he'll never know and you have nothing to measure him against.
Kane
A: 

I'd recommend two actions:

1.) analyze if the workload is too high for the whole team and especially for him. If you feel like that, make meetings with your team and talk about the whole situation and find solutions to reduce the workload.

2.) if #1 does not help (or is not the real reason), talk to him alone. Maybe he really has some personal problems that stop him from doing his best (like he did before) and he has no other people to talk to. Maybe you can help him to find a way out of his situation.

t0mt0m72
A: 

Let him tell you what's wrong, don't blindly guess solutions.

Sit him down and say something like, "You've been an amazing programmer for the last X years. Remember that time you found that bug in Y? Or got Z out the door a month early? Recently I've noticed that you've been having some trouble, though, with project W. Is anything wrong? Is there anything we can do to work with you to help you get back in the groove?"

Make sure you let him know what a great programmer you think he is, and that you're eager to help him out of this rut.

kristina
A: 

Team him up closely with an enthusiastic but inexperienced newbie.

Sometimes people lose motivation, the motor to keep them going, doing things. There is no known cure. It's known as writer's block, artist's block and a dozen different names in other domains. One solution is a person to take them along on the ride. Someone who has the will but not the knowledge - the newbie does all the typing of the code, the experienced guy tells what to do, how to do it, spot errors, correct caveats, design. The newbie should be happy to follow experienced guidance and produce excellent code he would not be capable of without such help.

I myself often face a problem I spend a long time to solve, and fail until I ask for help - then presenting the problem to a colleague I spot the error and solution myself - I could talk to a janitor who has no clue about programming and it would still work.

Of course as the newbie gains experience and earns his wings, you will have to split the team and assign a fresh newbie - with a praise for a job well done for the experienced programmer of course.

SF.