In summary, I've been a tech lead on a project for over a year now, and during that time I've worked almost exclusively with one developer, who is probably one of the worst I've ever worked with (writing really low-quality and often incorrect code, and a lack of understanding/care as to how and why), and doesn't seem capable of improving despite receiving lots of feedback and training.
The developer says that he's clear on his responsibilities, but that's not how I see it, because he continually doesn't fulfil them. I've fed this back to the project manager, my manager, and the developer's manager, explaining that it's significantly impacting the quality of the project (e.g., by creating loads of bugs and technical debt). Their response is non-committal and implies that it's my problem. But the way I see it is, I'm a technical lead on a project, I'm not this person's manager, and I feel like this person needs a managerial level of support.
I'm now very tired and demotivated and have stopped caring as much, and have even started accepting code that I don't feel is suitable because I don't want to go through the same process of pointing out the same mistakes and bad practice as I was pointing out over a year ago. Of course I realise that 'logically' this is counter-productive, but I just don't have the energy to push back anymore. The endless cycle of pushing back just frustrates both of us and eventually one of us gives in.
I think the long-term solution here is to find a new job, but until that happens, what are some options to mitigate this burnout? A few things I've tried:
- Ask for myself to be taken off the project: No, because we're short-staffed.
- Ask for a different developer: No, see above.
- Train and feed back to the developer: Has no effect, and believe me, I really have tried, I've put a lot of effort into this which is partly why it's so demotivating to still be in this position.
- Enhance our automated policies to highlight (and auto-fix where possible) some of the most common, easily-fixable mistakes, which has been good, but for things like code smells and general incorrectness, this isn't really automatable.