Conflict resolution

Managing a development team is a very difficult task. Let’s talk today, what skills should a team leader have? When, where and how to apply them.
So who is this leader?
Before we start talking about the skills of a leader, let’s try to answer a very important question. Who can make the best leader? This is not an easy question at all, since a lot depends on it, including mood, team performance, etc.
Usually, the lead is assigned to one of the developers with the most outstanding results and extensive experience. And this seems to be logical, since such a specialist in the team has great authority and vast experience that helps other developers and, as a result, there will be everything that will help you advance your career. But there is also BUT… A specialist may not have the necessary skills, such as empathy, the ability to convince, resolve conflicts, and so on. In this case, nothing sensible will come of such an undertaking. Such specialists are much better able to be responsible for a certain part of the project, technology, to act as an expert. They should be used for consultations or expert work.
If we take the case when an experienced manager with all the necessary qualities is appointed as a leader, then difficulties arise here as well. When a specialist has little knowledge in development, it will simply be impossible for him to control the work of developers at full capacity. A manager who can only manage, but who has a small technical stack, will most often make erroneous decisions related to technical tasks, since there is no necessary competence. One more thing. It is very easy to put pressure on such a manager both for the client and the management. And, as a result, such a leader will rush to complete the task, as a result of which he will make many erroneous decisions that will lead to a bad mood in the team and poor project results.
Based on the foregoing, it turns out that the best option is to find a specialist with an excellent technical base, extensive experience and very pronounced leadership qualities.
In different companies, the list of what a leader faces can be different, but there are some common responsibilities:
Working with a team. This is both hiring and firing employees, onboarding, assigning tasks, leadership, conflict resolution, and so on and so forth.
Working with the product. This is an investigation into business processes, goals, understanding what the client needs, backlog management.
Functional quality support. This is testing and troubleshooting.
Technical quality support. This is the provision of code optimization and support, work with technical debt, development of project architecture, writing technical documentation, ensuring fault tolerance and project performance.
Development automation. This is the rise and adjustment of CI and CD.
Administrative duties. This is project management, improvement of this process and metrics of this.
Ensuring strong, trusting relationships within the team. This is sympathy, and finding compromises, and the ability to defend the interests of the company.
If a specialist has the necessary qualities or at least the makings of a leader, then he can pull himself up to a good level of a leader in a period of 5-6 months to a year of intensive work on himself, of course, if there is also a mentor. And after this period, most likely, he realizes that he did a lot of things wrong, so he will want to reconsider his method of management and the decisions he makes.
A couple of examples:
When the leader is insecure.
In some state… A good programmer worked for one company. He showed super results and constantly showed initiative. And as a result, he was promoted to the team leader. Well, he did not refuse such an honor and gave his go-ahead for it. but as time went on, he often doubted the managerial decisions he had made and increasingly tried to bypass the need to make decisions. I had to constantly discuss various problems with him in order to help find the right solution.
As a result, I had to have a conversation with him, where he discussed not his tasks for the project, but the goals that he strives to achieve. Also consider the methods that he is going to apply to achieve these goals. Discuss everything that is his responsibility and what he must do to achieve the goal – to become a good team leader. How to resolve conflicts in the team, coordinate sprints with the PM, discuss promotions with the guys, etc., etc. After such communication, the team leader came out inspired, outlined a large number of notes and went to digest it all in order to start applying it all from the next day.
But… In the morning of the next day, the team leader came, thanked for everything and asked to return him to his own paths, that is, back to seniors. He realized that he was not ready to become a team leader.
Team leader with a small tech stack.
In another company, for a large and complex project, they decided to appoint a middle with good managerial skills as a team leader. And, after a short time, it became clear that this appointment was rushed. Teamlead did not have the necessary authority to manage the rest of the developers. He was unable to make important technical decisions for the team, because he had not encountered such before. There was simply not enough technical experience to manage processes, and problems arose from this side. As a result, the company had to part with it.
Timlid who loved to cry.
In the next company, the developer became a team leader and from the start he began to criticize everything and resent how everything is terribly arranged on the project, instead of starting to lead and manage the processes. He was constantly waiting for someone to come and solve the existing problems instead of him. In principle, he was a good performer and well implemented the tasks, the main thing is that someone has already thought over and painted them. But he wasn’t ready to do it all himself. He worked for a short time…
The perfect team leader.
The company has a new developer. He managed to show his best side from the very beginning. He constantly showed initiative, responsibility, tried to suggest where, what and how to do better for different processes. He was offered to become a team leader on another project and did not regret it. He proved to be a good leader. So, from the very start, he was able to make several important decisions, introduced automatic tests into the development process, adjusted the team’s performance metrics, and hired new good developers for the project. And in a short time he managed to calibrate all the processes. The team worked without a hitch, the customer was happy with the progress. Noticing such results, the newly minted team leader was promoted to the head of the department, predicting that he would be able to apply his approaches and skills to other projects.
We conclude:
A good leader must:
It is good to feel the need to make a technical decision and be able to answer for it.
Be able to manage people well and improve this skill.
Always be prepared for:
distribution of tasks, rather than trying to do everything yourself.
communication with the team, and not just unsubscribe in the ticket.
decision-making in different conditions, even if there is no necessary information and take responsibility.
making difficult decisions: promote, fire an employee, transfer employees from project to project.
identify and minimize risks.
If at least on some point the team leader does not cope, it is quite legal to expect problems. For example, if there are problems with time management, then the team leader can take on many tasks, vouching that he can complete them in a short time. And when it becomes clear that this is not feasible, relations with the team and management will immediately begin to deteriorate. And as a result, a person will begin to process a lot and quickly burn out, or, being disappointed in himself, quit.
If the team leader does not have enough experience to resolve conflicts, then he will have to constantly resort to the help of others who have similar experience. And the team under his leadership will become inefficient, the atmosphere will become unhealthy, team members will quit.
But these are just a couple of examples in which you can see the problems that a poorly-pumped leader has.
As a specialist, he can be a superman, but this will not help in any way when solving organizational and business processes.
Leader Skills
Now, taking into account everything written above, we can formulate a list of those skills that are so necessary for a leader:
Sympathy. Because you have to work with different people all the time. Try to help them, support them in a difficult situation, give feedback, resolve conflict situations.
Determination. The manager is obliged to quickly solve emerging problems, despite the fact that the necessary information may not be enough.
Time control. Since there are always more tasks than we can solve, we must clearly understand what we can do and what not. And we must realistically assess the time required to solve problems.
Assignment of tasks. It’s hard to do with time control. And you have to learn to say no.
Stress resistance. Without this, it’s just not really long and successful to work with a bunch of tasks at once. Leaders are constantly pulled. They are invited to discuss various issues, they call by phone, skype, etc., they write to various instant messengers and by mail.
Systems thinking. You need to see the real picture of what is happening in the team in order to identify and solve problems and improve the quality of processes.
Planning.
Independence. One must be able to make decisions without expecting help from outside, that someone will come and do everything necessary and the problem will be resolved by itself.
A few tips:
Don’t be afraid of mistakes. It is better to make some wrong decision than to make nothing at all.
Do not be afraid to admit to the team, management that you do not understand or do not know something. Don’t be afraid to ask for help. And when difficult situations arise, you should take a break and go to colleagues or management for advice. Most of the time, this helps resolve the issue.
Learn to accept criticism, advice and suggestions.
Celebrate the good decisions of your colleagues and management. Take them into service and use them when the need arises.
Try to constantly improve your skills, both by yourself and with the help of your colleagues or courses.
The modern world is complex, dynamic and constantly changing. And it is in such a world that we need to organize software development processes. And not just any, but successful processes that will ensure the repeatability of the result and stability, which will be resistant to scaling and will use the potential of employees to 100%. I invite you to a free webinar, which will be held by my colleagues on April 13th. At the webinar, we will talk about what approaches, paradigms and models are used in software development, and how to choose an adequate model. Then we’ll take a look at the Agility principles of agile development and take a look at the Scrum framework. Registration is available via this link..