The Myth of the Rockstar Programmer
The Myth of the Rockstar Programmer is just that, a myth. It's an unfortunate myth for a number of reasons.
- It sets an unreasonable expectation for regular folks.
- Calling out rockstars demotivates the team.
- Telling someone they are a rockstar may cause them to actually believe it.
Reality is a normal distribution curve. Lots of good average senior developers, some amazing outliers and some junior folks with potential. (and some folks that suck.)
Brooks's law: Adding manpower to a late software project makes it later.
The Rockstar Developer is a Myth
People love to say that a rockstar can do the work of 10 regular engineers. That's just nonsense. 9 women can't have one baby in a month, and 10 "rockstar" developers can't replace 100 regular ones.
I hate Quora so I won't link to them, but here's a modification of a great answer from Nate Waddoups that was taken from some internal engineering paperwork:
- Junior Engineer - Creates complex solutions to simple problems.
- Engineer - Creates simple solutions to simple problems.
- Senior Engineer - Creates simple solutions to complex problems.
- Rockstar Engineer - Makes complex problems disappear.
Am *I* a rockstar? I'm a competent Senior Engineer who is also loud. I've been on a lot of successful projects in the last 20 years and I was never the smartest guy in the room.
Senior + Loud != Rockstar
In my experience, in fact...
Senior + Thoughtful == Rockstar
That may or may not include being loud. Just because someone has written a blog, or a book, or speaks well doesn't mean they are a good developer. You certainly don't want a diva. Diva Developers do more harm than good.
Are rockstars about lines of code? No, good developers solve problems. More specifically, they make problems go away. They fix problems rather than complaining about them.
The Rockstar Team is Reality
In fact, it's diversity of thought and experience in a team that makes a Rockstar Team - that's what you really want. Put thoughtful and experience architects with enthusiastic and positive engineers who are learning and you'll get something. If you insist on calling someone a rockstar, they are likely the team's teacher and mentor.
Jon Galloway says:
Pairing "step back and think" devs with "crank a lot of pretty good code out" devs is a recipe for a good team.
Build smart, diverse teams. Build rockstar teams.
UPDATE: I was just told about this post by shanley on the "10x Engineer." It's a great and detailed piece and you should check it out!