I’ve been a senior developer for over a year now and I’m starting to think about how I can grow into an awesome tech lead.
I’ve always wished that there was some kind of manual that would explain to me how to become a tech lead. Which skills I would need to learn and grow, how to know what to worry about and what not. What kind of things I should be looking out for on my team and how to lead a group of developers to make good quality software.
Alas it seems that there is no such manual and you really just have to get out there and try and learn quickly.
A couple of months ago I was fortunate (or unfortunate depending on how you look at it) enough to “try out” being a tech lead while the other senior developers and tech lead all went on holiday for 2 weeks at the same time, leaving me to try to hold everything together while they were gone.
Initially I was quite daunted, but hey you don’t get the opportunity to ‘play’ at being the tech lead without having to actually BE the tech lead very often. I was also very lucky that I was in such a ‘safe’ environment and could fail fast and learn quickly.
These are some lessons that I took away from that week:
- Trying to stay in the pairing rotation and being a useful part of the pair while starting out in this role is really hard. I started this way at the beginning of the week, but found it too distracting for both me and my pair when I kept getting pulled away for other discussions. The constant context switching every 5 minutes meant that I could never concentrate fully on pairing effectively. Once I took myself out of the pairing rotation and worked on my own, my stress levels and concentration were much better, and I didn’t feel guilty about being an awful pair. It also meant I was free to float around and help anyone else where needed without worrying that I’d left my pair in the lurch.
- I kept a list of all the things that I saw going on around me that I thought might be ‘smells’. There were a few things that I simply didn’t have time to worry about, making a note of these and moving on made it much easier to not get overwhelmed. I would then come back to the list often to see what I could tackle next or note down anything that was changing. This was very helpful when it came back to handing the reins back over so that they could see what had been happening and any solutions that I had to problems that I hadn’t had time to dedicate too.
- Don’t let anyone see your fear! There was a certain amount of ‘fake it until you make it’. Present a confident front. Admit it when you don’t know the answer to something and go and find out the answer. But letting on that you’re nervous or that you’re not sure what you’re doing is not going to make anyone want to follow you. I was very lucky that the rest of the team were supporting me and understanding that someone had to play this role.
- Trust people. Theres no point hovering over people and/or micromanaging people. Let them get on with their work and they’ll come to you to ask for input on their own.
Since then I have been “feature leading” one of the main streams of work for our current release which has been really fun. Especially with the ‘real’ tech lead back. Thats another great way of getting experience in leading a technical team. Take charge of a stream of work and become the point person for it. It’ll give you great exposure to teams outside of your own. and let you see the consequences of design decisions that you made earlier on.
See my colleague Pat Kua’s post on Feature Leading here. If anyone has any resources on growing into a technical leader please share!