Briefly, the scenario is this: Frank was a great maintenance programmer, but the company is retiring the system he worked on. Frank has moved to a new project in a new language and he’s not catching on. (Full scenario is here.)
The Other Esther summarized the advice she received in When the Job Changes But the Programmer Doesn’t and When the Job Changes But the Programmer Doesn’t Part II: Saving Frank’s Job.
My full response (excerpted in Esther Schindler’s posts):
It sounds like Frank has been a valuable employee. But now he’s in a position where his skills and preferences aren’t a good match for what the position requires.
So first, I’d think about whether there is a way to make use of his maintenance programmer skills on the new system. Can he fix bugs? Can he contribute domain knowledge in some other way?
It’s not unusual for people who are learning a new skill to follow rules rigidly. They haven’t internalized the new knowledge to the extent that they can see possibilities and use the skill intuitively.
The scenario doesn’t say how Frank has gone about learning the new language. Pair programming can be a great way to learn, and pairing a beginner with an expert can be enlightening for both.
I’d also look at how the work is chunked up. It may be that if Frank broke the work down into more discrete 1-2 day chunks he’d be able to make better progress.
If there’s no way to use Frank’s skills, then Frank’s manager needs to have another forthright conversation with him, explaining his expectation and concerns, and hearing Frank’s point of view, as well. Chances are pretty good that Frank is as distressed as his manager is.
But before the meeting, Frank’s manager needs to decide if he’s willing to give Frank another chance, or give him time to find another job within the company. If not, get the ducks lined up with HR to end Frank’s employment.
If Frank wants to try once more to get up to speed, they need to agree on a plan with specific actions. They need to agree how they’ll evaluate whether Frank is making the kind of progress the job requires. And the manager has to put a time limit on it–weeks not months.
If Frank recognizes that he’s just not in the right job, and he’s an employee that can still make a valuable contribution somewhere in the company, set a time frame for Frank to find a job internally–weeks not months. Start looking for Frank’s replacement. If Frank hasn’t found an internal job by then, end his employment.
If Frank isn’t a good candidate to stay at the company, don’t let the situation drag on forever. The current state is painful for everyone. And while firing Frank will probably be painful, it won’t be as difficult as the alternative.
A couple of things to emphasize:
Allow weeks not months to turn the situation around. That means 2-6 weeks, no more.
Choose based on how big a hit you can take on the project. Look at the trade offs. Some times no body is better than a warm body. If working with Frank is taking significant productive time away from others for little potential return, 0 weeks is the right answer. As Jerry Weinberg asked, “Is this a business or a charity?”
If Frank can be valuable to the company, but not on your project, set a time frame for *Frank* to find a new job. You are not a job placement service, and not your job to find him a new assignment. It’s Frank’s job to find that next assignment. You can offer to introduce him to people or give a reference, but Frank needs to do the work. And set a time limit 2-6 weeks, no more, depending on your project needs. Do not wait until Frank has found a a new assignment to start looking for his replacement.