Reading time: 10 min
"Managing Humans" is the title of an American bestseller about management in IT. What do programmers have in common with freedom-loving pets?
We break down the path from web developer to team lead: the key responsibilities of the role, personal qualities, and skills needed to move into leadership.
"Managing Humans" is the title of an American bestseller about management in IT. What do programmers have in common with freedom-loving pets?
Both are hard to manage.
It is hard to motivate them with anything.
It is almost impossible to direct them toward actions that do not interest them personally. At the same time, IT has the concepts of professional and career growth, as well as leadership positions. That means there is room for ambitious, enterprising people!
Let's look at a typical IT company. As in other industries, both horizontal and vertical growth are possible here.
Horizontal growth means learning a broader stack, adjacent areas (for example, mobile development), or moving into a related profession (project management, sales, analytics).
Vertical growth means moving into leadership roles (technical lead, team lead) or management positions. That is what we will talk about today.
junior developer (entry-level specialist); 2. middle developer (mid-level specialist); 3. senior developer (senior specialist); 4. technical leader (technical lead); 5. team leader (team lead).
A team lead is the leader of a development team.. First level: junior
Developers start their careers as juniors - they learn the required stack, gain experience, and solve simple tasks. Second level: middle
Here the work is on more complex, but clearly defined and understandable tasks. Third level: senior
At this level, the developer solves complex non-standard tasks, and does so with guaranteed efficiency.
Fourth level: technical leader (tech lead)
A technical lead knows the stack very well and understands code architecture, can assess the correctness of technical decisions and suggest ways to improve them, and deeply understands the project's technical details.
Fifth level: team leader (team lead)
A developer with well-developed leadership qualities and the ability to become a caring mentor figure for their team.
A middle developer can also become a team lead if they have strong leadership qualities.
A team lead is a manager, so they do less hands-on work than other programmers.
To avoid losing the skill, you need to write code for several hours a day while also learning and getting familiar with new technologies.
Otherwise, it will be hard to notice mistakes in time, do a quality code review, and generally earn the team's trust.
In practice, this is difficult: there is not enough time because of other management tasks. Inexperienced team leads may even feel that their contribution to the team's work has decreased despite the promotion.
The evaluation paradigm simply changes: before, your result was only your result.
It does not matter how much hands-on work you did if the team achieved the goal despite the usual resource constraints (budget, time, people, technology) - you did well.
planning and forecasting; organizing the team with different skills and team characteristics in mind; coordination and regulation; activation and motivation (including HR decisions and ensuring knowledge transfer between the team and other teams); control; making management decisions based on retrospectives (perhaps some operation can be optimized, or all projects face the same difficulty and it can be solved in this specific case).
On every project, the team includes programmers with different experience levels and qualifications.
The team lead breaks down the task, gives each person the assignment best suited to them, and monitors execution.
Because they see the task as a whole, they can notice a problem in time and warn the project manager about it.
For their part, the team lead can improve projects and propose their own architectural solutions.
Planning is not easy for newly appointed team leads.
Planning for the whole team at once is harder than planning for yourself: you need to account for time loss buffers and all kinds of unforeseen events.
To master the forecasting function, you need systems thinking:
Systems thinking is hard to develop in adulthood; it is much better if it is instilled in childhood, at school, or in the family.
The functions of coordination and regulation, as well as activation and motivation, are among the hardest to train. In a team, you need to maintain morale so that everyone works at full capacity and feels that their work is valued.
On average, the "motivating others" competency develops over 2-3 years. Team leads are sometimes given extra responsibilities. For example, in small organizations there are often no project managers on staff, and then the team lead has to communicate with clients and resolve all disputed issues.
Or there is no HR specialist, and you have to find people for your team yourself, which takes a lot of time and adds stress. In companies with large teams and serious projects, there are analysts, HR specialists, and project managers. At kt.team, team leads help HR only during technical interviews and test assignment reviews, and they take part in client communication only when there is a real need.
Sergey, Senior Engineer and partner at kt.team: "You can spot a future team lead right away: these are open, sociable people. A new senior developer joined our team a month ago, and I can already see that he will be a good team lead. An important quality of such a person is independence combined with the ability to work in a team. Future team leads can solve minor problems themselves and do not bother others over trivial matters. When necessary, they can gather the needed data themselves by requesting it from colleagues or the project manager, and ask the right questions."
At the same time, they have a strong sense of responsibility - you can trust them with a task and "forget" about it, they will not let you down."
creativity; persuasiveness; ability to collaborate; adaptability; time management. This applies not only to developers: the list reflects demand for the skills of the highest-paid professionals.
Providing high-quality feedback. The ability to tactfully draw a person's attention to their strengths and weaknesses, successes and mistakes, and help them draw conclusions.
Communication, interaction. Creating a pleasant psychological atmosphere, the ability to defuse tension or mobilize the team's efforts.
The ability to be a friendly mentor. It is important not to crush newcomers' confidence and not to be a "big boss."
The ability to notice a problem in time and account for risks. This is where systems thinking and experience come in handy.
The ability to plan deadlines for the whole team. Without understanding the principles of project planning, you will not get far.
A desire to take part in continuous process improvement. This is necessary for the development of the team and the project as a whole. When you are a team lead, you manage both the team (growing specialists so each can play to their strengths) and the process (you are responsible for the work flow, understand the current situation, and manage it). Operational management skills are easier to develop, while soft skills are difficult and not everyone has them.
An inept leader who asserts themselves at the team's expense and behaves like a showman or is overly authoritarian.
A democratic management style would be more appropriate.
It will be hard for someone without strong communication skills to become a team lead, especially without the ability to give constructive feedback.
Explaining an employee's mistakes and weaknesses in a way that is not hurtful but useful, and leads not to discouragement but to growth, is very important for a team lead.
You will have to learn this if your goal is to get a leadership role.
It is possible to become a team lead in a year! If you start counting from the middle developer level and above.
For a beginner who only just learned JS, for example, there are more important tasks.
First, you need to master the stack, earn authority in the team, and get to know the internal workings better.
The number of projects also matters - the more varied the programmer's experience, the easier it will be to manage the technical side of the work.
For a middle developer who has decided to become a team lead in a year, books and courses for improving soft skills will be useful.
The highest level of mastery: not only to receive information, but also to share it.
For example, running training for students or mentoring newcomers. Andrey, CEO of kt.team: "I recommend studying management, planning, psychology, and conflict resolution."
1) "The Five Dysfunctions of a Team" - Patrick Lencioni; 2) "Focus" -
Daniel Goleman; 3) "Personal Effectiveness"
- Harvard Business Review authors; 4) "Rich Dad Poor Dad" - Robert Kiyosaki; 5) "Brain Rules" -
John Medina; 6) "Flow. The Psychology of Optimal Experience" -
Mihaly Csikszentmihalyi; 7) "My Productive Year" -
Chris Bailey; 8) "How to Talk to Assholes" -
Mark Goulston; 9) EduScrum - Arno Delhij, Rini van Solingen, Willy Wijnands; 10) "The 7 Habits of Highly Effective People" -
Stephen Covey; 11) "Mentoring. The Peter Kuznetsov Method" -
Roman Matveev; 12) "Scrum. The Revolutionary Project Management Method"
- Jeff Sutherland; 13) "Resistance to Change" -
Robert Kegan and Lisa Lahey; 14) "Measure What Matters" -
John Doerr; 15) "Good to Great"
An unexpected life hack: read books about child upbringing. L. Petranovskaya or Yu. Gippenreiter will give you a lot of information about psychology. Books on NLP (neuro-linguistic programming) can also be very useful, especially if you had not previously heard of mirroring the other person or the false choice technique.
Build a high-level roadmap. Build a high-level roadmap: where your skills are now and how far you want to improve them to get from point A (your current qualification) to point B (the desired team lead position). It is convenient to group the skills by the five main functions we wrote about above: planning, organization, coordination, motivation, and control. By the way, this will be excellent project management practice: after all, your career is an important project.
In the table below, you can see a brief example of such a roadmap (for reference).
Plan your progress along this roadmap for the year in detail, with specific items for what you will do and when. Make a checklist and mark your achievements! An example to start with:
For developing planning skills: read two time management books - by 01.01.2020; introduce time management into the workflow so that no task is overdue - by 01.02.2020; learn to estimate your own time spent on work tasks with less than 10% error - by 01.02.2020, less than 5% - by 01.08.2020; ...
For developing stimulation and motivation skills: become a mentor for a junior developer and help them improve their qualifications - by 01.10.2020; ...
For general development of leadership qualities and communication skills: complete assertive communication training and learn how to resolve conflicts to your advantage - by 01.03.2020; take responsibility for a small project as soon as one appears - by 01.06.2020; give a successful conference talk and receive positive feedback from colleagues - by 01.10.2020; and so on. Do you follow SMART goal setting?
Then formulate the checklist right away with a date and an exact quantitative expression of the result (achievable, meaningful, and specific). We prefer OKR goal setting. By the way, we recommend getting familiar with both methods - they will be very useful at work.
The main advice established kt.team team leads give their future colleagues is not to rush. This is a highly responsible leadership role, and you need time to mature into it and gain experience.