FIRE THE B-PLAYERS! WAS STEVE JOBS RIGHT?
In his outstanding biography, simply entitled, Steve Jobs, Walter Isaacson chronicles a bizarre event. After the Lisa and Macintosh divisions were combined, Jobs announced to the Lisa team, "You guys failed. You're a B team. B players. Too many people here are B or C players, so today we are releasing some of you to have the opportunity to work at our sister companies here in the valley." Then, Jobs fired 1/4 of the Lisa team. (Note: I had originally thought Jobs had fired the entire group, but upon re-reading Isaacson, I see it was only 1/4 of the group. I guess Jobs was a much kindler soul than I remembered!)
At the time I read this account, Jobs' decision struck me as incredibly extreme, and simply, wrong. What an extreme thing to do! I've come to re-think that, however.
CARS AND SOFTWARE
During the "Lost Interview," filmed in 1995 while Jobs was still "away" from Apple, he explained his thinking. Steve used automobiles as an example. He observed that the overall difference between a middling car and the best car is not huge. In the field of software, however, the difference between mediocrity and excellence can be massive--even 100 to 1. So, if that's true, he asked, why would you ever put up with "B" players?
Jobs used another example: If you were leading a 10-person startup, why would you allow a handful of "B" players? If just 3 out of 10 were mediocre, that could wreck your entire company.
If you think of your own experiences in software design, I think you will see that what Jobs said is true. In our field, the difference in performance actually achieved between two different designs can be massive. This variability applies to both the quality and the functionality of software programs. I have personally seen an entire project canceled because the designer did not understand how to efficiently make queries to an Oracle database. So, for that project, the difference in output meant failure--certainly not just a slight difference.
HELP WANTED: "A" PLAYERS NEED NOT APPLY
One way to make sure your company only gets "B" and "C" players is to specify very broad job qualifications. So, the Oracle DBA should also know a bit about C programming, network architecture, disk layout, and Java. And when he's not busy, he also is the Sys Admin.
This approach ensures that all "A" players are eliminated, because true "A" players have, by necessity, spent thousands of hours honing their skills in a very specific area. It is simply not true that any of these generalists could possibly be great at any one thing. The claim of competence in many areas undermines any claim to be an expert in one.
THE COUNTRY DOC
In a remote town, far from the big city, there is only one physician. No matter what your ailment, "Doc Baker" is the one to see. He will do his best and try to solve any medical problem, whether a cold, chest pain, slipped disk, or whatever. There really isn't any other choice--Doc Baker must be a generalist, and although he is a very kind man, it is supremely unlikely that Doc Smith is an "A" player in any specialty.
Now, shift to the big city. A large hospital will have specialists in every medical field. Accordingly, the hospital makes the choice to hire "A" players for each specialty. In that way, they can handle any medical need. With this setup, the most efficient and competent way to treat medical problems is to route the patient to the "A" doctor who knows that specialty. Of course, they could have hired dozens of "Doc Smiths," but the folly of that is evident. Why would they deliberately choose to route patients to practitioners of lesser ability?
LARGE COMPANIES USE "COUNTRY DOC" MODEL
Most large companies follow the "Country Doc" approach to IT, even though many have the resources to use the "Big City" model. So, all-purpose Oracle DBA "Doc Bakers" are hired, who are pretty good at many things--just like "Doc Smith." That is, they are good "B" players. Send them any type of database issue, and they can likely (if not swiftly) solve the problem.
I remember applying for a contract job years ago, and the written qualification mentioned, "Familiar with C Programming." I was puzzled and asked the interviewer, "Why would a performance expert be good at C Programming?" They quickly understood my point, and immediately dropped the requirement. By coincidence, an applicant might have that background, but why make that a requirement?
WAS STEVE JOBS WRONG?
I don't think "B" or "C" players are stupid--or even less capable than their colleagues. I think it just means they are inexperienced --they haven't spent thousands of hours focusing on one skill. If one accepts the notion that thousands of hours are required to gain true competence, it couldn't be any other way, could it?
So, Steve Jobs didn't get it wrong. He just could have said it a little more kindly.