I have recently joined a team as a technical lead. It's a 4 member team that includes two junior developers, myself and my manager. I am on good terms with the manager. However, this is the first time I am working with the two junior engineers. I have about 9 years of experience developing software in the software industry. The two junior engineers have less than 1 year of experience each. The manager is twice as experienced as I am.
There has been a history of conflicts between the junior developers even before I joined the team. Some of the tasks assigned to me are for example to ensure that the project is executed successfully, review all technical aspects of the project, set clear boundaries between the two developers so that they don't step on each others' toes, and ensure that they don't get into any more conflicts.
Here is an example of a current conflict I am dealing with.
- Dev 1 implemented a solution to a problem, used Library A and wrote the code. Dev 2 implemented the same solution, but used Library B and wrote different code for it. Both pieces of code co-exist in the code base now. But Dev 1 wants to gradually take ownership of this solution and gradually convert Dev 2's code such that Library B can be gotten rid of and the entire solutio can be written with Library A only.
- Dev 2 has expressed earlier already that he does not like Dev 1's approach of removing code written by Dev 2.
- But Dev 1 also has some valid reasons to support his behaviour, e.g. there was no need for Dev 2 to introduce Library B (which was redundant when Library A was already being used), uniformity in coding, code clarity, minor performance improvements, etc.
- Personally, I don't care whether Library A is chosen or Library B. The pros and cons for either are minor and don't affect the larger objective of completing the project successfully. One can't go wrong by choosing either library and discarding the other.
Most of these conflicts began before I joined the team but now that I am here, I want to minimize conflicts between them and resolve them amicably.
Some of you might think that should be the manager's job and not mine, and the manager should have dealt with this already but that's not the situation I am in. I have to and I want to take responsibility and resolve this conflict. I want to face this issue head on because it would help me to grow as a leader which I think is a very important skill along with software engineering.
How can I resolve and avoid these conflicts going forward?