Most days my wife asks me, "were you a rockstar at work today?".
Well lets see. Did I perform an amazing set of music while intoxicated, only to follow that with more drinking and partying with groupies backstage? Was I overbearing and egotistical because I really think I am "all that" and more? Was I allowed to get away with being a general asshole because I'm just so damn good at what I do that people are willing to put up with me?
By that definition, which is what most people think of RockStars, no.
Is that what most Rock Stars are, though? Yes, a lot are, but not the really truly good ones. The ones who have staying power, the ones who really do justice to their art, are much more than this (though they often go through this as a phase).
I keep hearing about the Rock Star programmers, who are uber nerds lacking in social skills but so talented they are allowed to essentially be assholes, or at the least so socially dysfunctional they have to be kept separate from the "normal" folk in a company.
And I think to myself, am I good enough to be considered a Rock Star? Am I a big enough jerk to be considered a Rock Star but talented enough to get away with it? Do I want to be this kind of Rock Star anyway?
What about those who are not Rock Stars? Does this mean you are just relegated to being a "Code Monkey", cranking out code like an assembly line robot, counting the hours until the day is over and being bored out of your mind?
Lets take this analogy all the way and actually look at what good Rock Stars do, and musicians more generally. You have your band, consisting of the "Rock Star", usually the "Front Man/woman" who is generally the public face of the band, who probably writes a good amount of the music and lyrics and performs most prominently. The other band members may also be Rock Stars too, in varying degrees. Depends on the band, of course.
Almost every Rock Star or band of Rock Stars also makes use of what are called studio or session musicians. These are people who are also very talented at what they do, but they don't generally get the public recognition that the rock stars get. They do their work more behind the scenes but are also integral to the sound and production of polished music. They may also perform with the band as backing musicians, and are often no less talented than anyone else, they just aren't "Rock Stars".
This applies also to programmers. "Code Monkeys" are like session musicians and are just as important as the Rock Star. However they get little respect. A rock star programmer often has many other programmers contributing to the project, and wouldn't be able to be a rock star without their support.
So what makes the rock star programmer a rock star? Its not just being excessively talented at that one thing, and its not about being a diva. Being a rock star means being talented at a number of disciplines, and being disciplined in general. A good rock star is actually appreciative of the support network that allows the rock star status. It means being a professional about the work, and even loving what you do. A rock star is more than just being technically proficient but also having creative insights into what you are working on. Being an architect, and not just a construction worker. A rock star should also raise everyone up with him, because he knows he used to not be the rock star. A rock star knows when to be a leader and when to follow and does not let his ego get in the way of the right choice.
Every session musician or programmer has the ability to be a rock star some day, but loves what he does enough that it shouldn't matter, because he knows both roles are important.
So, some days, I am a rock star. And some days I'm a session musician.
Imagine Dave Grohl vs Kanye West. One of them is a consummate musician who loves what he does, shows appreciation to others, and is just a generally nice guy and very successful at what he does; and the other one is Kanye. Just sayin.
