5 Whys is a blog about technical leadership in the software world.

A Possible Job Description: Team Leader

Editor's Note: This is a guest post by Kevin Stevens. Kevin Stevens is a Senior Software Engineer at Ecology & Environment in Buffalo, NY. He claims to be the only person who has a B.A. in acting, a B.S. in Computer Science, and who has worked for Siegfried and Roy. He has a PMP, but thinks it was a giant waste of time.

I’ve been thinking a lot about what qualities make a good team leader.

We’ve been trying to hire a senior developer for the last few months without a lot of luck. Our job description is, like most, strong on technical skills. But when we do the post-mortem on an interview, that isn’t what we talk about. What we talk about are things like, “Would he be able to lead a design meeting?”, “Is he going to be able to mentor the juniors?”.
All of which makes me think that the job description needs a rewrite. So, even though HR would never approve of a listing written like this, here’s what I’ve been thinking.

You’ve proven you can wield application code like a lightsaber, but you know there’s more to software engineering than that. You write unit tests, integrate continuously, program in pairs and rock it Agile-style three ways from Sunday. You have shown what you can do and now want to show that you can lead. Here’s what you need to do:
Remember what it was like to be a junior programmer
Teach others to avoid the mistakes you made so they don’t stay junior for long
Know about the next generation of technology coming down the pike
Have enough sense to adopt new things because they’re the right tools for the job and not because they’re new
Ship applications that reflect the hard work and integrity of your team
Care for your team’s code like it is the piece of craftsman ship it truly is
If you can do this and more, lots more, it’s time for you to step up and lead.

The hidden leadership lessons we can learn from music conductors

Video: Influence Strategies