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.

21 Comments

I’m left scratching my head – not only with this post but also with the last one you linked to.

Your assertion that “The Rock Star is stalled in terms of professional growth.” only is true for as long as the company continues to use exactly the same technology as it used to. And that’s not a very likely situation for “an environment that allows them to exist”, or is it?

Also: “The Rock Star is stalled in terms of financial growth.” — isn’t this the case with the majority of the population? You’re doing a (hopefully) good job and getting (hopefully) well paid for it. No need to sacrifice your interesting job for a management position that doesn’t interest you but is better paid.

If you are happy, and don’t want to change anything, that’s your prerogative. But as I stated above, I think there will come a day when your “happy state” is disrupted and you will want a change. You should be prepared for it.

Yes, it’s true that most people are stalled in terms of financial growth, but that’s only because most people don’t manage their careers properly and many don’t do so at all (I touched on this at the start of my previous article.)

The theory that getting better in your chosen profession might work against you is a nice idea, except that others in your profession are presumably improving themselves also. So when what you call a “rock star” becomes the new normal, your unimproved skills are going to be decidedly inadequate.

Quote — “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.” — end quote

Doesn’t make much sense to me either. Working in an industry certainly requires a totally different skill set than running an industry. Not sayin’ that having good “leaders” that have been good “workers” is a bad thing. Just saying that what it takes to be a Rock Star Developer has pretty little to say about your skills once you leave behind “developer” on the career ladder.

I’m not completely sure whether I agree or not with the overall piece, but one thing I definitely disagree on is your claims that the Rockstar stops being so when technology changes. In my definition of a Rockstar one must have an amorphous talent for logic, modeling, design, etc. From one technology/platform/system to another, their ‘beginner level’ will be an average level skill for anything new. After they begin, they rapidly become as talented as a senior in the new system, and after a bit of practice they start “hitting the high notes”.

But what do I know, I can say for certain I am no “Rockstar” so I guess that doesn’t qualify me to define it, I wonder what the definition would be from a Jon Skeet or Paul Graham or other engineer who could with little argument be claimed a Rockstar.

Though both Paul Graham & John Carmack may be Rock Stars, they are not Developer Rock Stars. They don’t earn a living writing code, nor do they don’t spend their days coding, they are running\investing in companies. This goes to further my point, people of such talent can (and should strive to) do better.

With regard to learning new technologies, you are 100% correct, learning those new technologies will come easy. But what is payoff for learning new technologies? With every new technology he learns his return on that learning investment diminishes. (This goes to my point of choosing the right skills to learn)

I agree with Martin Ba on this, I think most of what you say doesn’t make much sense.

I think the biggest mistake you make is to assume that everyone’s goal in life is to become a manager (and then as much top-manager as possible) and to earn as much money as possible. I think this doesn’t apply to a lot of people, and it certainly doesn’t apply to me. I don’t want to be a manager, I want to be a programmer. And, as long as I have decent pay, money is not a goal for me either.

Your assertion that “The Rock Star is stalled in terms of professional growth.” only is true for as long as the company continues to use exactly the same technology as it used to. And that’s not a very likely situation for “an environment that allows them to exist”, or is it?

Let’s use a simple and common real-world example:

ACME Company employs a rockstar web developer named ‘Bono’ and three other junior developers.

Market conditions motivate ACME Company to develop a mobile application.

So what should ACME Company do now?

Ask ‘Bono’ to learn mobile best practices and lead the new project?

Or keep ‘Bono’ using his “Rock Star Skills” leading the web team and ask a different employee (or perhaps a new employee) to lead the mobile project?

It seems like you’re insisting on the latter because you said:

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!

It’s all well and good to say that ACME Company should simply hire a new rockstar, but remember – Rockstar developers are rare. Most companies are lucky to have even one.

Here is what you are missing; learning new Tech skills is not significant professional growth (at least not for a Rock Star, it may be for a fresh College Grad). What you are describing basically amounts to a lateral move. He has no additional responsibilites, None. So he was a Rock Star Java hacker, & now he is a Rock Star iOS Dev, So what? Why is the latter better than the former?

Let’s say this Superman Rock Star happens to learn and master every single technology on every single platform, how much more money will he make? IE How much more is his market value? I’ll tell you exactly what his market value is, it us valued at whatever the most marketable combination of IT skills he has is (as he can’t do two things at once).

Now, I say this again, there is nothing wrong with being a happy mediocre programmer, and there most certainly is nothing wrong with being a Rock Star programmer. I say live and let live. But if one wants career growth this is not the way to go.

Eh, in fact half of my current group (12/25) are or could be rockstars. Only a lack of focus prevents them all from achieving drummer/bassist level, though not everyone has the potential for leadman. Just gotta know how to pick’em and don’t forget that circumstance could be everything in some cases.

I’ve had exactly this experience at my job, and after much thought I’ve made the same assumptions and drawn all the same conclusions as the author of this post.

I know those who have spent an entire career, decades, without having their “Very Bad Day” realization. It sounds like many who commented are in this camp. Thank your lucky starts and soldier on.

But I’ve met many, many more who were or had the makings of being a rock star. These grognards, for one reason or another, decided to concentrate on other things in life. For me, I decided to start learning soft skills and getting into entrepreneurship; the spark being the realization of exactly what my billing rate was compared to how much I got paid, and the confidence (arrogance) that I could run things better. Why follow when you can lead. Otherwise you are doomed to work your ass off for little gain.

Oh, and don’t confuse boss/manager/supervisor for leader. It isn’t the same.

I read the original blog, not the following comments, yet…
I think that the argument can be generalized to most technical professions (to more or less a degree), not just programmers. Engineers, scientists, researchers etc. all suffer from the same problem. This reality is one of the primary concerns I have about encouraging young people (my own kids for example) to enter a technical field. This is tragic considering the dire need for science, technology, engineering, and math practitioners in the work force now and in the future.

Growth is very much about stretching out into new and risky opportunities…I agree that if you’re in a happy place, it will likely not last forever (most ‘good’ things don’t). If you’re a rock star you have options others don’t and if your skill is your creativity, then technology is your media and you’ll have no problems staying a rock star if you’re will to take some risks. In that sense, Morons is right on the mark.

Interesting thought. I have always wanted to be a developer, I think it’s quite an awesome job really, especially after seeing this http://biz30.timedoctor.com/salaries-around-the-world-awesome-new-infographic/
I don’t think there exists a job that’s very easy but you get to be paid a great deal of money. In any career you choose, there’s always a time where we feel we’re not satisfied and are challenged. It’s up to us if we choose to stay and find a way to improve or embrace some changes in our lives.

You pass this off as LOGIC? that rockstars dont have room to grow when they make more money than the average person? Im sure they dont have a problem with that when they are sippin maitai’s in aruba because they just made their boss a couple mil

So much skepticism. RockStars exist, and they are not narrowly focused. To be a true RockStar, you need to have broad and deep coverage. That’s what enables you to outperform everyone else. When other people are getting stuck researching a problem, the RockStar is able to infer the most probable solution from their massive bank of knowledge and experience. They try it (very quickly, cause after all, they can do 10x the work), and if it doesn’t work out, they try the next probable solution. You don’t have to be exceptionally accurate when you can validate and iterate on your theories so quickly.

To put it more simply, it takes 10,000 hours to become an expert at anything. If you can do 10x the work as a normal person, that means you only have to put in 1,000 hours before your an expert. Now ramp that up to 10,000 hours after a decent start into your career, and well… do they even have a name for that kind of proficiency… oh yeah, rockstar 😉

That said, many rockstar’s I have met (which isn’t that many, just a handful), are usually lacking in non programming skills (such as communication, project management, documentation, etc…). The good ones will focus their extra time on improving those skills.

As proof, believe it or not, I’ve written 1MM LOC in under 6 months, resulting in a very functional, relatively bug free, commercial product on the scale of something like Microsoft Office (though totally unrelated). Further, the product was innovative and in fresh territory (as in, no competitive products, no answers on google, just completely on my own). I wouldn’t do it again, because I was then on the hook to maintain 1MM lines of code, but I guarantee you, that’s at least 10x a normal engineer. That’s about 6K LOC a day. The average engineer I’ve worked with, puts out about 500 LOC a day, the best (but not rockstars), put out about 2K LOC a day. So its not a clear 10x mapping, but that’s 12x a normal engineer, and 3x a great engineer. Screw with the numbers all you want, but there’s still a clear divide between RockStar output and non RockStar output.

That said, enjoyable read, even though I don’t totally agree with it. Thanks Morons!