I got recently promoted as a manager in a small company (less than 20 people), I have only been in the workforce ~2.5 years, and I'm a lead developer in our project. Senior developer has been working longer than I have been alive, and been part of the project over a year now. Senior developer has C/C++/C# background, not python.
Problems with senior developer are:
- Forgets half of the requirements, or if he doesn't understand them he totally ignores them
- Doesn't test his code, and often commits broken code
- Doesn't think validating values matters and doesn't even care if some exceptions are not catched
- Doesn't follow common style guidelines (PEP8)
- Forgets how to code in Python, and implements crazy solutions even for simplest problems
- Adds random files to project and sometimes deletes real files. Sometimes reverts others changes. (git svn rebase ftw)
- Often I find him refactoring working code to not so working code. (His favorite activity)
- Avoids communication with me
Things that I have tried with him:
- We started doing design documents and reviewing those -> Doesn't follow them, or doesn't do them because "there are open questions", so starting the implementation is only reasonable solution for him.
- Tried to talk to him that his performance/quality of code is not acceptable
- I have always teached him Python tricks and how to use them correctly, when I see him using some python stuff incorrectly
- I have to review everything he commits and fix his bugs, now I think he expects me to fix everything for him. And more than other I have to implement rest of the requirements.
Problem is that I don't have power to fire him, customer pays the company no matter how little we are doing, so no pressure from them. Since customer is paying based on the used hours, the big boss doesn't want to fire him either.
Currently I find it easier and faster not to give him any tasks, deadlines are getting closer and it is faster to do them myself. I'm actually considering for changing the job because of him. He is nice guy other wise. Currently project has 1 other developers, and he is fine.
Time to time The big Boss tells me get his performance in decent shape, he knows how bad things are, we had to cancel one project because senior developer was lead developer in that project, so now he is my problem.
Are there still steps to help him to become better developer, or is all hope lost?