What Makes a Good Tech Lead?

Every team needs a great leader. That is especially true for software teams. Between fighting back bugs, developing awesome new features, and rushing to meet deadlines, team members need someone to turn to that they can count on. But who? What skills and what responsibilities fall under the technical team lead position?

Over the course of my career I have had some really great team leaders. I’ve also had some that weren’t as great. The inspiration for this article came to me when I was trying to determine what made the “greats” so amazing to work for? What skills and responsibilities did these developers have that set them apart from other really good developers that just weren’t great technical team leads?

I’ve developed a list of skills and responsibilities that I believe to be essential for a tech lead to have if they are going to be successful. They should posses almost all of these skills and be comfortable, willing, and able to handle the listed responsibilities.

A Map of Technical Team Leader’s Core Responsibilities

The fact is a technical team lead (which I will now refer to as TTL to avoid the extra half second of typing) balances several key responsibilities, outlined in the following mind map:

Team Support

Of course the first and most important responsibility is team support. A TTL can motivate the team, has the ability and art of facilitating team activities, and can organize team work into a process oriented manner. People should want to work with this person. This is the guy/gal that makes your (the rest of the team) life easier. Everyone occasionally needs to be recognized when they do something right, but the team also needs to be helped to stay motivated on something that may have become very difficult, political, or has just been going on too long. Thanks tech lead!

Technical Excellence

Second, a TTL is responsible for nurturing/enforcing and monitoring the product technical excellence and high quality. More specifically, a TTL is responsible for ensuring this is realized by the whole team. In other words, if the TTL developed an excellent product by himself while the team is doing nothing, then he is still failing in this regard.

Innovation

Third, a TTL should sponsor innovation in the team work. This is different from technical excellence. It is related to the team spirit and desire to experiment and try new things and unconventional solutions. This is also different for problem solving, because you can solve a problem in a dumb way!

List of Technical Team Leader’s Core Skill set

  • The ability to mentor staff members at all level of seniority, from someone who has been out of uni for 3 months to a person who has been programming for 30 years
  • How to deal with people problems with your team members
  • A good knowledge of your development domain. This includes: languages, frameworks, utilities, development environments
  • A solid understanding of issue management systems, project management skills and version control
  • Be the go-to bug killer
  • Know how to conduct timely code reviews, what to look for and how to minimize the amount of time they take to hold and for the changes to be made
  • How to write unit tests and mocks, and to get your developers to write them too
  • Knowledge of what design patterns are and when to use them
  • Knowledge of what code smells are and how to mitigate them
  • Continuous integration
  • The ability to plan projects and releases
  • The ability to componentize your projects and break it into functional parts
  • A thorough understanding of security, including the correct way of handling passwords, separating systems, securing data, etc.
  • Managing business directives/goals and converting relevant ones to information for your developers
  • The ability to estimate the time for programmers of varying skills
  • The ability to allocate tasks to the correct developers based on their skills and abilities

Finally, you need to realize that your teammates are not your developers. I’ve often heard technical leads say things like “yeah, my developers…” or “my guys … “. No. They are your teammates, no matter what your role in the team is. Having a leadership role does not mean you are the boss of your teammates or that you can boss them around. If anything, it destroys morale and the results of your team will suffer tremendously from it.

And that’s my list… did i miss anything? Tell me in the comments!!

If you liked this post, I have many more at JasonRoell.com. Subscribe and never miss a post! Thanks for reading!

Uncategorized

jroell View All →

I love to code and build new innovating solutions to people's problems!

2 Comments Leave a comment

  1. Very well written.
    You touch on a set of (Soft skills) that are hard to quantify until you look at historical results.

    You could write a think book on every touch point you listed.

    Regards
    MTT

    Liked by 1 person

    • Thank you very much Michael. I agree that the set of soft skills required even for a tech lead can sometimes be overlooked, but it is only the ones with the tech skills and soft skills that will be the ones to succeed as a good leader.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: