What are the responsibilities of a tech lead, and how does that role fit into our team? I thought deeply about these questions, read blog posts about the topic, and discussed it with Benjamin many times. As usual, the answer to those questions is: It depends.

What Others Think

Jason Liszka describes the role of a tech lead by showing examples of good and bad tech lead. He describes a tech lead as the most senior developer on a project who is responsible for helping the team to get work done by facilitating discussions or identifying obstacles and getting them out of the way of the team. He works closely together with product management, is involved in project management, and owns the technical vision.

Others question the necessity of a tech lead role completely, as Adam Ralph did when he wrote No Tech Lead as a reply to Jason’s post. He says that a tech lead shouldn’t be institutionalised, because all members of a team should do the good things, and the bad things are typically symptoms of having a tech lead.

In addition, Why smart software teams don’t need senior developers, tech leads or architects by Graham Lea covers many reasons why this is a good idea. He describes the mental model of roles and how those affect a team.

How We Think About It

Being the tech lead of a project basically means that you are responsible for its success. I don’t like the idea of having only one person that is held responsible for an entire project. This introduces a single point of failure for the whole team and mostly leads to other team members feeling less responsible. Graham Lea wrote:

Some role titles make an individual responsible for something that should be collaborated on by the team

This is why the ideas of Adam and Graham influenced us most while thinking about the tech lead role at vaamo.

Other than that, we live a culture that respects listening to each other, open mindedness, focus on customer value, trust, and many more things we deem important for our collaboration.

Team values

The image above shows the team values we identified during the past few months. These are basically the soft skills needed to be a tech lead. As we all live these values each of us is able to be a tech lead.

So, at vaamo the whole team shares the tech lead role and all of the responsibilities. This means we teach each other new technologies and help each other circumnavigate roadblocks. We discuss and decide the direction in which we develop the technology stack. Together with the product management we discuss how to implement features in order to provide the best customer value and user experience. Or in short, each of us feels responsible for the product and does his or her best to make it successful.

In a follow up blog post I’ll describe in more detail how we actually share the role.