I'm the team leader for a small team of software developers (4 people total).
One of my team members has been in the company for 4 years (came in directly after college) and is an extremely competent developer when he is productive. The thing is, his productivity will wear down in the weeks/months during which the project takes place.
Typically, the team will be assigned a new project and he'll be bubbling with ideas, be a very proactive element of the team, and generally be stoked about the new tasks at hand. But when the project is not as "fresh" anymore and the general needs of the client have been understood, when things mostly need to "get done" and the routine of the development phase settle in, his productivity will decline when most others in the team reach their cruising speed. He'll start arriving late, spend most of his day being distracted or daydreaming and things that could get done in a few hours start taking him a few days.
Now he's generally pretty upfront about it and there have been times where he'll come up to me and say, almost word for word, "I haven't been able to get work done today, I need you to be on my back tomorrow to make sure I'm productive".
So I've tried, as instructed, to be up in his business; checking with him every couple of hours to see if some advancement has been made, popping up behind him to see what he's currently doing, reminding him that he needs to get things done when I see him in the breakroom, etc. I don't like doing it and I don't always have the time for that level of micro-management. It doesn't really work as intended, as his productivity will not improve that much for the time I have to invest with this method.
I've tried a few other things:
- Pair programming with a junior member of the team
- Giving him the hardest problems to resolve instead of regular CRUD to stimulate him
- Giving him daily objectives to create a permanent sense of urgency
- Try to challenge him, as he is quite responsive to having his abilities being questioned: "I bet you're not able to program said functionality in less than X days!".
- Sometimes, the payment of a pint at the next after-work to the "winner" of the bet might be put on the line as further incentive.
All of those work fine for a few days/weeks, but eventually he'll become apathetic and unmotivated once again.
Now if you think of the project overall, his performance is still average to good, but it feels like he could do so much better and become one of the best assets of the team if only he could keep the same level of commitment to his work during the entirety of the course of development.
He is aware of this as well and would like to better himself. He uses various "tricks" to try and stay focused (pomodoro technique, anti-smoking wristbands to "slap" himself when he realises he's not focused, asking his colleagues to tell him when they notice he's getting off track...). He's even gone to see a doctor to check if he has some form of ADD, but it is not the case.
I've thought about referring this to upper management, but I don't know what good it could accomplish. As stated, when he is focused on his work, he'll be able to get a lot of work done quickly, which generally compensates for the low percentile of time that he is actually productive. Even though he could do much better, I still consider him a relevent asset of the team.
Is there anything else I can do to try to prevent his work ethic from decaying during the "routine" development phase of the next project?