The intersection of technology and leadership

The Definition of a Tech Lead

There are many names for leadership roles in software development such as Senior Developer, Architect, Technical Lead, Team Lead, and Engineering Manager. These are just a few. To me, the Technical Leader (Tech Lead) plays an unique and essential role that others cannot.

The Definition

The Short: A Tech Lead is a software engineer, responsible for leading a development team, and responsible for the quality of its technical deliverables.

Tech Lead

The Long: Leading a development team is no easy task. An effective Tech Lead establishes a technical vision with the development team and works with developers to turn it into reality. Along the way, a Tech Lead takes on traits that other roles may have, such as a Team Lead, Architect or Software Engineering Manager but they remain hands-on with code.

To make the most effective choices and to maintain trust and empathy with developers, a Tech Lead must code. In “The Geek’s Guide to Leading Teams” presentation, I talked about an ideal minimum time of about 30%.

Effective Tech Leads Code
An extract from the The Geek’s Guide to Leading Teams presentation

Not just a Team Lead

Early in my career, I worked on a team that had both a Tech Lead and a Team Lead. The Team Lead didn’t have much of a technical background and had a strong focus on the people side and tracking of tasks. They would have 1-to-1s with people on the team, and co-ordinate with outside stakeholders to schedule meetings that didn’t interrupt development time where possible.

The Team and Tech Lead

While the Team Lead focused on general team issues, the Tech Lead focused on technical matters that affected more than just one developer. They stepped in on heated technical debates, and worked with outside stakeholders to define technical options and agree on solutions for future streams of work. They wrote code with the other developers and sometimes called for development “huddles” to agree on a direction.

More hands-on than an Engineering Manager

You manage things, you lead people – Grace Hopper

Any reasonably-sized IT organisation has an Engineering Manager. They are responsible for more than one development, and have tasks that include:

  • Maintaining a productive working environment for development teams.
  • Acquiring appropriate budget for development to support business goals.
  • Representing the technology perspective on a management or board level.
  • Establishes and/or co-ordinates programmes of work (delivered through development).
  • Responsible for overall IT headcount.

Engineering Manager

Depending on the size of an organisation, an Engineering Manager may also be called a Chief Technical Officer (CTO) or Chief Information Officer (CIO) or Head of Software Development.

Although an Engineering Manager represents technology, they are often very far-removed from a development team and rarely code. In contrast, a Tech Lead sits with developers, very much focused on moving them towards their goal. They work to resolve technical disputes, and are watchful of technical decisions that have long-term consequences. A Tech Lead works closely with the Engineering Manager to build an ideal work environment.

A good Architect looks like a Tech Lead

The Architect role ensures overall application architecture suitably fits the business problem, for now and for the future. In some organisations, Architects work with the team to establish and validate their understanding of architecture. A suitable amount of standardisation helps productivity. Too much standardisation kills innovation.

Some organisations have the “Ivory Tower Architect” who swoops in to consult, standardise and document. They float from team-to-team, start new software projects, and rarely follow up to see the result of their initial architectural vision.

An effective Architect looks like a good Tech Lead. They establish a common understanding of what the team is aiming for, and make adjustments as the team learns more about the problem and the technology chosen to solve it.

What is a Tech Lead responsible for?

You may ask yourselves, what exactly does a Tech Lead do, or what are they accountable and responsible for? I’ve actually already addressed that in this article about the Tech Lead’s Circles of Responsibilities.

What is a Tech lead again?

A successful Tech Lead takes on responsibilities that sit with roles such as the Team Lead, the Architect and the Engineering Manager. They bring a unique blend of leadership and management skills applied in a technical context with a team of developers. The Tech Lead steers a team towards a common technical vision, writing code at least 30% of the time.

If you liked this article exploring the Tech Lead role, you will be interested in “Talking with Tech Leads,” a book that shares real life experiences from over 35 Tech Leads around the world. Now available on Leanpub.

Update from Sep 2018: Short definition from “A Tech Lead is a developer who is responsible for leading a development team” to “A Tech Lead is a software engineer, responsible for leading a development team, and responsible for the quality of its technical deliverables.”

17 Comments

  1. Raymond Tay

    Hi,

    Good write up. I’m guessing a lot of people know what a tech lead is suppose to do but i like your perspective in which you compare what the other roles are suppose to be doing; that sort of thing helps put things in place.

  2. Patrick

    Thank you Raymond. In my experience, I have found many people (who have never played the role) have no idea what the role entails. It’s completely different from being a developer – hence the series of posts I’m writing.

  3. Eduardo Fulgencio Comendeiro

    Nice information. I want to do rol Tech Lead. Never let out the contact whit the code.

  4. Chris Bellevue

    Having now been in the industry for a long time and built websites for the largest companies in the world I have seen many different teams. The one thing I dislike about this type of role that you mentioned is that the “tech lead” is rarely a person who has up to date skills. What I mean is lots of times a person moves their way up the chain to tech lead, perhaps being an architect previously. Well the major problem with this is technology moves really fast and things change quickly. If a person was an architect say 4 years ago and now primarily does tech lead, well, things have changed greatly since this person did architecture. But since the tech lead hasn’t done coding or architecture for a while their skills are really frozen in time to when they last did either of the roles I mentioned. Now, there are some tech leads who actually keep up to date with skills on the side practicing and learning new techniques but it is extremely rare. So what ends up happening is the tech lead makes decisions for the practice that are based on outdated ideas. This ends of greatly hurting the practice.

    Also the ego of people in these positions lots of times makes them hard to work with. A common example I see all the time is the tech lead makes a suggestion about something that is really outdated. Then the lead architect comes along and suggests a more current and perhaps elegant way of handling the problem. The tech lead thinks his way is better and ignores the architect even though the architect still codes frequently and knows current best practices. I see this all the time from the smallest companies to Fortune 10. As a person rises in the roles their resistance to change greatly decreases based on ego. Now don’t get me wrong there are some extremely flexible and fantastic to work with people out there in very high level positions but I’m no spring chicken. I’ve worked with hundreds of different people and many dozen teams and the flexible high level person, tech lead, director, etc, is very much the minority not majority.

    Also I see you say that effective tech leads need to code. Well, this is true but it’s more than that. They need to code on MODERN techniques. As I stated above if they aren’t really working on new techniques a person who codes 30% of the time will just reuse all the techniques they were using years ago. To be an effective team leader a person really needs to code AND keep up to date with development techniques and the latest techniques in their practice. The last part is much more important than doing regular coding. I mean if the tech lead rarely does any coding on projects but is keeping up to date on the side with modern techniques then that is far more valuable than a tech lead who codes 30% of the time and just repeats the same code each time they work because their skills are frozen in time. If I look back in time pretty much every year, some times multiple times in a year, I am making adjustments to the structure of my solutions and constantly learning new coding techniques. The best devs are architects are constantly learning and incorporating those changes into new solutions and this should also be the case with tech leads. Nothing will hurt the synergy of a team faster than a tech lead nobody respects because their ideas are outdated and who fights with the architect who is trying to use modern up to date best practices but is getting resistance from the out of date skills of the tech lead.

  5. Duana

    I like the definition, especially the clarity around the architect role. What’s missing to me is the representation aspect, and the need to find a way to have a technical decision making process that the team thrives on. Also to encourage the formation of shared development practices.

  6. Joe

    Can you give me an idea about the difference between a “lead developer” and a “technical lead”? I often find these two names in one sentence? Is the tech lead a special kind of a lead developer? And the team lead is another lead developer?

  7. Jorge Medina

    Thank you very much, I have been in a Tech Lead position for the last years, this time in IT Operations, most team members are sysadmins with little team development experiencie, I enjoied your article.

  8. Nguyen

    very good, I like it, thank you for your sharing

  9. Loi Thai

    In my case, it is opposite from Chris Bellevue case above. Our architect has an outdated skill set, and developers have a very hard time working with him . I am in the process of stepping up to fill the tech lead role and get the development moving while guiding our architect to see the modern software coding techniques.

  10. William Mercado

    In my opinion a Teach Lead can code 30% of the time if possible, it’s always beneficial, but I find it more beneficial when the Tech Lead is involved in code reviews, and knows what the developers are doing. That way he is learning from the developers and making sure that the knowledge is being shared and well used among the developers. The Tech Lead will usually have long years of experience and that will help him understand new technologies faster and apply them in the correct way. As a Tech Lead I am always eager to learn new technologies and learn from developers that most of the time know things I haven’t done, and that doesn’t mean it’s wrong.

  11. Minu

    Thanks Nice write up

  12. John Born

    What should be the description of the tech lead role in the company which has development managers, team leads and tech leads?

  13. GJ

    It’s a bit old article but OMG. Aren’t we over that with more modern approaches in terms of self organizing teams and not depending on single person decision makers? “Architect” and “tech lead” ring warning bells to me, I believe you should eliminate such roles especially in the way you described their responsibilities. I expect all developers to be in that area where you are putting the tech lead on your diagram.

  14. Geo

    Great write up! Though there is overlap with roles of Eng Mgr, Architect, etc, I believe there is a distinct purpose for a Tech Lead and this article summed it up quick nicely. Additionally the points made are pretty aligned with my own experiences with Tech Leads in my previous experiences.

  15. Pankaj

    Great article. Very precise information that I needed to understand. Thanks. keep it up.

  16. Anandhan Regunathan

    Great Explanation. I personally inspired a lot.

  17. Carlos Smaniotto

    I agree with William, I think 30% as a “definition” is not good. Depends on the dynamic of the team, the culture of the company, etc…

    Think about a company involving the Tech Lead in many meetings room plus scrum process plus One to one meetings with the team?

    30% of 30days would be 9 days work or in other words, is difficult to a tech lead working in technical stuff during 9 days in sequence without interruption. However, helping with PRs or removing obstacles during the development process, yes it’s fine.

5 Pingbacks

  1. Dew Drop – November 3, 2014 (#1890) | Morning Dew
  2. Tech lead roles: What makes a technical leader? - Dreaming in DevOps
  3. Welcome to Chris Lamke’s Home on the Web – Chris Lamke
  4. Entry Level Software Developer Jobs: Top Frustrations
  5. Becoming a Technical Leader – Clear Blue Skybox

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2024 patkua@work

Theme by Anders NorenUp ↑