Adam Coles explains the differences between a technical lead and other developers.
What’s the difference between a technical lead and other developers? It’s not just about the years of experience. Some people will never learn the skills they need to become leads, or are more interested in becoming technical specialists in one area. Some developers will show their aptitude from the start. So what makes someone a good lead?
- How does this framework fit with the rest of the architecture?
- How do we share that developer’s experience with the rest of the team so that we eliminate the single point of failure that exists due to that key individual?
- Can we write good tests for this code?
A lead developer will have spent years working with different technologies and approaches. This experience can be the key to being able to know how to ask the right questions, and then to take the correct actions based on those questions.
A technical lead knows that they won’t be spending all of their time coding, in fact they’ll spend less time than any other developer in the team and, when they do, it will be as part of a pair or in a mob – it should be rare to see a lead typing alone with headphones on. Instead they’ll be spending their time trying to bring best practice to the whole development team – TDD, pairing, code review, running automated tests, monitoring builds and deployments and in general ensuring that if they were to leave tomorrow then team would be in a better position than before they joined. They’ll also be spending time making sure they know what best practice is – attending developer communities, having conversations about upcoming changes on Slack and doing research on advantageous new technology.
Think of the development team as an orchestra – the tech lead is not the solo lead violinist, they’re the conductor. They make sure the whole team works harmoniously to produce the final result.
In the course of my career I’ve met a wide variety of lead developers. While they have exhibited a diverse set of personalities there are certain characteristics I have seen that can make teams successful and happy, or conversely an immensely frustrating and dysfunctional experience.
- Think they know it all
- Don’t listen to more junior staff
- Sit and code all day
- Don’t make themselves available
- Don’t know what’s going on in their team
- Take on all the complicated tasks themselves
- Spend a substantial part of their day away from coding
- Pair with and mentor other developers
- Keep learning and are prepared to take advice from anyone
- Make themselves open and available
- Know what they don’t know
- Know when to delegate
Still want to be a lead?
Not everyone wants to lead a team. Many developers become contractors because they are more interested in broadening their technical experience and want to spend as much time as possible solving technical problems. But being a Lead Developer can be immensely satisfying for those who want to have an influence on the software development process and who want to help other team members to improve their skills and experience.
The skills you learn as a Lead can help you progress in your career as well – learning the fundamentals of Software Architecture, understanding approaches to Testing, Continuous Delivery and Agile Development can lead to other roles within the industry. Make sure you stay open to new ideas, listen to your peers and remember, no matter how senior you are, you should always keep learning.
At Opencast Software we’re always looking for good leads, alongside strong developers and automated testers. Why not get in touch via our careers page?