It’s such a cliche by now - “We need a rockstar programmer” or “only code ninjas should apply” - but this choice in your job want-ad is ruining your business. Let me tell you why.
First of all, let’s talk about rockstars. Most rockstars are jerks. You’ve heard the stories: “I need a bowl of 10,000 green M&Ms only, I won’t go on unless this is perfect.” They constantly complain, they make an entertaining splash, but most of them burn out. You’re left with their greatest hits - but no real new music. They were great - but they had lots of breakups in their band, and in the end, no one really seemed that happy.
Next, what about Ninjas? The point of a ninja is to sneak in, do something undetected, and slip out. You’ll never know they were there - and most of the time, they’re killing something, right? There’s no collaboration - just secret silent death.
Ok - so I’m being a bit facetious here - but let’s really talk about how this job description hurts you.
The “rockstar” is only appropriate in very small doses. Instead of asking for a rockstar programmer, one who burns brightly, pisses people off, produces a lot - but doesn’t seem to change beyond their greatest hits, you want developers with bouts of great music. Your standard developer might be a great resource - its up to you to coax out the brilliance - the temporary rock god out of them. This way you have a programmer with a longer shelf-life, who is still brilliant, and who wants to work together and make great things. When you ask for a rockstar, you might get one - and all the baggage that comes with one - and more often than not, that’s not what you want.
Speaking of working with each other, you really don’t want a ninja coder. These are the people who do accomplish anything, but they jump in, write something hidden, convoluted, confusing, and then jump out. They’re only around for a while - they solve a business need - but after they’re gone, no one can seem to explain just exactly what they did or how it solved the problem.
When you ask for a ‘super hero’ - you’re developing a culture of this person is important, we can’t function without them. This introduces an ego - even the best of us can get one - and that can be a problem as requirements change and the position migrates. It also doesn’t do a great job of motivating your other developers when you refer to someone as the ninja, the rockstar, the hero. When a developer is made to feel less-than, you can start to see it in their quality of code and the accuracy of their solutions.
Instead of the rockstar or ninja, look for a solid, driven, motivated programmer who mentions other interests besides coding. Your well-rounded developer will not always be the “genius” you want, but he or she will be the problem solver you deserve. It’s up to you to coax out the brilliance, the “great song” of the rockstar or the “quick kill” of the ninja. If you don’t, you end up with convoluted, cranky, messed up, drama-filled solutions that don’t last the long term.