What’s a Tech Lead? Decoding This Developer Role
The role of technical lead can be hard to define, and in many cases people accept the role without knowing what the definition is. Patrick Kua proposes one definition, but not all organizations share the same interpretation, or even define the role explicitly.
Essentially, a tech lead is someone with a programming background who leads the development team. The tech lead deals with technical matters within the team, works with stakeholders to define requirements, and communicates with the other developers to decide on a project vision.
However, many new tech leads get little guidance on what the job entails, so they focus too much on the technical aspects and not enough on the people and the team.
A particular challenge for a first-time tech lead is moving from "best technical contributor," a skill set that led them into this new role, to being a facilitator. Being a great programmer does not automatically translate into being a great tech lead. It takes different skills to manage people, communicate, and be comfortable in a position of authority.
People we consider tech superstars become tech leads, but superstars aren't the ones who deliver the big wins; teams are. Tim O'Reilly explains that celebrating superstars can lead to reduced loyalty and productivity. He says, “Success in today’s world, whether of sports or business, requires assembling a team of people who can work together to achieve something extraordinary. And yes, to achieve something extraordinary, it helps that some of those people be superstars.” But, he points out, the best players make their teammates better.
The people side of software development is important and, in many ways, harder than the technical aspects of a project—but it is also more rewarding. A well-functioning team can help individuals perform better as well.
The focus on enabling, as opposed to doing, is especially important for tech leads on agile teams. Henrik Kniberg describes the role of an agile leader as creating alignment. A leader can also do things that boost confidence and enable the team, as Ellen Gottesdiener and Mary Gorman suggest . Software developers don't often work on soft skills like these, but a good tech lead needs these abilities.
Leadership can be a challenge for new tech leads because they are often promoted to this role based on technical skill. Being a leader means helping others solve problems rather than fixing everything yourself (even if you want to). But even though it may take a tech lead awhile to adjust to this new role, as Jerry Weinberg explains in his classic book Becoming a Technical Leader, technical leadership is something anyone can practice.
Does your organization have a good definition for what a tech lead is? How does your organization help developers become effective tech leads?