There is a stigma surrounding “Rockstar” or “Superstar” developers. Sure, they are “nice to have”, but they are also selfish, egotistical and a complete pain in the butt. They would definitely hire them if they ran into one (and of course, they don’t) but they’d do it begrudgingly.
These are the same people who struggle with messy codebases, delayed (indefinitely, often) schedules and overrun budgets. Of course, they don’t notice the relationship between the two…
Fact is, superstar developers are aboslutely positively necessary.
Rockstar developers are more productive, but that’s not what makes them necessary. What makes them necessary is that they have passion. They care enough to:
- Go out and speak to users (even when it’s uncomfortable) and find out what their problem spots are and then motivated enough to fix those problems (even if it means pushing past stodly upper management).
- Implement source control, a continuous build system, automated testing, high test coverage, a good production release process and so many other things that make good quality code.
- Dig in deep into a technical problem, even if it means learning new things, reading books, tracking down experts online for advice, wading through forums, messing around with prototypes for days and even staying late to do it.
- Learn about all aspects of software even when not specifically asked to by managers, like security, encryption, redundancy.
Not only can they take on the tough technical tasks and the overhead of the items described above, but they can also inspire other team members, train them and even compensate for their slowness.
What a rockstar developer is NOT
- Someone who prefers to hear the sound of his own voice, rather than learn something new.
- Someone who prefers to insist that he was right, rather than figure out what’s actually right.
- Someone who prefers to have people think of him highly, rather than produce great things.
I think you might have confused the term “rockstar developer” with the term “douche bag”:
An individual who has an over-inflated sense of self worth, compounded by a low level of intellegence, behaving ridiculously in front of colleagues with no sense of how moronic he appears.
from Urban Dictionary
Note: just because a douche bag thinks he is a rockstar developer, that doesn’t make him one. Please don’t pollute the whole rockstar pool on their behalf. Now, back to real rockstar developers…
One or more rockstar developers can hold up an entire development team.
Ideally the most awesome developer will have some sort of technical lead role, sometimes official, sometimes not. If not, particularly if the lead is sub-par, the rockstar will likely leave.
If a development team has not a single rockstar, not a single person willing to put in the leg-work to really figure things out, then the project is doomed.
The real trouble with using a lot of mediocre programmers instead of a couple of good ones is that no matter how long they work, they never produce something as good as what the great programmers can produce.
Non-technical people will ask for features, bottom-line. It’s up to the developers to figure out how to make the code extensible, maintanable, modular, service oriented, well formatted, regression tested and just overall quality code. If the developers don’t care enough (or don’t know enough, same thing perhaps) then no one will do it.
New terminology, perhaps…
Some people fuss over the term “rockstar” developers because:
Rock stars get sex, drugs, parties, limousines, fame, glory, dates with supermodels, and Rolling Stone covers. Good programmers get . . . uh . . . fewer compiler errors.
from The One Tip to Rule Them All
I actually like the term Rockstar because it’s fun and because it accurately mirrors their role with the music industry from where it came. The music industry is supported by rockstars. A label with a rockstar is huge and grows exponentially by how many rockstars they have. A label with no rockstars, but a small army of no-name-ers, is still small and there’s no amount of no-names they can add that will fix that problem.
Of course, music rockstars do also have a bad rep so maybe that contributes to rockstar developers bad rep. Let’s try something else…
Atlas Developers
Borrowed from the title of Atlas Shrugged, of course. And that title borrowed from the Titan in Greek mythology, Atlas, who held up the weight of the world on his shoulders.
Atlas Developers are developers who support the whole team. They are highly productive, highly skilled and absolutely, positively necessary to any successful software project.
So tell me, who is the Atlas Developer in your team and what have you done for them lately?

I wouldn’t want to be associated with Ayn Rand in any way, shape or form, personally, but I also thing the metaphor is wrong.
The role you are describing, is less about coding, and seems to me to be almost the opposite of Ayn Rand’s Atlases. It is about inspiring people around them, making them feel heard and mediating between multiple people who may be rock star programmers but still can’t understand one another. They may not be experts in something yet, but when something needs to be learned not only can they go learn about it, they can then share that knowledge with the rest of the team. They purposefully don’t run ahead of the rest of the team, the way Atlases do, instead bringing other people with them. They make everyone more valuable.
These people are harder to find than the rock stars. You can’t just look at code sample. It will almost never be apparent on a resume. It is apparent in the interview, if they get that far and you ask the right questions, but you may have already filtered them out (particularly if focused on finding a coding rock star). They are the people who make you feel smart when you talk to them, rather than the people who make you think they are super-smart.
That said, I think what you are describing is less about programming and more about the role of technical lead. It’s also something that is infectious.
To me, rock star programmer is more about “we need this thing by tomorrow” and it magically appears. The rock star programmer is the one who implements faster, who knows Design Patterns backwards and forwards, who’s code you don’t dread encountering. They don’t necessarily have the skills to figure out what needs to get implemented, that’s the job of the technical lead and the business people, and they can’t necessarily communicate what they are about to do to someone else (unless that person is the other kind of rock star and can follow their massive leaps of logic.) Working with them requires a leap of faith, but it is a leap that can be well-rewarded. They are more like Rand’s Atlas: exceptionally good at one thing, charging off ahead of the pack, producing value themselves for others to build on, rather than making everyone around them rise to their level. They produce fast, maintainable code in as little time as possible.
The best possible solution, I think, is to have at least one of each.
Isn’t Objectivism just intellectual douchebaggery?
W
Aren’t these the people that work on Google Earth and Open Streetmap?
Though your point is well taken. There is often someone, often in the background and not the limelight which makes the “rockstar” a problem (some even detest the limelight as it is just another thing interfering with their job), that causes things to get done – either through his efforts or by asking the right questions and becoming the nerve center of the team. It doesn’t matter if ralph won’t talk to bob as long as john can talk to both and make sure everyone understands what is going on.
They deal with the real world and the goal. Period. Users who can’t put into words what they want and change their minds, the personalities in the department, and the quirky rules from accounting and HR. And they can often code like Turing.