There are at least 2 kinds of Lead Developer. The Backup and The Coach. A leader is always someone making you progress in your craft. Either by teaching or by showing.
He is working in the shadows. He is your safety net. Every commit, every unit test or method, he scrutinize it.
His goal is to soften the difference of levels between other developers. He is quiet and working on tasks you don’t see at first :
- repairing or improving a unit test
- reordering your files
- answering your small questions
- taking and applying merging decisions for you
- making great utility classes and stacks to accelerate your work on the most visible part of your project
The difference with a simple developer is that he can explain what and why he is doing. Hence, you progress.
Each of his commit is to be looked at. Because they can and should change the way you code.
He is spending more time with you than coding on his own. Peer programming with him (either as a pilot or a co-pilot) is a better than 2 months of school.
It can be frustrating for him, just like for the Backup leader; because he is more helping others to code than coding.
He is the guy you look after every time you start the architecture of a new user story. And you should. More visible he also have to be humble yet firm.
You Should Hire Both
They are complementary. There can be many leaders, not just one. And the time spent by the first must be used by the second to educate the team.
Both are the architects of the project, one by example the other by reputation.
I worked with a good combo on an iOS project. And it’s a joy to follow them, through the code, or in peer programming.
And you ? What kind of lead developers did you meet ?