Following my post about management, one of the requests I got was to talk about how the role of the manager and the tech lead relate to one another.
Management is a role, and mostly responsible for ensuring all the right things are happening in the team regarding to the people, the projects, and of course, the team dynamics and rituals. If you are a manager and take care of all things related to those three items, then you are likely to have no time left to get deeply involved (much less hands on) in the technical execution of the team. Right? Hmmm, not exactly.
Whenever a manager interacts with their team 1:1 or in team meetings, it is their opportunity to influence the technical direction of the team. They do that by asking the right questions, and having good enough technical chops so that they know if the team is taking a bad turn. They also are responsible for aligning the direction of the team in relation to the strategy of the department or the company.
The manager brings context to the conversation and the assumption here is that if the team has all the data, they will make the right decisions. If they don’t have all the data it is the manager’s problem. The opposite is also true: if the company doesn’t understand why the team is doing what it is doing, it is the job of the manager to bridge the gap and ensure the company has the context.
And what about the technical leader of the team? First, I believe everyone is or should be a leader within their level of competence. Being a technical leader isn’t a job, but it is a role, and it is fluid. People step in and out of the this role organically. I don’t believe in giving the title of tech lead to someone, that should be earned not from management, but from their peers. If you have one technical leader in the team and that person has all the answers all the time, you probably have a different problem to resolve.
If the manager is the one bridging context between the rest of the company and the team, the technical leaders of the team do the exact opposite: they bring the context from the field to the manager and the company, so the manager and the company understand how things which are not obvious to them are also important and need attention.
I say that the tech lead and the manager do four hands management of the team, with the tech lead foreseeing the technical challenges that will come down the road, and aligning with the manager-provided context to ensure the solutions for such challenges also will respond to the growing demand and strategy of the company.
They might be the ones proposing technical changes in the software stack so the team’s services will scale as they need, they will propose breakthrough changes instead of incremental improvements when it makes sense. I am a big fan of incremental improvements by the way. But sometimes they aren’t enough.
Technical leaders are usually experienced people who can recognise patterns and raise flags when technical processes are slowing down the team. They hold the quality bar of the team. If a technical leader has a low quality bar, usually so will the team (and that is an issue for the manager to resolve). Holding the quality bar high means helping others to grow in their technical skills by having technical conversations with the team, doing comprehensive code reviews, and paying attention to what is happening in the day to day — including raising performance issues with the manager so s/he can deal with it.
Technical leaders also make people around them technically better. They do that by intentionally understanding the limits of other people knowledge in the team and helping them to bridge gaps. Some tech leads might hold recurring conversations with people in the team. It is important that those conversations are intentional and have clear value to the person, and the team. I am always cautious of asking for people’s time and removing them from their focused work without a purpose (even if the purpose is just “let’s chill out together and celebrate an accomplishment”). No meeting should feel like a chat over a coffee at the kitchen. Then it is chit chat.
If the managers help create and hold the conversation about people, projects and their teams with other managers within the company, the tech leads in a company weave the technology fabric in cooperation with their peers within and outside their teams, depending on their level of seniority. They create and hold the conversation about the technology, and therefore own the technical outcomes.
I see the role of the technical leaders and the managers are complimentary to each other. A team without a good manager will likely struggle just as like a team without technical leaders will.
Sometimes, when there are no technical leaders in a team, the manager can and should step in temporarily to fill in the gap between their team’s ability and what needs doing, while they work to hire other experienced people that can step into those gaps quickly.
While the manager is the one responsible to bring clarity to the scope of the team, and the direction and strategy of the company, the technical leaders are the one that then help clarify how we’ll get there. They might also spot opportunities that influence and change the direction and strategy of the company, depending on their seniority.
No manager can make people listen to someone who doesn’t have technical competence and substance, and those things become very obvious. Being a technical leader isn’t easy, and there’s no single recipe for how to live the role. In some companies this role is assigned to people as a job. I prefer not to do that.
Technical leaders being naturally elected by their teammates vs top down also increases the confidence of the person currently at the lead role. Indeed makes for a much healthier team dynamics.