I'm currently advising a team of six developers working in a company which relies on this team to handle all in-house projects.
The team has a developer who—for some legal reasons I would prefer to keep undisclosed—cannot be fired. The problem is that this person doesn't perform as well as expected, due to personal problems. While the person has the required skills, a personal event made this person psychologically fragile, and her integration within the team is very difficult. Here are some of the problems encountered:
She is unable to perform some of the tasks and spends a huge amount of time performing others. For instance, two weeks ago, she took a task of implementing a rather basic feature¹ of the project. One week later, it appeared that she is unable to implement it, so another colleague took over and did the feature from scratch in two hours.
Despite all her efforts, she creates a lot of bugs in her code. I worked with her personally to explain how to unit test the code, what tests are relevant and which ones are not, but I failed. For instance, she is still not testing more than a half of the edge cases.
She is reluctant to perform some basic tasks expected from any developer. Two are especially annoying: she doesn't commit her code often enough (usually she stays from one day to seven days without doing a commit, while her colleagues are committing at least twice per day and often up to ten times per day), or she never writes comments in her code.
She creates regressions when modifying others' code, and often can't figure out how the code should be fixed. Frequently, she ends up being helped by the original author of the code, wasting a lot of time.
She barely speaks with her coworkers, making team communication difficult and awkward. Being depressive, she also takes a lot of things personally, which means that even a question such as “Have you finished implementing this interface?” can (and often would) be taken personally, and will be answered in a very defensive way.
During the meetings, she practically doesn't participate, and also takes everything personally. For instance, during the last weekly meeting, the manager was asking why a given feature was late. While the feature was completely independent of her work,² she still perceived it as a personal blame (note that this manager never blames anyone).
Code reviews are absolutely out of question. The team tried pair programming with her, but failed.
Unfortunately, she not only harms herself, but also the team morale both during the meetings and the daily work. A week ago, her colleague (who also appears to be the most valuable developer in this company) talked informally with the CEO, telling that he can't work in this environment any longer and will leave soon if the management doesn't take a firm decision. I'm afraid other developers will soon start searching for another job too.
We (the project manager, the CEO and I) also thought about:
Another job within the company for this person. Since the company deals with manufacturing requiring special skills and other jobs (accounting, legal affairs, etc.) also require specific skills, this is not a solution.
Get help from a psychologist. It appears that she already consults psychologists for several years, so I hardly doubt her lack of self-esteem and her communication skills will improve this way.
A development-related job which is technically simple and requires no communication skills. The problem is that it's difficult to come with such job and will affect negatively her self-esteem.
I recently suggested another alternative: let the female developer work remotely (from home) on low-priority tasks assigned to her directly by a manager. This would prevent her from affecting the team, without lowering her self-esteem. The CEO is currently discussing this alternative with the lawyer.
Are there other alternatives?
More generally, what should be the manager do to prevent this person to unintentionally harm the team, and eventually make this person productive?
Note: if it matters, it seems that I have a privileged relation with the female developer: while she barely speaks to her coworkers or her manager, she seems to trust me and talks to me. The fact that I don't work in this company and intervene in an informal way, as a friend of the CEO, may be the reason for that.
¹ The feature consisted of implementing LESS minification in an intranet website. Not straightforward in the context of an actual project, but still not particularly difficult; I would estimate the task at one to four hours.
² The feature was purely on client-side, that is JavaScript with no reliance on server-side components. The female developer works exclusively on server-side part of the project.