When I started writing this article I ran into a serious issue, defining exactly what a RockStar programmer is. The Term has the “God Problem”1, a problem that atheists and physicists who dabble in philosophy face on near daily bases. Lawrence Krauss actually spend the better part of the preface in his book A Universe from Nothing: Why There Is Something Rather than Nothing explaining it. He practically throws his hands up in frustration stating you can’t prove that something can be created from nothing without the existence of God to someone who defines nothing as “That in which God creates from”. Being a somewhat religious individual I have decided to adopt that definition of “Nothing” (now a proper noun) because of its sheer strength in defending the necessity of God’s existence. But (hopefully) to prevent such arguments here, I will define Rock Star for the purpose of this article. Then if one wishes to argue if such a person exists or if it is a good idea to be such a person. It can be argued by means of saying “A Rock Star programmer as defined by Morons…”
So here is how I (Morons) define a Rock Star programmer: An individual who is a top level performer (let’s say more than one standard deviation). This person, when assigned work, regularly and consistently completes that work in a fraction of the time allotted without sacrificing quality, then spends the remaining time helping his teammates (by giving guidance, not by doing their work) complete their tasks on time, singlehandedly improving the performance of the whole team.
(The same definition can be used for Ninja or Jedi or the various other terms used to descried programmers of exceptional talent)
The reason I chose this definition is because I feel it is more in line with that a true exemplary developer is. The most common definition of a Rock Star is a programmer who is an order of magnitude (10x) more productive than the average programmer. I don’t believe such people exist but there are definitely people who are 5x more productive than the average. Even if you hold to this definition, the remainder of this article still applies.
Regardless of the definition, it’s becoming increasingly common in the programming community to say that Rock Star programmers don’t exist. These naysayers are absolutely wrong, these people do exist. But they only exist in an environment that allows them to exist. In such environments the average programmer is easily 2-4x more productive than in environments that are not conducive to productivity. If you don’t believe me, I ask you this: how much more productive are you working at home on your pet projects than when you are in the office doing salaried work? There are entire books written on the subject of making environments conducive to productivity.
Employers love Rock Stars; they give their employer a tremendous value and have a positive effect on everyone around them. But that doesn’t mean it’s what’s best for you. What’s worse than being a Rock Star is striving to be one. Before you read the next sentence, if you haven’t already, you need to read my last blog article, if you don’t, the next sentence won’t make any sense… I’ll wait….Back? Good. The reason being a Rock Star is bad is because it is a lousy position to be in. The reason striving to be one is worse is because that means your entire career goals are wrong and you are striving to put yourself in a lousy position. Once you are in that position, your employer will do everything to keep you happy in that position, throwing money at you if necessary. But the day will come when you will want to move on, and that day will be a Terrible, Horrible, No Good, Very Bad Day.
As previously discussed the key to professional growth is learning new skills, putting them to use on the job, asking for more responsibilities and then for a promotion. The Rock Star doesn’t do this, the Rock Star spends years finely tuning his relatively small set of skills to the point of absolute perfection. This makes him less marketable, he can only sell himself on a very small skill set, and effectively selling himself as the absolute best to a potential employer is very hard ( if not impossible).
The Rock Star is highly valued by his employer and his job will be very secure, he will also (assuming he has some level of negotiating skills) be paid at a rate significantly higher than the industry average for his position. These two things actually work against him. Once in this position, there is no opportunity for professional or serious financial growth.
Consider the following:
- The Rock Star can learn new skills, but can’t put them to use. His current employer doesn’t want him using his newbie skills; he wants him using his Rock Star Skills! That’s what he is being paid such a high rate for! But here is the kicker; the Rock Star is only being paid well relative to the market value for his skill set, but not relative to someone with a more valued skill set. Learned skills that have not been used on the job have very little market value. The Rock Star is stalled in terms of professional growth. The Rock star has been typecast and can’t change roles. If the Rock Star threatens to quit, his employer will let him go. If the Rock Star is not doing his Rock Star stuff, he is a regular expendable employee (who happens to be overpaid).
- If the Rock Star asks for a raise, his boss says “You are paid 25% more than any other dev on the team, your salary is on par with mine!, Sorry, no can do, maybe next year” The Rock Star has no negotiating position with his current employer; His current employer thinks to himself “Where is he going to go? No one is going to pay him as well as I do.” And his employer is right. The Rock Star is stalled in terms of financial growth.
(See : http://blog.hirelite.com/what-developers-think-when-you-say-rock-star )
- If the Rock Star decides to look for a new Job, he will quickly realize his boss is right. There is no way to prove oneself is a Rock Star to a potential employer. There is no Rock Star Test. Nor is there a Rock Star market. He will be forced to accept a position as a mere Sr. Dev (a step down professionally) at less salary (a step down financially), hopefully this new position will offer him the opportunity to put some of his other skills to work and attain some professional growth which will then lead to financial growth.
- Even if he could attain another Rock Star role, at Rock Star pay, being a Rock Star is so dependent on the working environment of his new employer, there is a high chance of failure (to live up to expectation).
- If the Rock Start chooses to start his own business or go into consulting, he can, but he didn’t need to be a Rock Star to do this.
- How many years did it take to attain that Rock Star Skill level? Those years could have been put to better use learning new skills and moving up the corporate ladder.
- All of the above could be summed up with the following: The Rock Star is underemployed, but well paid for the job he is doing. The high pay mentally locks him into this underemployed status. His employer treats him well, is nice to him, gives him creative freedom, and a pleasant work environment. All of those things reduce his motivation to better himself, so he remains in that Rock Star position long term with little professional or financial growth. The longer he stays on this path the worse off he is.
Yes, I am actually saying it’s better to be underpaid than over, because you should have never gotten to the point where you are overpaid. You should have been promoted and taken the salary increase that comes with that promotion (so that your position is in line with your salary.) If you are overpaid you did something wrong, you should correct that mistake, in the interim take the money.
Lastly, I know that to many what I described above sounds like a dream job (an employer pays him well, treats him well, gives him creative freedom and a pleasant work environment). It is nice, but the fact of the matter is that those conditions weren’t created for the Rock Star, but are the only ones in which a Rock Star can exist. Those conditions where there when the Rock Star joined, and would likely still be there had he never become a Rock Star.
If you feel you are that skilled and want to reach your full potential with that skill, I urge you to reconsider. People who are that skilled should be running industries, not working in them.
Peopleware: Productive Projects and Teams (Second Edition)
A Universe from Nothing: Why There Is Something Rather than Nothing
Alexander and the Terrible, Horrible, No Good, Very Bad Day
Filed under Career Management