As an engineering team lead, I often come across people who are unsure about the role and responsibilities of a Team Lead. In fact, many people often confuse it with a Senior role, and there is little clarity on what the job entails. In this post, I want to share my thoughts and experiences to help clear the air around this crucial position.
Let's start by discussing the Senior role. Seniors are the technical gurus of the team. They are experts in the project's development stack and its architecture, help resolve technical issues, mentor newcomers, share their experience, and build high-level solutions. They are often looked upon as Software Architects, and their responsibilities primarily revolve around the technical aspects of the project.
In contrast, the Team Lead role goes beyond just technical expertise. As the name suggests, the Team Lead is responsible for managing a team of developers. The role involves solving problems and overcoming blockers on a much higher level, contributing to the project's growth, and acting as a shield for the team from the managerial and client side. They are the bridge between management, including delivery and project managers, and the development team, ensuring seamless communication and collaboration. Alongside this, Team Leads are responsible for monitoring the team's activity, time reporting, and controlling the phases of the project development while also taking charge of technical problem-solving. Hence, the difference between a Senior role and a Team Lead is that a Team Lead is a managing role.
It's worth noting that while a Team Lead is a management role, it's still a technical position. A good Team Lead should deeply understand the technical decisions made by their team to be able to manage them effectively. Developers are herd animals and can't be managed properly unless they recognize their Team Lead's technical skills. Therefore, it's essential for Team Leads to be proficient in the development stack used and share their knowledge with their team to gain credibility and acceptance as leaders.
A typical Team Lead's day involves several responsibilities, such as considering new tasks and delegating them, holding standups with the team, attending meetings, software engineering, solving architecture questions, and code reviews. It's a diverse and dynamic role that requires excellent communication, coordination, and technical skills.
In my experience, the role of Team Lead is usually taken up by developers who feel more responsible for the project's fate than anyone else. They demonstrate hyper-responsibility and commitment towards the project, which management often exploits. However, in healthy organizations, such individuals can thrive in their roles and contribute to the team's success.
To sum it up, a Team Lead is not just a Senior developer with additional responsibilities but a key figure in managing and leading a team. They must be proficient in technical skills while also possessing excellent communication, coordination, and management skills to ensure the team's success.
- Herding Cats by Geoff Garrett, Graeme Davies
- The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change by Camille Fournier