You can’t do without a team lead, but what about a tech lead?
My name is Vanya Antipin, I am Deputy CTO at AGIMA. Today I will try to tell you about the role of the tech lead in the company. Let me remind you that in October 2020 we spoke about the role of the team lead in the company and the team. In short, a lot depends on the team lead, including the effectiveness of the team, the achievement of the set goals, the prompt solution of work tasks.
What about the tech lead? This specialty is not talked about so often, but tech leads are important and are needed no less than team leads. I talk about this in more detail on the course. “Development Team Leader“ and share real cases. But let’s not get distracted, let’s get started!
Tech Lead is not a specialty, but a role
The main thing to know about a tech lead is that it’s a role. It can be formal, and it can be nominal, it all depends on the project and the team. So, an experienced engineer can become and most often becomes a technical lead, who not only quickly copes with his own tasks, but can also help colleagues, taking on additional technical tasks and responsibility for them.
As for the formal or nominal role, in classic Scrum, for example, there is no technical lead role, but in projects and teams that “live by Scrum“, there is a tech lead.
When is a tech lead needed? In general, it will be useful almost everywhere and always, but this role is especially important on large projects where there are many tasks, rich architecture and a team of 3 or more people.
What about responsibilities?
The main task of the tech lead is the technical management of the project, including both the entire architecture of the solutions, and some separate parts. Tech Lead is an expert on technologies of the project being implemented by the company. He usually has the last word in technical decision making.
An example is the development of a mobile application. If the project is large, then the responsibilities of a tech lead and a team lead rarely overlap. Thus, the tech lead is responsible for the architecture of mobile applications for two platforms, iOS and Android, for designing REST APIs in the context of the developed mobile architecture. But the team lead is responsible for managing the project, developing the server implementation of the API and the results of the entire project.
If the project is not very large, it happens that the team lead takes over the tasks of the tech lead – these are the very hard skills that the team lead needs along with soft skills.
By the way, one of the main tasks of the tech lead is the process of managing the technical debt of the project. Technical debt is work that has not been done on a project that will hinder its future development if it is not done. Tech debt does not include bugs or pending low priority features. Technical debt is, for example, poorly designed architecture or confusing code. Technical debt management is all about finding it, calculating the cost, and gradually eliminating it.
Tech Leads and Team Leads – Areas of Responsibility
Above, this topic has already been touched upon a little. But in general, the division of the areas of responsibility of a team lead and a tech lead is a rather controversial issue. But, in general, any company has unique experience and its own view of the division of responsibilities, plus its own team distribution scheme, operational and business processes. Therefore, there are so many opinions as to how many companies, projects and teams.
We immediately drew the line between team leads and tech leads. The Tech Lead is an emphasis on Hard Skills, and the Team Lead is on Soft Skills. The boundary is in the ratio of these skills, and depending on the context set by the project and the team.
In order to clarify the situation, I will give an example. These are cross-platform projects with a service-oriented architecture for the development of omnichannel digital storefronts. Within the framework of such a project, web & mobile applications, content management services, integration services and business logic implementation (API) are being developed. Such a project can have a whole team of leads:
Team lead managing processes, communications and budget.
Technical leads for each platform, responsible for the technical aspects of the architecture and the implementation of solutions.
Let’s take a closer look at the distribution of responsibilities between the team lead and the tech lead using the example of the development management process in the context of the implementation of features from the backlog. The process can be like this:
The list of tasks in the backlog is managed by the project manager. Development tasks go to work for the team lead.
The team lead receives the task, checks the accuracy and completeness of the requirements in the task, if necessary, clarifies the details or supplements the description of the task with a description of the specification of the requirements or a description of a possible implementation. The task goes to work for the tech lead. At the same time, there are three technical leads working on the project: front, back, mobile; – and the team lead is understood from the description to whom to delegate the task.
The technical lead receives the task, checks the accuracy and completeness of the requirements in the task, if necessary, supplements the description of the task with his expertise in the subject area, can describe the implementation or clarify the implementation proposed by the team lead.
The technical lead determined the executor and gave the task to work.
The problem from the developer is returned for a code review to the tech lead and the tech lead accepts the problem or sends it for revision with a comment containing clarifications and recommendations.
In such a process, the technical lead is responsible for the technical quality of the implementation, and the team lead is responsible for the timing and budget.
In general, a team lead definitely needs technical knowledge, but it may not be as deep as a tech lead. But a tech lead must be an expert in all technologies that are used in the project for which he is responsible.
Knowledge, skills and skills – let’s talk more specifically
An important point in understanding the essence of a tech lead’s work is that a tech lead is an expert. At the same time, not every expert is a tech lead. Above we said that a tech lead is mainly about Hard skills. But he must also possess a certain set of Soft-skills, because he also needs to communicate within the team, as well as manage knowledge about technologies.
Basic set of Soft-skills:
Search and selection of a candidate, interview.
Setting personal goals.
Strategic vision for development.
Relationships with People: Empathy and Emotional Intelligence.
Basic set of Hard-skills:
Knowledge of development languages and programming experience. Knowledge of the accompanying and surrounding technologies.
Understanding project architecture: architecture design principles, patterns, and tools.
Testing processes and tools. Test optimization, metrics and monitoring.
Now it’s worth talking about technologies and tools that a good tech lead should own. His area of responsibility is technology, the IT landscape of the project, and the technology stack that implements business logic in the context of the project. Accordingly, there are many technologies, and there are even more combinations of them, and this combination is unique for each specific project. Therefore, it makes sense to talk not about specific programs, but immediately about classes of solutions and tools:
Text editors and integrated development environments.
Tools for creating diagrams in different graphic notations and office programs.
Task and project management systems.
Knowledge management and documentation systems.
Code version control systems and CI / CD tools.
Containerization systems and DevOps tools.
Monitoring and incident management systems.
Server operating systems and their services.
Scripts and own code developments.
Who can become a tech lead?
In general, any experienced developer who loves and knows how to dive deeply into technology, plus effectively manages their own knowledge and focuses on the vertical scaling of competencies. The time it takes to become a good tech lead is difficult to determine. There is a high correlation between projects and professionalism. In general, a tech lead becomes a tech lead after about a year of working on a technology-rich project.
Those of the developers who effectively work with basic knowledge of various technologies, plus are oriented towards horizontal scaling, can be very good developers-engineers, team leaders, provided they have the appropriate ambitions and soft-skills. But they are unlikely to become Tech Leads.
To become a professional, you need to be a person who is very passionate about technology, who at the same time has the skills of self-organization. The ability to think strategically will also not hurt, plus the ability to see the prospects of certain technologies as applied to the current project.