When I became tech lead of the TweetDeck team in mid-2016 I spent some time thinking about what I expect from a lead and, using that list and other brilliant resources, the behaviours and attributes I hope to exhibit.
This post is a sort of check-list: I return to it periodically to make sure that I have recently paid some attention to everything on the list.
These days I am a tech lead on the GraphQL team, and my name is on some other internal projects in a leadership role. The teams are bigger; so is the scope for success or failure. This post was edited in 2018 to reflect that change.
What do I want from a lead?
- Clear explanation of why we’re doing something
- Quantifiable short and long-term goals
- Ownership where necessary with clear responsibilities and expectations
- Team advocacy — selling us and sharing our work
- Documented processes with justification
- Space to become expert
How should I behave as a lead?
Within the team…
- Be as explicit and transparent as possible about project dependencies
- Run regular, project-focused meetings with a clear structure — attendees should know what to expect
- Transparently document project management process
- Trust the team to deliver when responsibility and ownership are given
- Be ready to explain why about anything, and able to say I don’t know
- Advocate for open-source and external sharing
- Challenge the team to solve problems in the way they want
- Encourage quantifiable, short and long-term goals
- Help team-mates with career advancement and growth
Outside of the team…
- Actively communicate with other teams about blockers
- Sell and share the team and their work
- Actively monitor for external changes that may affect the team
And, at all times, optimise for happiness.
What are my responsibilities?
I think of GraphQL as product team and, as a result, this list significantly overlaps with what I perceive to be a Product Manager’s responsibilities:
- Strategy and vision for the team
- Prioritised backlog for tactical decisions
- Quantifiable short and long-term goals
- Tracking progress for:
- the team
- outsiders
- Communication with:
- stakeholders
- customers
- dependencies
- Team process
- Lightweight, clear, no SPOFs
- Meeting facilitation
Of course, I’m also on the hook for some code but where possible I shouldn’t be on the critical path, or in a position where my unavailability affects others.