The skills that it takes to become a good engineer are not the same as what it takes to lead a team.

Let me tell you about a situation that I saw unfold before me recently. I've been consulting at Sony Electronics with a web software group there. The team lead was about to leave for a new position, and they had selected a successor, who I'll call John. John is an excellent software engineer - he regularly tackled challenging problems, was involved in architectural decisions, had demanding standards in code reviews, and was clearly the most senior full time engineer remaining on the team. Besides, except for me, and I was a part time consultant, no one else seemed even remotely ready.

John was interested in the new responsibility - it seemed like the next step in his career, not quite in management but starting to assume a leadership role - and while he was anxious about it he agreed to take it on. There were a few weeks remaining before the prior team lead was going to leave, so the plan was to transition him gradually, having him take on more and more responsibility over the next few weeks.

The challenges started almost immediately. Asked to lead a technical meeting to come up with a proposal, John faltered. He opened with a long rambling monologue that left noone in the room certain about what was trying to be accomplished. As he called for participation, there was first silence, then disjointed conversation. Eventually, his manager and myself spoke up to help guide the meeting and get it back on track. This would have been fine, had John been open to feedback about how to improve, but either due to defensiveness or due to a feeling that he had all of the skills he needed, he wouldn't or couldn't hear it.

The issues continued with additional meetings - when we met with the product owners to figure out details of the next release, John sat through the meeting saying very little. Questions about details, give and take about technical vs business tradeoffs, push back against irresponsible features, it all fell to other members of the room. When asked about it later he said that it was a 'business' meeting, and he wasn't sure what to say.

The skills that it takes to become a good engineer are not the same as what it takes to lead a team.

This situation didn't end well - after a few weeks of this, with the old team lead about to head out and the management feeling desperate, I was asked to co-lead the team with John. We worked together reasonably well, but it was always a little awkward and several months later he left the company for another position - purely technical - in the bay area.

With this experience freshly in mind, I'm now working to train the next team lead before I wrap up my time consulting with Sony. But it got me thinking about the skills that it takes to be an effective technical leader. They're learnable, many of them are actually fairly concrete, but they're not the same skills that it takes to become a good engineer.

I've learned them in a combination of being mentored, years of Toastmasters, and trial by fire as a startup CTO. But I wonder... where do we expect engineers to learn them? And from what I've seen, good team leads are even more rare than good engineers, so why aren't we being more deliberate about training them?