tags:

views:

1476

answers:

26

We always hear tales of the 'Rockstar' programmer who can do 10 times the work of a mere mortal programmer but I've seen very little evidence that such a guy exists. Since Stackoverflow is chock full of programmers, if these Rockstars do exist, you guys must have seen your fair share...

About how many of these people have you worked with? And approximately how many as a percentage of overall programmers you've worked with? How do you know when you're working with a Rockstar programmer?

+2  A: 

Well, one of my old team leaders was such a character. But, after a whopping spell of churning out tons of quality code, he'd burn out for a week or two and be pretty much useless during those periods. I doubt there are many who can consistently perform at that level. I most certainly cannot :-)

Phil Bennett
Just like a real rock star.
Even Mien
A: 

I think "Rockstar" is in the eye of the beholder. I've met people that new the .Net framework inside out and were thus very good when working with it. I've also met people that could hold extremely complex algorithms in their head and spit them out into code with little or no thought. Both of these types of people are Rockstars within their special domain. Outside their domain they are usually quite good but I wouldn't say Rockstar.

EBGreen
A: 

I have never met one in person.

There were some in college that I suspect became that way, but there weren't at the time.

JosephStyons
+2  A: 

This is a really hard thing to answer, but I have met many people in my life that when compared to other developers of the same team excel higher than the rest of the group. Some can produce more code in X time than others, some write higher quality code than others. there are many things.

Personally I find a lot of the "rockstar" programmers are those who are really passionate about what they do, ones that don't just go in do a job and leave..

Mitchel Sellers
+7  A: 

I think its largely a myth.

I think many managers want to believe that were all engineers from Star Trek. Really. Like we can all just go down to the warp core, at first listing a bunch of reasons why its hard, then getting down there and crank it out in half the time, saving the ship/company/whatever just in the nick of time from the giant space amoeba.

Some of us want to believe this about ourselves too, but I find that the opposite is largely true, we only know maybe 1/2 of the problems ahead of time and most of us get a nice dose of humility after every project.

Now maybe there's some geniuses out there, but in my experiences there's the really bad, incompetent programmers and the barely competent programmers. I can only hope I'm the latter. Even those we call "geniuses", like language inventors, had to work very hard, make lots of mistakes, and failed to forsee all the problems they would create or run into.

Doug T.
+2  A: 

None. It's true that some programmers can do ten times more work than other programmers, but that's only if the other programmers mostly suck. Hell, I personally can do infinitely more work than some programmers.

MusiGenesis
A: 

I've worked with several. It's actually pretty easy to tell who the 'normal' programmers are as compared to the people who really know what they are doing; I find I can usually discern within a couple of minutes in an interview. Of course, I suspect the definition of 'rockstar' varies from person to person.

I'd say my definition is someone who can solve a problem autonomously, and you know the solution is going to be good. Usually that involves both a comprehensive knowledge of the tools and problem domain, a grasp of good programming and architecture practices, and the ability to just crank out working code.

Nick
+11  A: 

I love that expression "rock star programmer". You ever notice how 'real' rock stars mostly produce one or two really great records, and spend the rest of their careers trading on the reputation of their early hits?

I think most coders have probably had "rock star" phases where, for a few days or weeks, they've just been unbelievably productive. Most people I've worked with have done this at one time or another, but I've never met anyone who could do it consistently, on demand, no matter how ugly the project or awkward the requirements...

Dylan Beattie
+1  A: 

The description in the question seems to elicit the image of an individual that locks themselves away and codes, codes, codes.

I've met one such individual in my life and it was not a pleasant experience. After going his office, shutting the door and working alone for 3 months, he emerged with a "grand design" for everyone to complete. The result was that no one understood the design, no one bought into it and he left the company shortly thereafter.

My definition of 'Rockstar' is a bit different. These individuals contribute to the team in such as way that the quality of a team as a whole is improved. Of course, these are rare beasts and if you ever find one do all you can to keep him or her on your team.

Jeff Stong
+17  A: 

I can answer the question in the negative - I've been on teams where a fair number of developers were horrific and would flounder around for days on the simplest of problems. In a context like that, a reasonably competent person looks like a rockstar.

I've occasionally had the privilege of working with very talented people, and my impressions were that they excelled not so much in the speed of their coding but in their flexibility in thinking about problems in a deeper and more interesting way, and in having a bigger repertoire of algorithmic ideas relating to how to think about problems.

Then again, this may just be the kind of thing that I'm impressed with.

Steve B.
+12  A: 

I don't think its a myth, I just don't think many of them are working in corporate environments. The whole idea behind being a rockstar is not being a workaholic employee of the month, it's more the raw talent and the attitude. In software this is epitomised by the Open Source, Free software movement. Most of the "rockstars" are guys who did major things and then released them for free to the community rather than try to release them and make a profit from them.

  • Linus Torvalds
  • Sam Stephenson(Prototype)
  • John Resig (jQuery)
  • David Heinemeier Hansson (Rails)

There will be so many more examples of this.

Have I worked with anybody like that? Unfortunately not.

David McLaughlin
if none of us ever work with them (because they don't work in corporate environments) how can we prove its not a myth?
Doug T.
I listed some guys I would consider "rockstar" programmers. Guys who didn't settle for the status quo and did something amazing for the community as a whole. The reason no one has worked with those guys is because they are so rare. Not every rock band is full of rockstars.
David McLaughlin
+2  A: 

I have to disagree and say I've met a few in my very short time in the industry (~6 years?). When I worked at a small company here in Orlando, there was this one guy, the senior developer, who could build these amazing things in a single day. It rubbed off, and shortly thereafter we had developers who could not only crank out code, but innovative products in a rapidly changing environment. That's not to say it was the best code ever written, but it satisfied the customers and to this day serves its purpose.

The next small company I worked for, well, everyone was a Rockstar. Why? We had to be! There were 6 of us holding up a multi-million dollar company's entire IT infrastructure and web presence. Heck, our revenue came from web subscription sales. We had a database/unix/compiler guru, a security & infrastructure master, the 'ideas' guy and myself, the new guy among others. Each of us performed at super human rates because we had to. If we didn't, then the business would suffer and so would our jobs.

Now, sitting in my cubicle in one of the largest company's I've ever heard of, I'm content to say we have a few Rockstars in our midsts. Of course, with all fame, it fades over time. Excellent, great code becomes archaic and gimped, newbies overshadow the work, and the cycle continues.

Really, though, it comes down to real developers versus people who write code. Developers love their jobs, excel at them, and want to succeed. We work efficiently, and work towards delivering good products on time, and under budget. Challenges should drive us, and make us all Rockstars.

Abyss Knight
+2  A: 

After 20 years I've worked with a handful I would consider truly excellent. Many more who were quite good and I would gladly work with again.

I think all of the ones I've worked with who thought they were rockstars were among the worst to work with -- including myself during a few periods where I got a little delusional :)

Jeff Kotula
+14  A: 

I've met two. Exactly two. I had the pleasure of working with both of them (who'd known each other and worked with each other and been friends for years) a couple years back, and they are still two of the best I've ever seen.

Were they algorithmically brilliant? No. Insanely flexible? Not really. Were they incredibly productive and able to work around both tight deadlines and moving-target highly-complex business requirements? Hell, yes.

These two brought my game up. Prior to meeting them, I thought I was rock star. They fixed that right away -- not by bragging or being jerks, but by being so productive, thorough, quality-driven and focused on excellence that they made me rise to the occasion. In fact, they had no egos -- they were full of praise for me and the other (productive, ahem) members of our team. I think I'm good; I know they're great.

Again, they might not have been brilliant scientists -- but they knew how to address business needs, and make the technology work for the business, and do it on deadline. On an app as big as that one was, that was exactly what we needed.

Now the counter to this is that I've met more than my fair share of good developers, and some very solid ones, and unfortunately an awful lot of terrible ones. These two guys, though, were the only rock stars.

So I'd say perhaps 1% of the developers I've met were rock stars. Which is probably about the right ratio. :)

John Rudy
I like your second paragraph. That is the meaning of a RockStar
Jobi Joy
It is in my mind, yes!
John Rudy
I just got rep for this. I shouldn't have. Making this answer community wiki.
John Rudy
A: 

I've heard that 10x productivity claim before, and I've sometimes wondered whether or not it's an artifact of the 90/90 rule. It says that for a software project, the first 90% of the project takes 90% of the time, and the last 10% of the project takes the other 90% of the time. If coder A works on only the first 90% and coder B takes care of the other 10%, then coder A has a perceived productivity rate 9x greater than B.

It's all part and parcel with the difficulties involved with software project scheduling. Every software project can be thought of as having both a "core" and "edge cases". The core is the essential functionality that we think of and plan for. The edge cases are everything else that we don't think of but which need to be dealt with before the project can be delivered. The first 90% in the example above forms the core, and poor coder B is stuck with all the edge cases in the last 10%.

I don't think it's necessarily bad to divide work that way, though. If coder A knows their stuff (in terms of problem domain, software engineering, algorithms, etc), then it might be a good idea to invest coder A's time in making a really solid core that other, less experienced coders (like myself) can later put the finishing touches on. It's a good learning experience for coder B, too, as long as he or she is paying attention :)

eschercycle
Sometimes that factor of 10 is simply knowing the right things to avoid a lot of wasted work. Use the right feature and obviate most of the effort.
brian d foy
Yeah, just like the story of the technician who charged $100 to tighten a bolt. $99 was knowing which one to tighten...
eschercycle
+1  A: 

Mark S Rasmussen.. Blog

It's amazing to watch this guy work. The amount of code he can spew out in the same time as other programmers is simply staggering, and the quality and architecture is brilliant. At least if it's .net. He hates Java, and hence sucks at it hehe.

But basically I would say he is a programmer rockstar.

Kasper Vesth
I upvoted this. Not that I in any way agree, but I can see you need a few points. Man that guy likes green!
Jacob T. Nielsen
+3  A: 

Beauty lies in the eye of the beholder. Same for how you view rockstars. In some places I have worked, an average performer is elevated to a rockstar status simply because others are underperforming or maybe he is the only one who patches the legacy critical systems.

I have met some rockstar programmers in Internet but nobody in real.

Gulzar
A: 

When I hear "Rockstar Programmer" I don't think 10x productivity.

I think "prima donna douche-bag."

And I've worked with quite a few of them.

David Hill
Not exactly answering the question. I know what you mean, but I don't think this belongs here.
Abyss Knight
+1  A: 

Isn't a rockstar is someone a real musician despises because their music is shallow, and yet envies because of the (misplaced) adoration they receive?

awhite
+4  A: 

In my mind, the only true Rockstar programmer is a programmer working at Rockstar creating the latest and greatest GTA title. :)

steffenj
A: 

Well, I've got Johan Andersson's autograph; does that count for anything? (And if you've heard of him before, you know why I classify him as 'rockstar'.)

Michael Myers
+2  A: 

I currently work on a team of 10 or so people where I'd describe just about everyone in this category.

It's the reason I work for the company.

When our CTO (who I knew from a few years back working at Microsoft) joined it was under the condition that he could build and run the development team the way he saw fit (he's an excellent manager and also technical, so this is a good thing; I'd describe him as a 'rockstar manager' and they're as rare as rocking horse shit!). When he phoned up to see if I was interested in working there I initially said "no way, I'm happy where I am" until I found out the other people he'd already got signed on. At that point I believe my exact comment was "so, basically the best people you've worked with in the last decade". And how could I say no to an opportunity like that?

Since then we've hired a couple more people to fill spaces as others left, and we've kept the standard incredibly high. When we recruit we will simply leave the places open unless we can find somebody who is truly excellent. I think this is where a lot of companies fail, because they get desperate and start hiring sub-standard people. The ratio of people we interview to the people we hire is very high, which is a fair indicator that there aren't many rockstars out there.

So I think the answer is that I haven't met many rockstar programmers; probably fewer than 20 even though I've worked at Microsoft and other places where the caliber of people isn't exactly low. But fortunately I'm lucky enough to still work with many of them every day.

Greg Beech
+1  A: 

There have a few different situations in which I would say I have seen or worked with a 'rockstar' programmer:

In my early university years, there were one or two of my classmates that were talked about as, "That is one of the top people in such and such contest this year," though generally they were nice generous people. Also in university I got to witness something that could be viewed as 'rockstar' status which was to have a fan of one of my classmates create alt.fan.nikita-borisov in those Usenet newsgroups. Nikita is very bright, charming, a little eccentric at times, and usually really nice guy to be around.

One company that I worked at for a rather short time, less than a year, this person could answer almost any question throughout the VB Script(ASP) code, J# code, and C++(COM) and could type very swiftly that did make me go, "Whoa..." like in the Matrix or Bill and Ted's Excellent Adventure in seeing this.

Lastly, there are those that bloggers that I've read and enjoyed seeing and also had those, "Whoa..." moments at Code Camps, Open Spaces or other .Net events I've been too. J.P. Boodhoo would be an example here though I don't know how well known he is in other parts but he has been travelling at times and has a Nothin' but .Net class that I'm pretty sure would be mind blowing as he is really quick in an IDE and showing off his test-driven development, mocking and other tools that could make one a software development ninja or as I've seen referenced else, a Resharper Jedi.

JB King
+2  A: 

I have met a couple of what most would call Rockstar Programmers, but whilst they could churn out code extremely fast and efficiently they certainly paid a price for it.

In a way, everything requires balance. Any one of us could become a Rockstar Programmer if we spent our entire lives programming in every language we could. We could build hundreds of computers, all loaded with different Linux distros and our own builds. We could even go as far as to write software to run things within your own house! The problem with doing this is that it's going to affect your personal life and in effect, your sanity.

The one person I've worked with that has the ability to output code 10x faster than everyone else was praised at work, but always pushed further. When someone can single-handedly code a reasonable-scale project in 30 hours, the next project will be bigger and he'll be asked to do it in 20. Eventually, his work became too much for him and he suffered a nervous breakdown.

He now works in a factory dealing with packaging parts for electrical appliances. He doesn't mind his salary nose-diving because he doesn't have the stress and extremely long hours of his previous job. I haven't heard from him in a while, but I'm told that he's ditched his computers and spends a lot of time playing Golf.

I guess the moral of this story is that regardless of how good we are, we're all human. If you push someone too far then they'll suffer.

EnderMB
+6  A: 

I managed a team of nine developers once. I'd had the extraordinary good fortune to cherry-pick the best developers off of a very large project that had been cancelled, so all nine of them were solid. There wasn't a person on the project that I didn't feel comfortable turning a simple prototype over to and saying "finish this; let me know if you run into any trouble." We had a good methodology, very little in-team friction, high morale, pretty much everything except competent senior management (oh well).

Eight of these guys worked in our development center. One worked in another city. He was personable, stable, easy to talk to, humble, clean-cut, a nice but not flashy dresser - really a quite normal guy. Maybe a little shy. His biggest personal idiosyncrasy was that he liked to travel. He took three or four months off every year, and went everywhere. (I once asked him, "What countries haven't you been to?" and he said, "I think it's down to Russia.")

He could pretty much write his own ticket, as far as we were concerned. We'd hand him a set of requirements, and two or three weeks later we'd get back a startlingly elegant implementation: clean, readable, stable, testable, maintainable code, extensibility where it was needed and simplicity where it wasn't, appropriate optimizations, user interfaces that looked like he'd gone off and hired his own graphic designer. His code would have taken any one of us five to ten times as long to build, if we'd been able to do it at all. It got to the point where there would be palpable excitement in the team every time he was due to drop more code on us. We got a lot of ideas and techniques just from reading it.

And I can't emphasize this enough: I had a very good team. There were at least three developers on that team that I probably would have described as rockstar developers. Four, if you count me. Only now I know what one actually looks like.

Robert Rossney
+1  A: 

I've met and worked with a tiny few "rockstar" developers. Some were just much more productive than the average competent developer. Some were miles ahead of other developers though, they would have deep insights into the code and development practice in general, they would produce much better solutions in shorter time frames than other developers, etc. They were a pleasure to work with and they helped me improve the quality of my development as well.

It's not surprising that many people haven't run into such folks, they're rare, they're not evenly distributed (they have more mobility than the average developer due to their skills and experience and they tend to seek challenging and rewarding work), and they're hard to spot unless you work along side them or interact with them a lot.

Even so, it's pretty obvious that there are "rockstar" developers out there. Take a look at this site, for example. This site was launched in a ridiculously short time frame with a team of only ~3 developers. Take a look at the development team for Google Chrome and compare that to the 510 employees at Opera software. How about jQuery? There are many, many more examples of tiny teams of "rockstar" developers who are able to produce higher quality equally featured software as much larger teams.

Wedge