Expectations for a technical or/and a team leader
Somebody recently asked:
How do you learn to be a tech lead?
Knowing her background, I replied with another question:
Do you mean tech lead or team lead?
The difference was not obvious to me until I worked as a tech lead in a team that had a team lead.
Team vs Technical lead
On that particular job, as a tech lead, my responsibilities were:
- Choose the right tool for the job: be aware of existing tools/libraries/frameworks, their trade-offs and what was appropriate for the company’s context.
- Code contributions.
- Code quality (aka bugs).
- Production issues/outages.
- Design and architecture, including NFRs.
- Developer productivity: from testing, CI/CD, release, monitoring, …
- Technical mentoring.
- Awareness on other parts of the system: functionality available, technologies used, trade-off, high level workings, lessons learned.
- Applying the company’s architecture constraints, principles and practices, and raising concerns when we wanted to deviate from those.
- Technology proof of concept.
- Technical assessment of candidates.
- Technical debt prioritisation.
My fellow team lead would take care of:
- People’s career progression.
- Performance appraisals.
- Reporting up and down.
- Recruitment, team composition.
- Internal and inter-team conflicts.
- Project management.
- Inter-team coordination and dependencies.
- And a myriad of other things that I was not aware of.
What we will both do:
- Backlog grooming: me for feasibility and rough sizing. Team lead to know if we had the capacity and for stakeholder management.
- Development process improvements: me more to suggest, team lead more as Scrum Master and lean/agile coach.
Basically I will become a software architect while the team lead would become an engineering manager.
Continuing with the conversation:
Me: “What path are you asking about? You cannot do both.”
Tech lead: “Both is actually what I have been asked to do.”
Me: “How is the experience of trying to do both?”
Tech lead: “Is it a lot. I spend most of the time doing management, admin and planning.”
Me: “So you are team leading, not tech leading. But if you are not doing the tech leading (because you have no time), then you should raise it with your manager.”
Tech lead: “Haven’t you ever act as both the team and tech lead?”
Me: "In my very early days (~2002-2004), in a very small company in a team of ~6 people. Of the list above, I know I did not had to (or did not know I had to):
- Production issues/outages: never got anything successful in production, hence no users, hence no production issues.
- Design and architecture: system that we built were simple.
- Developer productivity: mostly unknown things for me back then.
- Awareness on other parts of the system: there were no other parts, not other teams.
- Applying the company’s architecture constraints: No such a thing.
- Technology proof of concept: no time for this.
- Technical debt prioritisation:
- People’s career progression: we were trying to survive, not planning long or mid term, also I was probably not aware.
- Performance appraisals: see above.
- 1-2-1: see above.
- Reporting up and down: company was small enough to not need this.
- Recruitment, team composition: recruitment yes, but the team composition was pretty static.
- Internal and inter-team conflicts: Internal yes, but no other teams.
- Inter-team coordination and dependencies: no other teams."
That is a long list of things I did not do.
Are you asking too much from your team/tech lead?
If so, what is she neglecting? Do you agree with her choices?