Timlid (aka leading developer, team leader) is one of these “specialists” whose duties are seen by many differently. I think that there are various ideas like this: someone in the team worked under the leadership of the team leader, who coped well with the tasks of designing the system, and now believes that this is exactly what the team leader should do; in the other team, the team leader did not do well with the planning of sprints, and more or less with other duties, and the staff began to consider that planning was not what the team leader should do.
From developers who have worked for a long time within the framework of one company or even one team, you will often hear a clear opinion about who the team leader is and what his responsibilities are. Developers and managers who have seen various projects gradually come to understand that a team can do a lot of things, some activity fits better into its role, some is worse, and is no longer ready to give a precise definition of the role of the team.
Where does a different idea about the position of a tmlid come from?
NOTE. Hereinafter I speak about the team leader only within the development team. I guess that much of the reasoning applies to other teams in many activities.
I used to see team leaders performing the roles of a project manager, system analyst, tester, designer, interface designer, architect, even a user support specialist.
In practice, in healthy organizations, according to my observations, the role of a team leader is usually taken by developers who more than others feel responsible for the fate of the product being developed, often turning into hyper responsibility, which the management skillfully uses.
NOTE. Hyper-responsibility, I call the case when a person feels responsible for the circumstances that have no authority to influence. I am not trying to invest in this quality of either a positive or negative connotation, I am just stating that in some employees hyper-responsibility is manifested.
It is at the expense of this hyper-responsibility that the Timlid assumes the activity for which there is no allocated position and, gradually, these responsibilities are assigned to him and, as a result, to his position. At this time, the rest of the staff also get used to such duties of the team leader, fixing in mind just such a set of duties for any other team leader.
')
Of course, the described concerns not only the role of the Timlid, and, to one degree or another, the picture is true for any position in any activity, but the position of the leadership is among those that are most susceptible to the described effect.
What is the activity for the tmlid native?
What should an employee be able to have, what qualities to possess in order to be a good team leader, and only then a good architect or analyst?
The simplest definition that I can give for the role of a team leader is: "team leader is a development team interface."
He is responsible for everything the team is responsible for, for which he has the authority to form a team and use its members at his discretion to solve the tasks of the team.
If the team is responsible for the design of the system, then the team must take care that someone has designed the system. The team is responsible for developing the user interface - the team leader determines who will do it in the team. And this is true for any task of the team: it is responsible for its implementation in the eyes of the outside world for the team of team leaders.
What exactly should a team lead do?
He should be able to make sure that each team member copes with the tasks assigned to him. For this you need to:
- team members agreed to do the assignments
- competent enough for this
- possessed sufficient resources (first of all - time),
- could get along together.
This is the front of the work of the team.
Let us consider what to do with it.
Leadership
“It is necessary for the team members to agree to carry out the assignments” - the so-so wording, but could not be more elegantly folded. This refers to the fact that the employee must take tasks into work with the intention to complete them. The employee does not refuse to take tasks into work simply by ignoring instructions, or by referring to the “curvature of the solution”, does not sabotage, quietly doing his work, but is taken to the task
with the intention to accomplish it. How to make a person want to complete a task? It is a lot of ways, from compulsion by threat of physical violence to the promise of a trip to devkon. This is the quality that I define as “leadership.”
The stronger the leader, the more people can manage it.
According to my observations, leadership can be maintained due to various factors:
- Show sincere personal interest in the success of the project. In the modern development team, everyone sees everything that the others do, how they do it, how much they try. Developers are more willing to go after those who are trying with might and main for the sake of project success, even if this someone does not have any formal power, out of a desire to help. Such a leader easily keeps the initiative until he exhales or loses interest in the project.
- Due to the knowledge of technology and the project device is the best in the team. Those leaders interested in professional growth are drawn to such leaders; they often come to the project precisely for this. It is logical that when developers reach the leader level, if there are no other factors, the leader loses the initiative, which in practice is expressed by constant criticism of decisions, sometimes leads to ignoring orders or hidden sabotage.
- Able to achieve respect for others at the expense of personal qualities. When a person is objective, fair, consistent, employees can rely on such a person and his decisions. However, in order for the team to discern these qualities in a potential leader, it takes time, for which someone else will take the lead. This factor is most resistant to various kinds of changes in the team.
- The ability to exploit the moods of individual team members, forcing them to act according to their own plan (the Filth movie immediately came to mind www.imdb.com/title/tt1450321 ). I saw such leaders, even worked a little in my professional youthful foolishness, but I ran away in time. Obviously, experienced specialists who know their own worth do not take long to manipulate.
- Applying administrative measures provided by the formal government in order to force employees to fulfill obligations. If this factor of leadership is the only one, then this is a clear example of the “I am the boss, you are a fool” system of relations. It also works on a rather limited set of employees.
He cited the factors as an example, from what he himself observed, but certainly the classifier can be expanded. But even from the fact that led can collect countless combinations. In practice, a team leader needs to become aware of, develop and maintain (if applicable) a set of factors sufficient to maintain leadership.
Team Competence
Sufficiently competent employees appear in the team as a result of dropping out of the stream of insufficiently competent ones. Other employees often help this team leader: our beloved HRs, line managers, and project engineers, simply not indifferent employees. Often, the team leader does not realize, like many others, the fact that it is his responsibility not to let the incompetent employee, that is, the one who cannot cope with the planned tasks, into the team. Timlid may rely on the opinions of colleagues, management, personnel department, but the responsibility for accepting a person to the team is on him. Is there any responsibility for not taking a competent employee in the team? The fact is that in practice this error is not checked, because, in case of doubt, it is easier for the candidate to refuse, than many use. In addition, other authorities can reject a candidate - HRs, managers, it is reasonable to use the right of veto on the issue of hiring.
NOTE. Quite often, the discrepancy between responsibility and authority is manifested in the fact that the team leader is not included in the decision-making process on the admission of a candidate, or does not make it possible to exclude an employee from the team on the initiative of the team leader. Moreover, the responsibility for ensuring that the team copes with its tasks from the team leader no one removes. Here it is - imputed hyper responsibility.
What is the tmlid's professionalism here?
As always, the speed and quality of solving the task of providing the team with competent employees.
The quality in this case is the higher, the cheaper the company employees are (and not only the salary we consider), provided that they maintain a level of competence sufficient to solve problems. In some cases, speed is a priority, in some quality.
Among the ways of staffing I see two approaches in principle:
1. Take ready-made specialists from the labor market.
2. Educate staff yourself.
The rest, one way or another, are combinations of these two. The extreme case of the first is only hunting of experts in the required areas, the second is hiring only from internship programs. There is no correct way, and the extremes, as elsewhere, often indicate some kind of failure. Timlid is just the person who must find a suitable compromise in a particular situation, taking into account its development.
What can go wrong?
- A typical mistake is hiring insufficiently competent employees due to the inability to reveal the professional qualities of a candidate. Simple examples are the inability or fear of asking the right questions at an interview, shifting the emphasis to the esoteric features of technologies , and not to their practical side. The consequences are expected - the candidate does not cope with the obligations taken by the team, hence the team leadership too.
- The other extreme is hiring only experts. In order not to be mistaken in hiring after filling cones, or from the desire to assemble a dream team, a team leader carefully selects only candidates who are not inferior in knowledge to him. Since such a manner is more typical of leading experts, the qualification is quite high. Candidates are searched for a long time, costs for recruitment grow, project tasks are not solved, and the team leader has an excellent excuse - there are no specialists. But even when the team is assembled, it turns out that the stars with routine tasks are ready to put up, but I would like tasks with challenge and everyone, but nobody wants to sweep up the garbage in the project. Yes, and the situation becomes tense, as is known from 4 architects, 8 opinions, most of them are correct, although they contradict each other.
- Another typical example is ignoring the need to attract other specialists to the team, for example, a front-end specialist, an expert in a particular database, an interface designer, etc. Often this happens simply because of the misunderstanding that such an expert in the team is needed. As a result, the harsh backend team develops something like a working front-end in their project, the development team has been struggling for months with PostgreSQL optimization, and my favorite case is a mental hospital in the hands of patients.
- An example is more difficult - uneven recruitment, took a pack of juniors so as not to get up two times, and they began to write the code in such a way that the team does not have time to revise, and even questions come up all the time asking, breaking something all the time.
- Or on the contrary, we work, we concentrate on tasks, we postpone hiring, how suddenly one of the key employees leaves, another on vacation / is ill / taken to another project, and no one from the younger generation is replaced. You say that the situation is unexpected? So, the team leader should always be ready for such a situation, thinking out in advance how he will act in the event of the loss of one or another team member. And even better if he builds the relationship so as to know in advance about this outcome.
There are still infinitely many options to make mistakes, some are written in books, for example, a well-known way to further aggravate the project when there is a threat of deadlines - to attract additional developers to it at the last moment, and the team leader is the very hero who will not give such a decision.
You cannot answer the general question “how to ensure a team with sufficiently competent specialists”; you can find its solution only within a specific project at a particular enterprise. We can only say that the team leader in developing this solution should take into account the nature of the tasks in the project, the urgency of the tasks, the importance of the impact of deadlines, plans and trends for the project, the state of the labor market, the availability of specialists in the market, the complexity of training specialists on their own.
Evaluation of work
In order not to make commitments with which the team cannot cope, the team has to evaluate its resources, most often it is only the available working time of the team members. Responsible for the execution of the team development team timlid. Regardless of how exactly the work is evaluated in a team: everyone evaluates his or her task, or collectively assesses all the tasks, or all the tasks is assessed by someone in the team, the team leader will be responsible for the assessment. From this it follows that the team has the authority to intervene in any of the assessments and change it at its discretion, this is useful in practice when the opinions of team members diverge. Moreover, the development team, represented by the team leader, also undertakes the obligations to execute the plans, if the tasks for the team in the organization are made by the plans. In the particular case of iterative development methods, the team (say “team” - implies “team leader”) takes responsibility for performing all the tasks taken in the iteration.
In modern approaches to development, management does not go into the affairs of the development team, does not tell them
how to solve the problem,
who exactly from the team to solve the problem. Management is only important that the team completed the task within the stipulated time, and it does not matter how it happens. Interestingly, even the popular Scrum methodology is silent about the distribution of tasks among the participants, giving the team “decide for themselves” who will take on what. Once I figured out for myself how the distribution of tasks takes place in practice, and I was satisfied with someone’s answer that sooner or later there would be a leader in any team who would take the initiative to resolve conflict situations in the distribution of tasks. The argument is that the distribution of tasks among the participants is also a task of the Timlide.
Surprisingly, assessment, planning and distribution of tasks is a duty that is carried out easily if the team leader successfully copes with other duties. To do this, he has competent employees who are motivated to perform tasks, they will easily cope with the assessment and execution of tasks. Timlid only needs to organize the process of assessment and distribution of tasks by the team, in order to control it later. How exactly to do this - there are ready-made solutions in the form of development methodologies.
NOTE. If you do not know what methodology to choose under normal conditions - take Scrum. Because it is simple, defined down to the smallest detail and works quite well even without adapting to the command and organization.
Mood in the team
At a minimum, in order for problems to be solved, it is necessary that team members can communicate with each other without mutual irritation.
It would seem a simple task? Far from it! If there is a conflict between employees, in many cases it can be resolved only by excluding someone from the team. But the timlid is quite capable of influencing conflict prevention, there is no universal advice to give, except one thing: conflicts cannot be hushed up, in any incident you need to react, how exactly to react depends on the specific circumstances.
Also the team leader should relate the characters of the team members, if the team digests one bore, then perhaps there are no two (I have nothing against the bore, he himself is still the bore).
Well, in order to “improve the efficiency of interaction between team members” there is such a discipline as “team building”, I’m very skeptical about it, the fact that I haven’t seen good teambuilders in fact can affect it.
In general, I wanted to do without this item, but I can't help mentioning it at all.
Conclusion
So, the team leader has duties in his office, all of which concern the ability of the team to work, that is, the ability to perform the tasks assigned to the team. All the rest is that the tmlid charges itself voluntarily (or forcibly) additionally, but this is not always a bad thing. For example, for myself, I defined a rule that a team leader, in development teams, must be directly involved in development, that is, writing code, developing an architecture, etc. This is necessary in order to understand how the system works from the inside; without direct participation in the development, such an understanding gradually fades away. I think many of the developers are familiar with this situation, when leaving the intensively developed project for several months, on return you find only rare familiar elements in the new system architecture. However, according to the reasoning above, direct development is not included in the number of native duties of the team leader; in some projects it may be unjustified.
In the real world, a team leader is not left alone to solve all these problems; he is assisted by leaders and colleagues of neighboring departments. In practice, this help often turns into decision-making for a timlide; such moments should be alarming, since in fact his duties are transferred to other employees. It’s definitely up to you to deal with it or accept it, but it’s definitely worth paying attention to the real situation.
Interested in the opinion of developers (in a broad sense - everyone who works as part of development teams), team leaders, line and project managers, do you agree with such a decomposition of the role of team leader? Do you have any comments, additions?