Everyone thinks they're hiring the top 1%.
Martin Fowler: “We are still working hard to hire only the very top fraction of software developers (the target is around the top 0.5 to 1%).”
Me: “We get between 100 and 200 [resumes] per opening.”
I remember when I started working for David Shaw he told us they only hired "1 out of 200."
I hear this from almost every software company. "We hire the top 1% or less," they all say.
Could they all be hiring the top 1%? Where are all the other 99%? General Motors?
I had an insight the other day.
Quiz: If you get 200 resumes, and you hire 1 person, are you hiring the top 0.5% of software developers?
"No," you say, "your screening process is unlikely to find the best person out of 200."
Agreed. OK. Let's say you had a magical screening process that actually allowed you to find the "best" person.
"No," you say, "people are good at different things. There's no absolute, forced ranking of developers that makes sense."
Agreed. Let's simplify for the moment and assume that all software developers in the world could be ranked in absolute order of skill, and that you had a magical screening process that found the "best" person from any field.
Now, when you get those 200 resumes, and hire the best person from the top 200, does that mean you're hiring the top 0.5%?
No. You're not. Think about what happens to the other 199 that you didn't hire.
They go look for another job.
That means, in this horribly simplified universe, that the entire world could consist of 1,000,000 programmers, of whom the worst 199 keep applying for every job and never getting them, but the best 999,801 always get jobs as soon as they apply for one. So every time a job is listed the 199 losers apply, as usual, and one guy from the pool of 999,801 applies, and he gets the job, of course, because he's the best, and now, in this contrived example, every employer thinks they're getting the top 0.5% when they're actually getting the top 99.9801%.
The top 0.5% usually have jobs. They have jobs where they do very well, so their employers pay them lots of money and do whatever it takes to keep them happy. (I know. Oversimplification. Lots of employers try to drive out the good software developers because they complain a lot and demand high salaries. Still.)
Those 200 resumes you got from Craigslist? Those consist of the one guy who happened to be good, but he's only applying for a job because his wife wants to be nearer to her family, and the usual floating population of 199 people who apply for every single job and are qualified for none. And now you think you're being "super selective" but you're not, it's just a statistical fallacy.
I'm exaggerating a lot, but the point is, when you select 1 out of 200 applicants, the other 199 don't give up and go into plumbing (although I wish they would... plumbers are impossible to find). They apply again somewhere else, and contribute to some other employer's self-delusions about how selective they are.
In fact, one thing I have noticed is that the people who I consider to be good software developers barely ever apply for jobs at all. I know lots of great people who took a summer internship on a whim and then got permanent offers. They only ever applied for one or two jobs in their lives.
On the other hand there are people out there who appear to be applying to every job on Monster.com. I'm not kidding. They spam their resume to hundreds or thousands of employers. A lot of times I can see this because there are actually hundreds of "job" aliases in the "To:" line of their email. (Some evil part of me wants to "reply-to-all" the rejection note I send them, but I usually overcome the urge).
It's pretty clear to me that just because you're hiring the top 0.5% of all applicants for a job, doesn't mean you're hiring the top 0.5% of all software developers. You could be hiring from the top 10% or the top 50% or the top 99% and it would still look, to you, like you're rejecting 199 for every 1 that you hire.
By the way, it's because of this phenomenon—the fact that many of the great people are never on the job market—that we are so aggressive about hiring summer interns. This may be the last time these kids ever show up on the open market. In fact we hunt down the smart CS students and individually beg them to apply for an internship with us, because if you wait around to see who sends you a resume, you're already missing out.
You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.