I would like to ask you for advice with my problem with one team member in an agile team.
I'm the Scrum Master and team leader for a project for one of my company client's (a big corporation). My team consists of developers from the company I'm working at and the client's developers.
We have a problem with one of the client's developer, who is an old-school developer who has been working for the client for quite a long time. Both the team and I have a hard time persuading him to follow clean code and other software development practices that team agreed to do.
He has a background in a different technology stack (.NET, whereas we're using Java with quite modern frameworks in the project) and is trying to reinvent wheel every time. Every attempt to show him how something should be done in a simpler way ends up with a long emotional discussion (he behaves like he has been attacked).
He is also raising numerous ideas (including architectural) and tries to force them through. Unfortunately when it comes to validating, these ideas appear to be something that is against widely-used practices and patterns. For example, we have had a discussion why 100% code coverage is not a very good idea (he pressed to do that).
It has also happened that he was implementing changes out of the scope of his task. For example, he refactored some part of the application without consulting with the team, because he thought his code would be better. He tried to defend his code when the team tried to explain to him why that part of the code was implemented in that way.
My impression is that as he is the oldest developer with the most experience, he wants to be the project hero by all means. Unfortunately, he seems to be not up-to-date with modern frameworks and coding guidelines. I think one of the reasons for his behavior might also be a cultural factor (that guy is from the UK, some part of the team and I are from Eastern Europe). The problem is also that the client's management seems to not see the problem.
As I'm not very experienced in leading teams, I'm curious what could be the best way to fix team relations (two people already left because of that). I really appreciate the engagement of that developer, but would like him to be in-line with the team and look critically on his work.
Could you please advise what you would do in that situation?
(I know I can always quit my job, but that would be escaping the problem :))