About the only thing a rock star developer and their namesakes have in
common are they’re both exceedingly rare.
I’ve run across several articles recently that discount the value of
rock star developers and after reading them I’m left with the impression
that the authors wouldn’t know one if their life depended upon it. The
article “6 home truths about rock star
developers”
by Andrew Oliver begins by claiming that you can’t afford to hire all
senior developers. I thought this was about rock stars, what’s seniority
got to do with it. The fact that you’ve been doing something a long time
has absolutely nothing to do with being exceptional at it or else we’d
have a lot more 65 year old musicians debuting on the top 40 charts.
Bill Taylor writes in his article, “Great People are
Overrated”
Nobody would suggest the Bruins had the best individual players in the
NHL - throughout the year, the stars of the Vancouver Canucks shone
much more brightly. But it was the Bruins’ work as a team, a
collective show of commitment and determination, that won the day.
Is he really trying to claim that the 23 players that comprise a NHL
hockey team aren’t the rock stars of their respective line of work. How
many kids played pee-wee, high school, and even college hockey? Of those
how many made it to a minor league hockey team? Even fewer still worked
their way up through that system and got a chance to take to the ice at
the pinnacle of their sport. While not every one of them is a household
name, they’re all making millions of dollars to do something that they
presumably love. That sounds like a rock star to me. They might be the
equivalent of the drummer of AC/DC to The Rolling Stone’s Mic Jagger,
but the Simon Wrights of the world (I had to Google it) are probably
doing just fine.
Mark Zuckerberg and Marc Andreessen’s quotes are exaggerations, 100 or
1000 times the value of an average coder isn’t an actual figure. As if
such a thing could be quantified. My main point, and I can comfortably
say this without any hesitation, is that if you think rock stars are
overrated then your definition is wrong and you’ve probably never
worked with one.
Most people, especially non-programmers, can’t tell the difference
between a C player and an A. In fact as PG
states, most B and C skill-level programmers can’t recognize the
differences between a B and A player. It takes an A to recognize an A.
So unless you’re a really solid programmer, the kind that can knock good
shit out quickly, you wouldn’t have a chance at recognizing the A++
coder.
I’ve mostly talked about the fact that people have no clue what
constitutes a rock star and can’t recognize them, but assuming they’re
lucky enough to stumble on to one what will they get? I’ll try to write
a post on the subject in the future, but for starters rock stars are so
much better at what they do that they don’t solve hard problems.
They first look at the full context to determine what’s really going on
and what actually needs solving. They then turn what seemed like a
complex problem in to a simpler one… And then quickly and easily solve
that. It sounds like hyperbole, but it’s really the crux of the
difference. Good coders can solve hard problems, but rock stars
simplify.
The beauty of this simplicity is hard to overstate. Simple things don’t
break as often or as bad as complex ones. They can grow, adapt, and
evolve much more nimbly. B and C players have no chance at understanding
the complex solutions developed by average A players, but just about
anyone can understand the rock star’s. That’s why people throw out
numbers like 100 or 1000. It’s not that rock stars can do 100 times the
work, they can make your organization 100 times “better” (fuzzy number
and fuzzy word, but hopefully you grok my point.)
So if you think it’s possible to hire only rock stars (as a lot of
shitty job postings claim they do) you’re a joke and the actual rock
stars will move along to the next posting, on the off chance they’re
looking at listings in the first place.