This is the last article in a three-part series exploring the important role of the Tech Lead.
The tech lead role blends a mixture of technical and non-technical responsibilities, both of which compete for the time and attention of the person in this role.
Time spent on the people aspects takes away time that could be spent on code and finding a balance between the two can be hard. In this article, we explore a number of a different ways a tech lead can find harmony between these two different worlds.
Learn to delegate
In the previous article of this series, I wrote about the need for tech leads to move from ‘doing’ to ‘enabling’, and effective delegation is one way he or she can do this.
Delegation gives the tech lead more freedom to focus on items that only he or she is responsible for, like resolving differences that could be divisive in a team, or ensuring there is a diverse yet balanced set of skills and experiences amongst team members
Effective delegation is also a useful strategy to help team members grow professionally, by ensuring each individual has increasingly challenging tasks and providing the support to successfully complete them. For some tasks, a tech lead might need to be more involved in order to ensure that all critical risks are being addressed, and also so the tech lead does not stray too far away from the reality of an ever-changing codebase.
Recognise and accept paradoxes will exist
Every leader is faced with a number of paradoxical situations that, at first glance, appear to be at odds or in competition with each other. Unlike the world of programming, which is often full of certainty, or at least very binary, a tech lead finds him or herself dealing with a newer world, full of ambiguity and longer feedback loops.
An effective technique for dealing with this uncertainty is consistent monitoring to ensure a tech lead spends enough time balancing time for each paradox.
Classic paradoxes that a tech lead faces include:
- Spending time delivering valuable software through new features or applications balanced against time to explore new technology, or letting the team improve, learn or innovate;
- Working on infrastructure that supports technical demands such as scalability, uptime and deployability, when there are more features or systems to develop;
- Finding time to still read and write enough code to be an informed decision maker and build respect with the team, whilst focusing on the non-technical aspects such as long term planning and focusing on people; and
- Encouraging consistency in the codebase to decrease the cost of change, whilst encouraging incremental improvements that might lead to inconsistencies.
A tech lead successfully overcomes these paradoxes by adopting a mentality that attempts to satisfy both parts of the paradox, rather than choosing one over the other.
Use a peer, mentor or coach
The tech lead can find him or herself in a rather lonely role, torn between both the technical and non-technical worlds. His or her knowledge of people and longer-term business plans sometimes makes it harder to share difficult issues with the team, as team members may misinterpret what started out as a thinking process as a commitment or a promise.
Tech leads can find support by talking to someone external to the immediate situation – either a peer in a different part of an organisation, or an external mentor or coach. Just as the tech lead uses one-to-one sessions to clarify issues with his or her team members, a one-to-one session with a fellow tech lead, mentor or coach can give him or her newer approaches or insights into sensitive matters which he or she would not have realised.
Spend time each week thinking both short and long term
Tech leads can find themselves in a vicious cycle, constantly reacting to what appears to be the most important issue, but only really reacting to what is most urgent. The situation compounds itself when he or she cannot effectively delegate and they find themselves with even less time to think.
A tech lead can manage both effectively by committing time each week to not only dealing with the urgent topics, but also ensuring they spend time breaking down the important topics into smaller steps.
Celebrate the small wins
Developers will know the satisfaction of a broken test successfully passing, or seeing a new feature come to life and used by end users. Tech leads realise that the feedback loops with people and processes take a lot longer. An action, conversation or decision made today may not have an impact until two or more weeks later, but he or she is aware of this.
What matters is recognising the small changes that result from small actions and the tech lead celebrating them as recognition of his or her work. He or she can be really satisfied, knowing that small results can have a big impact.
The tech lead role brings together an internal conflict between the technical and non-technical worlds, and introduces him or her to a world of more uncertainty. Tech leads can find harmony in their role through understanding that paradoxes and uncertainty are essential properties of their worlds, and finding methods to acknowledge these hurdles, such as talking to peers or mentors, can be beneficial.
They can create more time for themselves through delegation, so they can then focus on solutions that solve their paradoxes, or spend time thinking about the short-term and long-term issues they may have.
To better endure the uncertainty of this new world, they must celebrate the small successes along the way, as they acknowledge the positive impact they have on their team and environment.
Patrick Kua is a speaker, author and tech lead currently working at ThoughtWorks