Does your Tech Lead complain of being pulled in multiple directions at once? Do they get frustrated about all the code they’re not writing? Being a Tech Lead can’t be easy, with all its context switching and plate spinning.
For a developer, it’s a great achievement to progress to a Tech Lead role. But the path to taking the step into your first Tech Lead role can be hazy, and not an easy one to make. So where do you start?
From your team's perspective, the Tech Lead is a key part of the team. They are the ones driving the tech vision and steering the team towards a common technical goal. As such, they can easily become a linchpin. What would happen to your team if your Tech Lead became indisposed for a week? What about a month? Will your ship continue sailing strong, or would you be lost at sea?
If these struggles resonate with your team, you could likely benefit from introducing the practice of Feature Leads and share the technical leadership love! We’ve been trialing this in the ThoughtWorks Digital team with much success!
If you’re on a ‘digital’ team, it’s likely, going by the rather generic description, that your team balances a lot of different streams and responsibilities. The case with the ThoughtWorks Digital team is a story of too much to do, too many different things to do, and not enough hands to go around.
Being a cross functional team, it’s impossible for everyone to be awesome at everything. There is only so much any one of us can focus on, at a given time. We can be sure that becoming an expert cross-functional front-end, back-end, devops, lean, kanban guru isn’t going to happen overnight.
Each one of us has our own part to play and our own strengths to bring to a team. In a cross-functional team, one needs to be wary of the balance between being average at most things, versus being specialised. Can we maintain our cross-functionality in the team and have champions in certain areas to help drive it forward? Can we have our cake and eat it too?
Feature Leads to the Rescue
Enter the practice of Feature Leads. A Feature Lead is responsible for coordinating and driving the team towards the successful delivery of a particular feature of your service or product. For example, in our digital team, while we worked to produce the features around the ThoughtWorks Tech Radar for Nov 2015, we nominated Laura Ionescu, a developer in our team, to take on the Feature Lead role and drive it home for us.
Through this role, Laura took on many new responsibilities that helped her grow and develop, adding to her existing technical skills. In addition to ensuring the team was on track to deliver to a hard deadline, she had to focus on:
- Helping drive analysis and engagements with stakeholders
- Managing the backlog of radar-related stories
- Setting the technical direction
The Feature Lead becomes the ‘go-to’ person for issues pertaining to their respective feature. In this, we must be careful that they don’t become unicorns that we can’t function without. A large part of the Feature Lead role is to find the balance in sharing the right amount of knowledge with the team. We can’t pull the team into all feature-related meetings and discussions, while some people might be focusing on different features or streams of work.
How can we achieve this? In the digital team, it meant us trying to pair smartly; rotating enough so that everyone got some insight. It also involved sharing things, such as the technical vision, through whiteboard discussions, having tech huddles and keeping the team updated with any important outcomes from meetings.
When stepping into a role such as a Feature Lead for the first time, you may feel overwhelmed. This may occur if you are trying to play ‘hero’ and save the world all by yourself. Delegation is critical when you are new to such a position. Don’t be afraid to ask for help. Don’t feel like it’s your sole responsibility to get it all done. Instead, utilise the strengths within your team and bounce ideas off each other to get things done together.
Shaping the technical vision and approach will require you to step away from coding from time to time. You might even need to block time out in your week, just to gather your thoughts on where it’s all going. Take some quiet time to plan ahead, to ensure that the team’s heading in the right direction from a technical standpoint. Such time may also be well utilised by looking at what options you have in front of you and spiking various approaches. After all, if there’s an easier and more elegant way of approaching something, I’m sure you and your team would love to know about it.
As it stands, your team might already have ‘hidden’ Feature Leads. You may recognize a ‘go-to’ person for a particular part of your system. Formalising the role they’re playing and labelling it could be a useful move for your team, so that you can help develop them. Making the team aware of their speciality makes it a benefit rather than a risk.
In order to benefit from Feature Leads, your team needs a critical mass. Feature Leads will not work when everyone on your team becomes dedicated to an individual stream. Then it will likely be too much specialization, and not enough sharing.
Give it a Go!
Introducing the practice of Feature Leads in your team might be a worthwhile experiment, if your team dynamics reflect what we’ve talked about. The person playing the Tech Lead role will likely be enthusiastic at the idea of less meetings and more coding. Those currently playing the dev role and who are looking to step up, will find it a great growth opportunity. Your team will become more resilient by reducing its dependency on the Tech Lead role.
After four months of experimenting with it on the ThoughtWorks Digital team, it feels like it has served us very well and is a practice we’ll be hanging on to. Give it a go and see if you can reap similar benefits!