So, what is a Tech Lead and why do we need one? As with most roles within our field, there is a fairly wide spectrum of definitions. However, most people tend to agree that the role’s primary focus is to take responsibility for the technical quality of deliveries within a defined area and that it includes a mix of programming, architecture, project management and leadership. It is usually not a full-time management role, meaning that the Tech Lead is still expected to code at least some part of their time. As such, it is often seen as a good next step for someone with a few years of experience as an individual contributor, who now wants to take on more responsibility and dip their toes into leadership, though approaching it from a very technical angle.
For organizations with multiple development teams (or single-team organizations without technically strong C-level leadership), introducing this role can also be a good way to bridge the gap between senior technical management and the teams. By pushing technical decision making authority down to the tech leads in each individual team, the organization can maintain its agility as it grows and continue to make technical decisions that are relevant for each team, without having to resort to micro-management. This also makes teams more autonomous and independent, which is generally “A Good Thing” as it increases speed of development by removing external dependencies and unnecessary lead times. Of course, this only works if the senior technical leadership (e.g. the CTO and/or VPE) sets direction and alignment across all teams by communicating a strong vision, strategy and goals combined with a set of guiding principles to consider when taking technical decisions.
When crafting the role description for a Tech Lead, the key thing to keep in mind is that success in this role requires more than just technical skills. Therefore, it doesn’t always have to be assigned to the most experienced and/or technical engineer on the team. On the contrary, most reasonably good developers with at least a few years of experience should have the necessary coding skills for the role. A good understanding of technical best practices and when to apply them is obviously important as well as being able to reason about architectural topics. But even more essential (and harder to find) skills are the ability to communicate, coordinate and cooperate with both technical and non-technical people. And, the project management part of the role requires an aptitude for planning and breaking down complex projects into smaller tasks that can be delivered incrementally to minimize risk and maximize learning.
Since it is a role focused on excellence in delivery, it is also important to be able to understand and focus on producing business value and as part of that, be able to find the right balance between technical perfection and pragmatism. We certainly don’t want to take on a massive amount of technical debt in the solutions we produce, but we also don’t want to spend forever polishing them to perfection. Knowing where to be on this spectrum in every situation requires some experience. This is an area where more senior technical leaders should put extra focus through coaching and mentoring.
When it comes to anti-patterns, the most common one is to treat the Tech Lead role as a one-man show who takes all the important technical decisions, assigns the most interesting tasks to himself and acts as a gatekeeper when accepting pull requests in the team. Instead, a good Tech Lead should be able to leverage the team’s collective strengths, skills and competencies to drive results, acting more as a facilitator than a dictator. In this area, the Tech Lead’s leadership skills really come into play. You want to find someone who is helpful, humble and inclusive and whose ego does not get in the way of finding the best technical solution. Needless to say, these softer skills are often where inexperienced Tech Leads struggle the most and where good guidance and clear expectations from senior technical leadership is crucial.
Another area where people new in the role often struggle is around delegation. As an individual contributor, it is natural to measure your performance by the things that you deliver yourself. As a Tech Lead, your performance is instead measured by what the entire team delivers. Therefore, one key to success is to focus just as much on what the other team members are working on, and how you can help them, as on your individual deliveries. This shift in perspectives can be really hard for new Tech Leads and it is not uncommon to feel a lack of accomplishment during days when you have not produced many lines of code yourself. Of course, this does not correspond to reality (quite the opposite in fact), but years of getting used to the tangible and instant gratification of writing code as a measure of performance can be hard to unlearn. Again, good coaching and mentoring from senior technical leadership, who have often been through this themselves, is invaluable here.
Since it is a role with emphasis on much more than just technical expertise, there is some likelihood that people new to the role will realize that it is not their cup of tea after all and will want to get back to a pure software development role. This should be perfectly ok. As a leader, the best you can do is to make it very clear that this is not seen as a step back career-wise and that there is a rollback plan in place. If not, you will either get an unhappy and unmotivated employee or a resignation, and neither of those alternatives are very appealing.
To summarize, the Tech Lead role is a great stepping stone into leadership and a good way of providing scalability to a growing technical organization while at the same time offering more diverse growth opportunities for your employees. However, the responsibilities and focus areas of the role varies a lot from organization to organization. Therefore, it is important to think hard about what the role should look like in your context to match your organization’s needs. And to keep in mind that being a Tech Lead is about much more than just technology. Especially new Tech Leads will require lots of guidance and support to become fully proficient and comfortable in the role.
In an upcoming post, I’ll write more about different flavours of the role and how you can use those to offer more flexibility and tailor the role to your organization’s specific needs. Until then, I can highly recommend Patrick Kua’s blog where there is lots of really good content about the Tech Lead role as well as other aspects of technical leadership.