Some thoughts on being a Tech Lead…
ThoughtWorks have recently published an article on 5 things Tech Leads should focus on. This article, along with Sandro Mancuso’s excellent book ‘The Software Craftsman’ have made me think what I value about being a Tech Lead. This post is a bit of a ‘brain dump’ — it’s more about me clarifying what I currently think that being a finished product, so please feel free to give me any feedback — positive or otherwise!
For me, being a Tech Lead is a fantastic mix of software developer and leader of people. There’s always a tension between these two and, for me at least, there’s always a temptation to switch back to being a Senior Dev so I can enjoy the coding aspect of the role more, however the privilege of leading some exceptionally talented people is too good to give up.
Do we need Tech Leads?
Some companies have developed a culture that doesn’t have a place for ‘managers’ and have a very flat organisational structure. There’s lots of talk about how we need wirearchies as these more informal connections between teams allows organisations to tackle complex problems most effectively.
I think that no matter what the structure your organisation takes, it will always be helped by the presence of leaders who see their role as leading from the front to help create a culture where everyone can perform at their peak. Good Tech Leads are people who see themselves as primarily software developers but who are equally passionate about people and teams and how they can function most effectively. A Tech Lead can speak equally enthusiastically on software development, leadership, agile process and what makes people tick. Good Tech Leads don’t care about title or position and will serve an organisation well regardless of how they structure themselves.
That said, what should a Tech Lead focus on to best serve their team?
1. Be passionate
Passion is contagious. This doesn’t mean you have to be some off-the-scale-extrovert, it means you should be laser-focussed on being the best you can be at whatever you put your hands to. This kind of passion is incredibly contagious and challenges, provokes and inspire those around you.
As Tech Leads we have a lot to be passionate about — whether it’s writing code we can be proud of, being a crucial part of building the organisations we work for, forming high-performing teams or being able to serve those in our teams. We should tackle all of these things with passion and let this passion shine - it will inspire those around us and free them up to be passionate too. For those who are struggling, being passionate can help show them what is possible if they chose to be passionate as well.
Being passionate also injects a positive attitude in a team and can clear out cynicism and negativity. Passionate people don’t let themselves become victims of situations — if they see problems, they propose solutions and work hard to improve things.
2. Be available to your team
As Tech Leads, the most valuable contribution we can make to the organisation we work for is to build high-performing software development teams.
This means we need to be ‘lead-from-the-front servant leaders’. We need to make ourselves available to our team whether it be setting context to help them understand why what they’re currently working on is important, to coaching them on XP principles like TDD or writing clean code.
Our team need to know that we’re available to pair with them and that this takes higher precedence than whatever ‘management-stuff’ we’re working on. Coaching and training our team is one of the most valuable uses of our time and we need to make plenty of space in our days for this.
3. Structure your day, don’t let it structure you
I went through a stage where I was spending 6 hours a day in meetings. This meant I had little (if any) time for minor things like coding, pairing with members of my team etc. I realised that a) this wasn’t fun and b) I wasn’t focussing on my primary role — building a high-performing software development team.
I decided that I needed to determine what I should be spending my time on and structure my day accordingly — meetings would have to fit around these priorities.
Here’s how I aim to divide my day:
- 2 hours reading and replying to emails
- 2 — 3 hours meetings
- 1 hour team coaching and 1–2-1s
- 2–3 hours coding / pairing with team
This has meant I’ve had to opt-out of some meetings or delegate responsibilities to members of my team, both of which have been positive. It’s good to give opportunities to your team-mates to gain new experiences and opportunities to grow. Some meetings really don’t need me in person and I can provide input in advance by email and/or ask for the minutes afterwards.
4. Read, read, read
Reading is such a great way to learn, grow and develop. As Tech Leads we need to know a lot (software development, XP techniques, agile approaches, leadership, coaching etc) and we need to be growing in all these areas continually.
Books offer us a great way to learn from experts in their field and are both a very cost and time effective way to learn. Make sure you’re reading on a very wide range of subjects to cover all the range of topics we need to be growing in. I find I get passionate about different things throughout the year and I just follow my heart and read around these topics. So I may spend a few months reading deeply around coaching, learning styles and listening skills and spend the next month immersing myself in JVM profiling and then maybe re-reading a software classic like ‘Refactoring’ etc. The key thing is to always be reading and building this in to your daily schedule.
5. The most important person you need to be leading is yourself
Leading others is an incredible privilege and responsibility however the most important leadership responsibility we will ever have is leading ourself. Leadership is about moving a team of people towards a goal and growing them in the process. We have exactly the same responsibility over ourselves. We need to be focussed on where we want to be going and take definite steps for determining how we’re going to get there.
Some people do this by having a personal growth plan to help them clarify what’s important to them and how they’re going to achieve it. I highly recommend ‘Becoming A Coaching Leader’ which not only gives you some great advice on how to become a leader that encourages your team mates to take responsibility for decisions but also walks you through how to create a personal growth plan.
6. Be awesome!
If you either are, or aspire to be, a Tech Lead then you are positioning yourself up to be able to have a wonderful impact, not just on the organisation you work for but also for the people you work alongside.
Through your life experience, you have a wonderful mix of skills, talents and personality traits that will bless those around you and help you craft your team into a highly-aligned, perfomant team. Throw yourself into the role with all you have and let your passion, dedication and raw-enjoyment for what you’re doing shine through. It sounds cheesy but this kind of leadership creates a safe environment for your team mates to be equally passionate and dedicated.
We all have areas where we feel weak, whether it’s areas of our technical understanding, our leadership skills or whatever, but all these things can be worked on if we’re committed to learning the requisite skills. Don’t let these doubts hold you back, instead throw yourself into being the best Tech Lead you can and let yourself be awesome!