Position - Team Leader
Timlid (aka lead developer, team leader) is one of these “specialists,” whose responsibilities many see differently. I think that various ideas are formed like this: someone worked on a team led by a team leader who did a good job 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 sprint planning, and other employees more or less began to believe 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 more often you will 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 lead can do a lot of things, some activity fits better into its role, some worse, and they are no longer ready to give an exact definition of the role of team lead.
I had occasion to see team leaders as project managers, systems analysts, testers, designers, interface designers, architects, and even user support specialists.
In practice, in healthy organizations, according to my observations, the role of team lead is usually played by developers, who more than others feel responsible for the fate of the product being developed, which often develops into hyperresponsiveness than management skillfully uses.
It is due to this hyperresponsibility that the timlid takes on those activities for which there is no assigned position and, gradually, these responsibilities are assigned to him and, as a result, to his position. At this time, the rest of the employees also get used to such duties of the team leader, fixing in his mind just such a set of duties for any other team leader.
Of course, the described not only concerns the role of the team leader, and, to one degree or another, the picture is true for any position in any activity, but the team leader position is among those that are most susceptible to the described effect.
What should an employee be able to do, what qualities must be 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 team lead is: "team lead is the interface of the development team."
He is responsible for everything the team is responsible for, for this he has the authority to form a team and use its members at his discretion to solve the team’s tasks.
If the team is responsible for the design of the system, the team leader must ensure that someone designs the system. The team is responsible for developing the user interface - the team leader determines who will do this in the team. And this is true for any task of the team: it is responsible for its implementation in the eyes of the team world outside the team.
What exactly should a team lead do?
He should be able to make sure that each member of the team copes with the tasks assigned to him. To do this, you need to:
This is the front of the team work.
Let’s figure out what to do with this.
“It is necessary for the team members to agree to carry out the assignments” - the wording is so-so, but could not be more elegantly folded. This refers to the fact that the employee must take tasks into work with the intention of completing them. The employee does not refuse to take tasks into work simply ignoring the instructions, or referring to the “crookedness of the solution”, does not sabotage, quietly doing his own business, but takes on the task with the intention of completing it. How to make a person want to complete a task? There are many ways, from coercion by the threat of physical violence to the promise of a trip to the Devcon. This is the very quality that I define as "leadership."
The stronger the leader, the more different types of employees he can manage.
According to my observations, leadership can be maintained due to various factors:
I cited the factors as an example, from what I observed myself, but for sure the classifier can be expanded. But even from the fact that led you can collect countless combinations. In practice, a team leader should recognize, develop and maintain (if applicable) a set of factors sufficient to maintain leadership.
Sufficiently competent employees appear in the team as a result of elimination from the stream of insufficiently competent. Other employees often help in this team lead: our beloved HR-s, line managers and project employees, who are simply not indifferent. Often the team leader is not aware, like many around him, of the fact that it is his responsibility to not let an incompetent employee, that is, one who can not cope with the planned tasks, enter the team. Timlid can rely on the opinion of colleagues, management, personnel department, but the responsibility for accepting a person into the team is on him. Is there any responsibility for not taking a competent employee to the team? The fact is that in practice such an error cannot be verified, therefore, in case of doubt, it is easier for the candidate to refuse, which many people use. Moreover,
What is the professionalism of the team leader here?
As always, the speed and quality of the solution to the problem of providing the team with competent employees.
The quality in this case is the higher, the cheaper the company employees (and we consider not only the salary), provided that their level of competence is sufficient to solve problems. In some cases, speed is a priority, in some, quality.
Among the ways of staffing, I see fundamentally two approaches:
1. Take ready-made specialists from the labor market.
2. Raise frames yourself.
The rest, one way or another, are combinations of the two. The extreme case of the first is only hunting experts in the required areas, the second is hiring only from internship programs. There is no right way, and 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 could go wrong?
There are still infinitely many options to make mistakes, some are written in books, for example, a well-known way to aggravate a project even if there is a threat of deadlines is to attract additional developers to it at the last moment, and team leader is the very hero who will not allow such a decision to be made.
It is impossible to answer the general question “how to provide the team with sufficiently competent specialists”, you can find its solution only within the framework of a specific project at a particular enterprise. We can only say that when developing this solution, the team leader should take into account the nature of the tasks in the project, the urgency of the tasks set, the significance (impact) of failure to meet deadlines, the plans and trends of the project, the state of the labor market, the availability of specialists in the market, and the difficulty of training specialists on their own.
In order not to incur obligations that the team cannot cope with, the team has to evaluate its resources, most often it is only about the available working time of the team members. Responsible for the fulfillment of obligations by the team development team. Regardless of how exactly the evaluation of the work in the team is carried out: everyone evaluates their task, or together they evaluate all the tasks, or all the tasks are evaluated by someone alone in the team, the team leader will be responsible for the assessment. It follows that the team leader has the authority to intervene in any of the ratings and change it at his discretion, this is useful in practice when the opinions of team members differ. Moreover, the development team, in the person of team leader, also assumes obligations for the implementation of plans, if the team's tasks in the organization are accepted by the plans.
The modern approaches to the development of management will not go into the development of a business team, it does not tell them how to solve the problem, who is out of the team to solve the problem. It is only important for management that the team complete the task on time, and it does not matter how this happens. It is interesting that even the popular Scrum methodology is silent on the distribution of tasks among participants, leaving the team to “decide for itself” who will take up what. Once I found out for myself how the distribution of tasks happens in practice, and I was satisfied with someone's answer that sooner or later there will be a leader in any team who will take the initiative in resolving conflict situations in the distribution of tasks. The argument in favor of the fact that the distribution of tasks among the participants is also the task of the team leader.
Surprisingly, the assessment, planning and distribution of tasks is a duty that is easily accomplished if the team leader successfully copes with other responsibilities. To do this, he has competent employees who are motivated to complete tasks, they can easily cope with the assessment and completion of tasks. Timlid only needs to organize the process of assessment and distribution of tasks by the team in order to then control it. How exactly to do this - there are ready-made solutions in the form of development methodologies.
At a minimum, in order for tasks to be accomplished, 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 only be resolved by excluding one of the participants from the team. But the team leader is quite capable of influencing conflict prevention, and there is no way to give universal advice, except for one thing: you cannot suppress conflicts, in any incident you need to react exactly how to react - it depends on specific circumstances.
Also, the team leader should correlate the characters of the team members, if the team digests one bore, then maybe two already (I have nothing against bores, he’s still a bore).
Well, in order to “increase the effectiveness of interaction between team members” there is such a discipline as teambuilding, I am very skeptical of it, it may be affected by the fact that I did not see good teambuilders in business.
In general, I wanted to do without this item, but it is impossible not to completely mention it.
So, the team leader has his native duties, all of which relate to ensuring the team’s efficiency, that is, the ability to fulfill the tasks assigned to the team. All the rest is that the team leader assumes voluntarily (or forced) additionally, but this is not always bad. For example, for myself, I determined the rule that team leader, in development teams, must be directly involved in the development, that is, write code, develop architecture, etc. This is necessary in order to understand how the system is arranged from the inside, without direct participation in the development, such an understanding gradually comes to naught. I think many of the developers are familiar with this situation, when leaving an intensively developed project for several months, upon return, you find only rare familiar elements in the new system architecture. However, according to the reasoning above, direct development is not among the native duties of the team leader, in some projects it may be unreasonable.
In the real world, a team leader is not left alone to solve all these problems; he is assisted by heads and colleagues from neighboring departments. In practice, this help often develops into decision-making for team leaders, such moments should be alarming, since in fact his responsibilities are transferred to other employees. It is up to you to fight this or put up with it, but it is certainly worth paying attention to the real situation.
I am interested in the opinion of developers (in the broad sense - everyone who works as part of development teams), team leaders, line and project managers, do you agree with this decomposition of the role of team leader? Do you have any comments, additions?
From developers who have worked for a long time within the framework of one company or even one team more often you will 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 lead can do a lot of things, some activity fits better into its role, some worse, and they are no longer ready to give an exact definition of the role of team lead.
Where does the different idea of the Timlid post come from?
NOTE. Hereinafter, I talk about team lead only within the development team. I guess that much of the reasoning applies to other teams in many activities.
I had occasion to see team leaders as project managers, systems analysts, testers, designers, interface designers, architects, and even user support specialists.
In practice, in healthy organizations, according to my observations, the role of team lead is usually played by developers, who more than others feel responsible for the fate of the product being developed, which often develops into hyperresponsiveness than management skillfully uses.
NOTE. I call hyperresponsibility a case when a person feels responsible for circumstances for which he has no authority. I’m not trying to put a positive or negative connotation into this quality, I just state that in some employees hyperresponsibility is manifested.
It is due to this hyperresponsibility that the timlid takes on those activities for which there is no assigned position and, gradually, these responsibilities are assigned to him and, as a result, to his position. At this time, the rest of the employees also get used to such duties of the team leader, fixing in his mind just such a set of duties for any other team leader.
Of course, the described not only concerns the role of the team leader, and, to one degree or another, the picture is true for any position in any activity, but the team leader position is among those that are most susceptible to the described effect.
What is native activity for team lead?
What should an employee be able to do, what qualities must be 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 team lead is: "team lead is the interface of the development team."
He is responsible for everything the team is responsible for, for this he has the authority to form a team and use its members at his discretion to solve the team’s tasks.
If the team is responsible for the design of the system, the team leader must ensure that someone designs the system. The team is responsible for developing the user interface - the team leader determines who will do this in the team. And this is true for any task of the team: it is responsible for its implementation in the eyes of the team world outside the team.
What exactly should a team lead do?
He should be able to make sure that each member of the team copes with the tasks assigned to him. To do this, you need to:
- team members agreed to carry out assignments,
- competent enough for this,
- possessed sufficient resources (first of all, time),
- could get along together.
This is the front of the team work.
Let’s figure out what to do with this.
Leadership
“It is necessary for the team members to agree to carry out the assignments” - the wording is so-so, but could not be more elegantly folded. This refers to the fact that the employee must take tasks into work with the intention of completing them. The employee does not refuse to take tasks into work simply ignoring the instructions, or referring to the “crookedness of the solution”, does not sabotage, quietly doing his own business, but takes on the task with the intention of completing it. How to make a person want to complete a task? There are many ways, from coercion by the threat of physical violence to the promise of a trip to the Devcon. This is the very quality that I define as "leadership."
The stronger the leader, the more different types of employees he can manage.
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 everyone else does, how they do, how hard they try. Developers are more willing to follow those who are trying their best for the success of the project, even if this someone does not have formal authority either, out of a desire to help. Such a leader easily holds the initiative until he runs out of steam or loses interest in the project.
- Due to the knowledge of technology and the design of the project, the best in the team. Developers interested in professional growth are drawn to such leaders, they often come to the project just 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 leading to ignoring orders or hidden sabotage.
- Able to achieve respect for others due to personal qualities. When a person is objective, fair, consistent, employees can rely on such a person and his decisions. However, in order for a team to discern these qualities in a potential leader, it takes time for someone else to take the lead. This factor is most resistant to various kinds of changes in the team.
- The ability to exploit the mood of individual team members, forcing to act according to their plan (Filth movie immediately remembered www.imdb.com/title/tt1450321 ). I saw such leaders, even worked a little foolish in my professional youth, but fled in time. Obviously, you cannot manipulate experienced specialists who know their worth.
- The application of administrative measures provided by the formal authority 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 system of relations “I am the boss, you are the fool”. It also works for a fairly limited number of employees.
I cited the factors as an example, from what I observed myself, but for sure the classifier can be expanded. But even from the fact that led you can collect countless combinations. In practice, a team leader should recognize, develop and maintain (if applicable) a set of factors sufficient to maintain leadership.
Team competency
Sufficiently competent employees appear in the team as a result of elimination from the stream of insufficiently competent. Other employees often help in this team lead: our beloved HR-s, line managers and project employees, who are simply not indifferent. Often the team leader is not aware, like many around him, of the fact that it is his responsibility to not let an incompetent employee, that is, one who can not cope with the planned tasks, enter the team. Timlid can rely on the opinion of colleagues, management, personnel department, but the responsibility for accepting a person into the team is on him. Is there any responsibility for not taking a competent employee to the team? The fact is that in practice such an error cannot be verified, therefore, in case of doubt, it is easier for the candidate to refuse, which many people use. Moreover,
NOTE. Quite often, the mismatch of responsibility and authority is manifested in the fact that team leaders are not included in the decision-making process on the admission of a candidate, or do not make it possible to exclude an employee from the team on the initiative of team leader. Moreover, nobody takes responsibility for the team to cope with its tasks from the team lead. Here it is - imputed hyperresponsibility.
What is the professionalism of the team leader here?
As always, the speed and quality of the solution to the problem of providing the team with competent employees.
The quality in this case is the higher, the cheaper the company employees (and we consider not only the salary), provided that their level of competence is sufficient to solve problems. In some cases, speed is a priority, in some, quality.
Among the ways of staffing, I see fundamentally two approaches:
1. Take ready-made specialists from the labor market.
2. Raise frames yourself.
The rest, one way or another, are combinations of the two. The extreme case of the first is only hunting experts in the required areas, the second is hiring only from internship programs. There is no right way, and 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 could go wrong?
- A typical mistake is the hiring of insufficiently competent employees due to the inability to identify the professional qualities of the candidate. Simple examples are the inability or fear to ask the right questions at the interview, a shift in emphasis on the esoteric features of technologies , and not on their practical side. The consequences are expected - the candidate does not cope with the obligations undertaken by the team, therefore the team leader too.
- The other extreme is hiring only experts. In order not to make a mistake in hiring after filling up the cones, or out of a desire to assemble a dream team, the team leader carefully selects candidates who are not inferior in knowledge to himself. Since such a manner is more characteristic of expert leaders, the qualification is rather high. Candidates are sought for a long time, the costs of selection grow, the tasks of the project 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 everyone to challenge tasks, but nobody wants to go to the trash in the project. And the situation is becoming tense, as 4 architects know 8 opinions, most of them are correct, although they contradict each other.
- Another typical example is ignoring the need to attract other specialties to the team, for example, a front-end vendor, an expert in a specific database, an interface designer, etc. Often this happens simply because of a lack of understanding that such a specialist in the team is needed. As a result, the team of harsh backend developers develops something like a working frontend in their project, the development team has been struggling for months with PostgreSQL optimization, well, my favorite case is the mental hospital in the hands of patients.
- The example is more complicated - the unevenness of hiring, I took a pack of juniors so as not to get up twice, and they started writing code so that the team does not have time to review, and they come up with all sorts of questions, they ask continuously, they break something constantly.
- Or, on the contrary, we work, concentrate on tasks, postpone hiring for a while, when one of the key employees suddenly leaves, another on vacation / sick / taken to another project, and none of the younger generation is replaced. Say that they say the situation is unexpected? So the team leader should always be ready for such a situation, considering in advance what he will do in the event of the loss of a team member. And even better if he builds a relationship so as to know in advance about such an outcome.
There are still infinitely many options to make mistakes, some are written in books, for example, a well-known way to aggravate a project even if there is a threat of deadlines is to attract additional developers to it at the last moment, and team leader is the very hero who will not allow such a decision to be made.
It is impossible to answer the general question “how to provide the team with sufficiently competent specialists”, you can find its solution only within the framework of a specific project at a particular enterprise. We can only say that when developing this solution, the team leader should take into account the nature of the tasks in the project, the urgency of the tasks set, the significance (impact) of failure to meet deadlines, the plans and trends of the project, the state of the labor market, the availability of specialists in the market, and the difficulty of training specialists on their own.
Evaluation of work
In order not to incur obligations that the team cannot cope with, the team has to evaluate its resources, most often it is only about the available working time of the team members. Responsible for the fulfillment of obligations by the team development team. Regardless of how exactly the evaluation of the work in the team is carried out: everyone evaluates their task, or together they evaluate all the tasks, or all the tasks are evaluated by someone alone in the team, the team leader will be responsible for the assessment. It follows that the team leader has the authority to intervene in any of the ratings and change it at his discretion, this is useful in practice when the opinions of team members differ. Moreover, the development team, in the person of team leader, also assumes obligations for the implementation of plans, if the team's tasks in the organization are accepted by the plans.
The modern approaches to the development of management will not go into the development of a business team, it does not tell them how to solve the problem, who is out of the team to solve the problem. It is only important for management that the team complete the task on time, and it does not matter how this happens. It is interesting that even the popular Scrum methodology is silent on the distribution of tasks among participants, leaving the team to “decide for itself” who will take up what. Once I found out for myself how the distribution of tasks happens in practice, and I was satisfied with someone's answer that sooner or later there will be a leader in any team who will take the initiative in resolving conflict situations in the distribution of tasks. The argument in favor of the fact that the distribution of tasks among the participants is also the task of the team leader.
Surprisingly, the assessment, planning and distribution of tasks is a duty that is easily accomplished if the team leader successfully copes with other responsibilities. To do this, he has competent employees who are motivated to complete tasks, they can easily cope with the assessment and completion of tasks. Timlid only needs to organize the process of assessment and distribution of tasks by the team in order to then control it. How exactly to do this - there are ready-made solutions in the form of development methodologies.
NOTE. If you don’t know which methodology to choose under normal conditions, take Scrum. Because it is simple, defined down to the smallest detail and works quite well even without adaptation to the team and organization.
Team mood
At a minimum, in order for tasks to be accomplished, 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 only be resolved by excluding one of the participants from the team. But the team leader is quite capable of influencing conflict prevention, and there is no way to give universal advice, except for one thing: you cannot suppress conflicts, in any incident you need to react exactly how to react - it depends on specific circumstances.
Also, the team leader should correlate the characters of the team members, if the team digests one bore, then maybe two already (I have nothing against bores, he’s still a bore).
Well, in order to “increase the effectiveness of interaction between team members” there is such a discipline as teambuilding, I am very skeptical of it, it may be affected by the fact that I did not see good teambuilders in business.
In general, I wanted to do without this item, but it is impossible not to completely mention it.
Conclusion
So, the team leader has his native duties, all of which relate to ensuring the team’s efficiency, that is, the ability to fulfill the tasks assigned to the team. All the rest is that the team leader assumes voluntarily (or forced) additionally, but this is not always bad. For example, for myself, I determined the rule that team leader, in development teams, must be directly involved in the development, that is, write code, develop architecture, etc. This is necessary in order to understand how the system is arranged from the inside, without direct participation in the development, such an understanding gradually comes to naught. I think many of the developers are familiar with this situation, when leaving an intensively developed project for several months, upon return, you find only rare familiar elements in the new system architecture. However, according to the reasoning above, direct development is not among the native duties of the team leader, in some projects it may be unreasonable.
In the real world, a team leader is not left alone to solve all these problems; he is assisted by heads and colleagues from neighboring departments. In practice, this help often develops into decision-making for team leaders, such moments should be alarming, since in fact his responsibilities are transferred to other employees. It is up to you to fight this or put up with it, but it is certainly worth paying attention to the real situation.
I am interested in the opinion of developers (in the broad sense - everyone who works as part of development teams), team leaders, line and project managers, do you agree with this decomposition of the role of team leader? Do you have any comments, additions?