Some time ago I decided to do a little research in an attempt to figure out which are the most often requested skills that a Tech Lead is expected to have. If you are interested in that post, it’s here.
Back then I was not surprised to see that there isn’t a universal set of skills that a Tech Lead is expected to have. Quite the opposite actually, different people perceive the role in different ways and have quite different expectations. This has led me in a definition I call the Divergent Tech Lead. But let’s start from the beginning …
Job titles and expectations
Looking at the different job specifications in the technology sector you will see titles like Tech Lead, Team Lead, Manager or just Lead followed by one discipline or another like Software, Engineering, DevOps, Frontend, Backend etc. These titles can have a variety of different meanings like the ones listed below.
Meaning that you need to lead the team through a technology transformation. This could translate in a big migration to a newer technology stack or to more modern methodologies and tools, that you will probably also need to at least partially define.
Meaning that you need to define or refine the team’s practices and ways of working. You would probably also need to ensure that the team is evolving and establishing which best practices to follow. Rituals and processes would fit into this as well.
Meaning that you understand what the team is trying to accomplish in such depth that you can shape the vision and direction of the team. In this scenario you will also probably have many things in common with a highly technical product owner.
Meaning that you are responsible for hiring, growing the engineers within your team, ensuring that their skills evolve and improve over time, finding interesting opportunities for them and in general caring about the well being and collaboration amongst all team members.
Meaning usually that you will be acting as an example of how best practices are implemented, provide technical guidance and meaningful alternatives in technological discussions, helping other engineers grow and expand their horizons and capabilities.
But are you the one and only?
Just looking at the list above can be intimidating. Are you supposed to have accomplished all of these in order to be a good Tech Lead for your team?
Do you need to have both the soft skills and technical expertise to be able to make a difference?
Do you really need to be the sole technical authority and the most senior person whilst also setting a direction and vision for your team?
Probably expecting a single person to pull all of these off simultaneously and entirely on their own is at least a bit ambitious, even with many years of experience under their belt.
So let’s talk about teams
We currently recognize that generalizing and assuming that all people are the same is not a fair representation of what makes each of us unique.
Personally I would extrapolate this at a team level as well, and say that no two teams are exactly the same. Teams are made up of different people, exist in different organisations, have different life spans, cover different domains, products and disciplines.
So, a Tech Lead role in one team can be quite different to the same role in an another team. And I am not just talking about technologies and best practices here. I am mostly referring to a team’s needs and wants. Let’s have a look at some examples.
Say you are now the Tech Lead of a newly created team, which consists of engineers from different disciplines and varying levels of seniority. This team may have a stronger need for a Lead who can establish good working practices and foster collaboration across disciplines, rather than providing technical guidance.
Say you are now the Tech Lead of a very small team, full of very senior engineers working towards delivering a large project for your organization. This team may have a stronger need for a Lead who can co-ordinate the team, facilitate discussions and be geared towards planning, execution and delivery.
Say you are now the Tech Lead of a team that is just starting on a green field project with some experienced engineers and some junior team members. This team may have a need for a Lead who can bring in technical expertise, mentor other engineer and geared towards knowledge sharing.
Why Divergent then?
Well, Divergent to me means that there is no strict definition of a Tech Lead and the thing that is most important is really understanding what your team needs and try to provide that as best as you can. Even if that is not your strongest skill it would really be a lot more beneficial and have much greater impact.
How can you do that? Spent some time observing and listening to what your team has to say and stay committed at improving both your skills and your team. Also remember that you don’t have to be an expert at everything to give this a go. You just need to care enough to try your best.