top | item 2675692

Great People Are Overrated

101 points| bchjam | 15 years ago |blogs.hbr.org | reply

95 comments

order
[+] jwecker|15 years ago|reply
"If you were launching a technology or developing a product, would you rather have five great engineers rather than 1,000 average engineers?"

The 5, in a heart-beat. If you were painting a mural on the ceiling of a large structure that you want to be admired for generations to come- do you hire 5 brilliant painters or 1000 average painters? Even happily ignoring the exponential communication overhead that diminishes returns significantly as he does in the original article, there are leaps of imagination that a small brilliant team are more likely to make than any-sized average team.

Edit: Also, his case examples are not coding related. Obviously a non-software-technologist not knowing or understanding the unique background behind the comments in the context of software development and, particularly, software startups. 100x productivity is of course a generalization and has received valid criticism, but examples from sports and trading are irrelevant.

[+] alabut|15 years ago|reply
"Also, his case examples are not coding related. "

Nor are they even correct. In fact they can easily be made to prove the opposite of what he claims.

Only someone completely ignorant of soccer/football would claim that this year's FC Barcelona lineup is one of the greatest ever because of their team-based approach - their best player is Lionel Messi, who at 23 is already being considered as one of the greatest players to ever play the game, right up there with Pele, Maradona, etc. He's so much better than not just the average, but even the closest competitor in the Spanish league. Cristiano Ronaldo leads in statistical categories like most goals scored but it's from beating up on weaker teams and he routinely chokes in big games, whereas Messi plays even better, like when he dribbled past half of the Real Madrid team in the Champions League semifinal to score the winning goal. You could've benched Ronaldo and it wouldn't have mattered - benching Messi would've dragged the match back down to more equal terms.

[+] timr|15 years ago|reply
I disagree. I don't think there's a technology company in the world that can identify talent reliably enough to make the argument that they can find a team of 5 who will outperform 1,000. Even if the 1,000 people are average.

Painting is largely a solo occupation, and you can reliably judge the talent of a painter by looking at their past work. But it's basically impossible to judge the talent of a software engineer by looking at their past code -- there's too much context required. I think the sports analogy is better in this respect, because it's much harder to separate the the record of a sports superstar from the team that they're on. So it is with non-trivial software.

And also: five "brilliant" painters might be so socially dysfunctional as a team that you'd rather take the 1,000 average guys who can take direction well. You wouldn't automatically get a great work of art if you told Van Gogh, Matisse, Monet, Munch and Seurat to collaborate on a mural -- but you see all sorts of great murals that were painted by teams of less-talented artists.

[+] jamesli|15 years ago|reply
5 great vs 1,000 average, it depends on the technology and the application they are working on, and the stage of the product.

First, the logic in the original article is not valid. Sports and software engineering are basically incomparable. What they share as team activities don't justify the reasoning in the article. A simple counter example. In professional soccer games (like in the top leagues in Italy, Spain, Egnland, etc.), a second-tier team of ll players could quite possibly beat a top-tier team of only 9 players (the other two players are kicked out for whatever reasons). In software engineering, it is quite safe to say that 5 great engineers can outperform 30 average engineers.

Back to my original point, it depends on the technology and the application they are working on. If the technology and the application require high creativity and innovation, 1000 average engineers cann't lead it long. Most probably, it will lead to a mess that has to be cleaned up and rewritten later. On the other hand, if the application is already well designed and well-established, and the primary jobs are to add new features within the architecture, 1000 average engineers may deliver more than 5 great ones.

In reality, a good combination of both types might be the best scenario.

[+] william42|15 years ago|reply
If I were launching a technology or developing a project, there's a good chance I'd rather have five average engineers than 1000 average engineers.
[+] niels_olson|15 years ago|reply
I would take the 1,000 and come up with 199 other projects, five of which would be oversight of the other 194, and two of them would be to come up with crazy new ideas. Monitor the progress and I guarantee I can find another 5 brilliant programmers in there. Meanwhile, I'll iterate over 1000 projects and blow your socks off with 5.
[+] ignifero|15 years ago|reply
Agree with you, but he has a point about the "talent acquisition" hires. They do tend to underperform when acquired (perhaps they feel 'accomplished' + there 's no pressure since they no longer work on a startup). Can someone name a few developers who did better after they were 'acqhired'?
[+] gvb|15 years ago|reply
Bill Taylor obviously has never read the Mythical Man Month. http://en.wikipedia.org/wiki/The_Mythical_Man-Month

The article totally misses a critical point: communications and coordination, which goes up exponentially with the number of players.

Group Intercommunication Formula: n(n − 1) / 2

1000 developers give 1000 * (1000 – 1) / 2 = 499500 channels of communication.

[edit] All Bill has established with his sports analogy is a team of 5-6 players that communicate effectively is better than a team of 5-6 players that don't communicate. That is a total strawman, it doesn't map to 1000 (software) players. [/edit]

In hockey, there are six or fewer players on the ice at one time. Would 1000 hockey players all on the ice at one time be better than six? Not a chance! They would not be able to move the puck because they would be tripping on each other. Even if the ice rink were expanded to hold them all, they still would suck as a team because their communications and coordination would be totally broken.

The same problem happens with software developers: 1000 developers working on one problem will trip over each other too. The only way 1000 developers will succeed at all is to decompose one big problem into 100-200 smaller problems that teams of 5-10 (funny how that works out) can then solve.

[+] jonmc12|15 years ago|reply
In addition to number of communication channels on a team, the article neglects the complexity of communication.

Creating economic value through code is currently an extremely complex process. When you consider what goes on between the ears of a basketball player, it is not trivial, but it can be transferred from one player to the next in a straightforward way.

Engineers must think beyond what is able to be communicated. Complex mental models of code and user experience that would take the best engineers longer to communicate than to instantiate.

[+] mjw|15 years ago|reply
To be an utter pedant, that's quadratic not exponential growth :)
[+] marknutter|15 years ago|reply
What you're missing is that the 1000 player hockey team would completely dominate the 5 hockey all-stars. 998 of them would check 4 stars into oblivion while 1 guy spent the rest of the period making hundreds of shot attempts per period until the game was won.
[+] MaysonL|15 years ago|reply
n(n-1)2 is a strawman itself: a 1000-person organization will probably have 3 levels (900,90,9) with each person communicating mainly with team members or the level above or below, so O(nlogn) communications channels, probably.
[+] jordank|15 years ago|reply
Beyond communication and coordination costs - 1000 people at $100,000 = $100MM/yr.
[+] iens|15 years ago|reply
When you have 1000 developers, you would organize them in teams and appoint middle managers to reduce the complexity..

That is quite normal :-)

[+] barrkel|15 years ago|reply
The article's point is that a team - a team - of 5 engineers will beat a "team" of 5 primadonnas.
[+] ora600|15 years ago|reply
The gap between exceptional developers and average developers was proven in some planned experiments, as described in Peopleware.

This article, on the other hand, contains lots of philosophy, imagining and wishful thinkings - but not an ounce of proof.

The only fact is about analysts - not developers. The financial field does not make a good comparison - random chance plays a much bigger role in wall-street than in software development.

I recall reading in "Random Walk Down Wall-Street" that it has been shown that even the best managed funds don't do better than well-diversified random stock selection. Taking the high impact of chance in the investment sector into account, if someone was a star analyst at one place, it is likely that he'll perform worse at his next assignment due to regression to mean.

[+] ap22213|15 years ago|reply
Personally, I think that the data in Peopleware is somewhat weak, and I'd like to see updated studies. However, surprisingly what Peopleware says (iirc) is that the #1 way to increase productivity of developers is to improve the working conditions.
[+] geophile|15 years ago|reply
Not a surprising line of thought, considering the source. I have worked with some of HBRs products -- Harvard MBAs -- and found them to be arrogant and severely lacking in common sense. I don't know if Mr. Taylor is a graduate, but the attitude sure does sound familiar. To the Harvard MBAs I worked with, developers were viewed as janitors (making sure the software didn't stink too much) and completely interchangeable. Thy were incapable of distinguishing bad from good from stellar developers, and were therefore unable to recognize what a 100x developer brings to the table. Google and Facebook are not similarly disabled, and need to pay what the market will bear.

The choice between "a small number of superstars" and "a well-assembled team that may not dazzle with individual brilliance, but overwhelms with collective capability" is a false one. A "well-assembled team" will have a small number of stars and a larger supporting cast. A badly assembled team will have a huge number of leaderless, mediocre developers. This team will undoubtedly have "managers", who have little or no understanding of what they manage. Having spent many years in software startups, I have seen how one kind of group turns into the other. The stars build something. It becomes successful. Maybe its a startup that gets acquired. The B players and PHBs arrive. The stars get fed up and leave (to build something else from scratch), and what's left is a stagnant, rudderless, politicized, mediocre group that can no longer do anything innovative.

Mr. Taylor says "I'm not sure I'd make the same choice as Mark Zuckerberg -- especially if those 100 pretty good people work great as a team." That's why he's not Mark Zuckerberg.

[+] onan_barbarian|15 years ago|reply
The choice between 5 great engineers and 1000 average engineers is, of course, an utterly false dilemma. No-one gets paid 200x average salary for being 'great'.

The choice should be between hiring 5 great engineers PLUS 100 good engineers in support of these guys (and maybe 20 ancillary staff to answer the phones, and keep all the other distracting stuff out of the hair of the 55 engineering staff) vs 1000 average engineers. Maybe a few high-quality managers to make sure that 'greatness' is actually staying on schedule rather than just sitting around being really awesome, too. :-)

Everyone has a different skill-set, and using your great engineers to do stuff outside their area of expertise is like using a oscilloscope as a hammer.

This also leads to another corollary: that is, given 2 'great' engineers, if engineer A is a little less brilliant than engineer B, but can make effective use of a team of 20, while engineer B insists on doing everything 'his way' and can't work effectively with others, you're going to want engineer A.

[+] onan_barbarian|15 years ago|reply
oops, dammit, editing FAIL - under normal circumstances I understand that 5+100 != 55. Should read "out of the hair of the 105 engineering staff".
[+] alinajaf|15 years ago|reply
I used to scoff at the idea of the super-developer who is orders of magnitude more productive than anyone else. Mostly it was me protecting my own self-esteem.

Then I met one and actually had to re-assess my ability as a developer, not just as to how good I am now but how good I'm _ever going to be_. I've now come to terms with my fate.

While I will put a lot of hard work into being as technically thorough, well-read and well-practiced as I possibly can, I no longer compare myself to these ultra-productive developers who can walk into a dev team and pick up more domain knowledge than I did in a year in a couple of months.

[+] jerf|15 years ago|reply
The other thing is that the "100x" number isn't really applicable. Yes, your super-developer that you met may do the same task 5x faster than somebody else, but the real thing that sets him or her apart and makes them valuable is the set of things that they can do that a mediocre or inexperienced developer simply can't do, at all. It's hard to use the "times better" metric to measure that.

And when you look at it that way, I think it's easier to "see" the super developers out there. There's a lot of people who are faster, but still mediocre. While I can put that to good use, I don't think it's the same thing.

You might surprise yourself. It isn't necessarily all about speed. Continuous deliberative practice can take you a long way. You may never bash out code at warp speed, but you might find you can still step up into the "doing things few other people can even do at all" domain.

[+] fleitz|15 years ago|reply
I'd take 5 rockstars supported by 1000 average devs. You need the rockstars to do some of the heavy algorithmic / visionary lifting and the 1000 people to make sure that the software is well tested, well documented, very well polished, etc. And also, you need the 5 rockstars to support the 1000 average devs by getting them past hurdles, etc. And you need a little bit of management in between to ensure the average guys aren't dissapointed by the salary differences, and the rockstars aren't frustrated by how long it takes to polish.

At Facebook it's probably worth it to get those few rockstars so they can make a drastic impact on the average guys. It's probably even worth it to give them $4 million a piece.

[+] mentat|15 years ago|reply
I'm not sure that the 1000 really will make sure the software is well tested, etc. Given that I haven't seen things on that scale, but the scales I have seen, the non-superstars don't seem to get why they should do any of that work or how to do it effectively. Maybe 5 rockstars and 30 very much above average. 1000 average won't get anything done and won't know what they have done.
[+] mindcrime|15 years ago|reply
The point that I think everyone is missing here, is that there are different kinds of "talent." The mythical "5x more productive developer" is almost certainly not 5x more productive at all imaginable tasks, and would almost certainly be completely miscast if assigned to doing some jobs... jobs that probably need to be done (depending on what the project is). IOW, I don't believe there is such a thing as a (universally) "5x more productive developer". What there are, are people with certain talents and strengths, that - when aligned with what is being asked of them - result in great productivity.

IOW, the person who's a guru at coding machine-learning algorithms in Java, is probably not also the person who is a guru at writing OS kernels in C, who is not also the person who's a guru at writing web applications in Python, who is not the person who's 5x more productive at writing automated tests, etc., etc.

My personal belief (which I'll freely admit is based on no scientific research) is that the best scenario is to have a team where the members of the team are each as talented as possible, respective to what their role on the team is. And it's entirely possible that the ideal team will not look - at first blush anyway - like a team of "5 rockstar developers" as people might imagine it.

To go back to sports analogies... there isn't one universal "rockstar football player" talent. The talents needed by a Quarterback are different from that needed by an Offensive Tackle, which are different from those of a Wide Receiver, or a blocking Fullback. And to win games, you need people who have the requisite skills at each position. But you can't judge all of them by one generic metric.

I think a lot of you guys also underestimate the value of chemistry on a team. A team that has been together for a while, where the members have learned each other's strengths and weaknesses, and where the members truly work in harmony, can accomplish a lot even without "superstars."

[+] duopixel|15 years ago|reply
I'm not sure why journalists (in this case, the co-founder of a magazine) feel qualified to criticize immensely successful Tech companies.

There was a recent article stating that Google should push the Android Platform towards—guess what—an Apple way of doing things. As if Android hasn't gotten a huge piece of the market by doing things different from Apple. Android is appealing precisely because it has things the iPhone doesn't. And this comes from a lifelong Apple and iPhone user.

And here's Facebook, a player that entered a quite mature market with well established players and just crushed them into oblivion through sheer talent. In the face of fast growth, Facebook hasn't been through the pains of Reddit or Twitter; they just effortlessly introduce highly sophisticated technology that works on a massive scale.

And yet a clueless journalist comes along and says "hey, you're doing it wrong!". Baffles me every time.

[+] ignifero|15 years ago|reply
2 red herrings don't render the journalist 'clueless' and unqualified. Everyone's entitled to an opinion.
[+] swampthing|15 years ago|reply
If you were launching a technology or developing a product, would you rather have five great engineers rather than 1,000 average engineers?

The former...

What's interesting to me is that the author makes statements like this apparently based solely on his intuition, which seems to be completely uninformed by any experience with programming, and dubious analogies to sports and investment banking.

Not to mention inexplicable assumptions that (1) great programmers are, on average, less likely to be able to work well on teams and (2) the ability to work on teams is encapsulated in the evaluation of a programmer (at least in the minds of Zuckerberg and Andreessen).

[+] cek|15 years ago|reply
I read this article and cringed. After 30+ years of building software products and organizations I am 100% with Zuckerberg on this. A really great engineer or designer is far more valuable than dozens of average ones.

Of course, an organization must have the culture to support such super-stars.

Which is where the focus of our discussions and energy should be as leaders. Not on the super-stars, but creating the atmosphere in which super-stars can excel.

[+] ubercore|15 years ago|reply
I'm kind of an outlier, but I really believe that context places a huge, huge part in the "superstar developer" mythos. We're very quick to overlook a lot of contributing factors in the rush to declare some developers legendary. "Outliers" does a pretty good job outlining the argument, which I happen to agree with.

This isn't to say that you can plop anyone in the right context and get a "superstar", and I think some people are more resilient to contextual changes that might make other devs crumble.

"If you were launching a technology or developing a product, would you rather have five great engineers rather than 1,000 average engineers?"

I also think that this is a straw-man argument, in the sense that the kind of person who can work well on a 1,000 person team may be different than the five great engineers who can develop and bootstrap a new product. There is overlap, but honestly I think there's an argument that some situations call for "1,000 solid engineers".

[+] bugsy|15 years ago|reply
Or maybe they are underrated and this article is propaganda.

The main problem is that he is criticizing the claim that brilliant people in tech are considerably better than average, way out of proportion with their pay.

To attack this, he brings up the known and uncontested fact that wall street analysts are BS artists who provide no value because their entire field is a scam.

So what. The two things are totally different.

[+] tatsuke95|15 years ago|reply
It's not surprising to read on a site devoted to hackers that 5 is better than 1000. Everyone wants to believe they're special. But if all companies followed this mindset, there'd be many people here out of work.

That said, I don't think either side is the ideal. I'm also a big believer that brilliant people make a huge difference. But what you want is an structure that allows those five brilliant people to oversee a sea of average workers. Like a factory; some things just work better when you can plug any warm body into the position.

But it takes 5 brilliant people to design that system...

[+] shimon|15 years ago|reply
Would you rather hear the music of a thousand mediocre musicians or four great ones?

I'm not trying to draw an analogy between musicians and hackers -- just providing an example to show that productivity ratios vary hugely depending on the endeavor, so comparing software to soccer or investing is fruitless.

[+] hadtocomment|15 years ago|reply
Comparing the rosters of two professional basketball teams is not comparing superstars to average players. It's comparing superstars to superstars.

The situation in programming is more akin to comparing the Miami Heat's roster to that of a mediocre college team.

[+] charlieflowers|15 years ago|reply
I am amazed at all these viewpoints (in the article and in comments) in favor of 1000 mediocre programmers versus 5 great ones. Have you actually seen big software development departments at work?

1000 mediocre developers is like a huge battleship (an old, clunky, unarmed one). You can't get everyone one the same page. You can't change directions. You have to dumb everything down and cut your ambitions in half just to hope to get a working product out.

5 great programmers would absolutely beat the hell out of 1000 mediocre programmers, every single time. I can't believe anyone even thinks it's a contest.

[+] maranas|15 years ago|reply
I think it isn't about the engineers' skill, but more on how they work together as a team. 5 superstar pricks will get you nowhere. 1 superstar plus 4 average engineers that work and take directions well, and you have a team. Even with just 5 average engineers, as long as they get the job done and take to instructions well, you're better off. The problem with superstars is that they usually have huge heads, and would rather prove a point than make things work. A superstar with a great work ethic and is a team player, now that is worth the money.
[+] freshfunk|15 years ago|reply
Those were some horrible examples. Its not surprising that star ANALysts make no difference. Studies show that monkeys perform just as well at investing.

His other example are teams in professional sports. This is also horrible because even the "average" professional athlete represents the cream of the crop (.01%). Scotty Pippen, Steve Kerr, and Dennis Rodman were no Michael Jordan but surely they're stars by any other metric.