It takes less code than you think.
What distinguishes you from other developers in your team? Is it your exquisite taste of frameworks? Your ninja-type lodash-skills? Or the relentless refactoring motivation to make every line of code perfect?
The truth is, none of the above will qualify you as a successful Lead Developer. Promoting you to take on this role because you are the prime performer in your team is like putting Messi on the bench as a trainer - who's going to score the goals now? No, from my experience, Lead Developers emerge naturally because they possess many of the following attributes.
- Taking The Lead
A big topic on its own (I've written about it here). Self-motivation, energy and dedication should drive these developers to take the steering wheel, especially if no one else is doing it. They do meaningful work with high impact and find help to develop in the direction of a Leader, be it a Mentor or Leadership Coaching.
- Moderation & communication
Awkward silence in scrum meetings? These developers break it. They stand up and moderate the session towards the teams' goals. Facilitate communication and discussions around important topics, making sure everything is thought of.
- Inspire and motivate
The purpose is one of the biggest drivers of any team. These developers repeat that mission, again and again, maybe even imagining their own vision of where the team or the product can go. With this, they inspire the team to strive for excellence.
- Care for the customer, product and codebase
Management is naturally interested in numbers. Performance, revenue, productivity. But these developers make sure the team focuses on the quality of the product, for the customer and of course the codebase for the benefit of the team. They negotiate with stakeholders to prioritize refactorings and can clearly communicate benefits, dangers and chances.
- Take responsibility
The team might fuck up at some point. Developers on their way to a Lead Developer stand up and take the heat. They apologize quickly and offer possible solutions. They motivate the team again to shake it off, learn from it and go for the next try / the solution. Stakeholders and others know they can approach them for anything affecting the team or the teams' products.
- Technical seniority
Respect from peers is just as important. These developers are known for their seniority, balancing customer needs, business needs and developer interests. They know best practices, industry trends and have enough experience to discuss and steer architectural decisions.
In my opinion, the difference that makes a developer a Lead Developer is 90% "soft" skills. Leading is not easy and it requires a lot of competencies outside of coding. I would encourage any developer thinking of going down that path to investing time in these skills as well. I've worked in teams where I have emerged as the Lead Developer or where others emerged and I happily worked with and learned from them.
If another person is the Lead Developer on your team, learn from them. Ask them for advice, maybe even coaching on specific topics like stakeholder management or motivational topics. Don't be jealous - that just shows you haven't reached their maturity level yet. Care about the progress of your team, not about your own success - that makes you an invaluable part of your team - Lead or not.
But in doing so, you're an obvious choice once the opportunity arises in your (or another) team.