I was at the bookstore today and I was flipping through Joel
On Software when I came across the chapter on hiring.
As is typical of other business books, it
promoted a "hire the best" philosophy.
I've pondered this notion over the years, and
wanted to share my thoughts.
Let me first say that I agree with the underlying philosophy
of the advice, that being that a small number of highly-motivated, talented
people can outperform an army of mediocre individuals. However, there are several aspects of the
"hire the best" mantra that have always bothered me.
First, it has unfortunately become a tired old management
cliche. Of course everybody says they hire the best. Who would ever boast about hiring the
worst? And who would ever want to work
for a company that brags about hiring the worst? But saying
you hire the best, and actually
hiring the best are two very different things.
Second, it's a bit absolutist. In my mind, if there are 17 million
programmers in the world, then "hire the best" means 1 person has a
job and the other 16,999,999 people are unemployed. That's obviously impractical, making the
advice at the most general level non-actionable. I hate non-actionable advice.
Third, there really is no such thing as "the
best". There are a variety of
factors that make up a good associate - raw intelligence, communication skills,
people skills, work ethic, etc. Every
potential employee will have a unique mix of these aspects ... no one is
perfect at everything.
Fourth, what does it say about me? Am I the best? I do the very best I can to "sharpen the
saw" of my personal skill set. I
read programming books and magazines, self-teach myself new technologies, read
blogs, and attend all manner of workshops, user groups, and code camps. I feel like I'm at the top of my game, and
the best programmer that I've ever been.
But am I the absolute best? In a
world filled with so much talent, it would be very conceited of me to make such
a claim.
Lastly, what do you do if you live in a small city like I do
that isn't the epicenter of the technological world? Should I move to San Jose, CA or Redmond, WA,
where the per-capita talent may be higher than where I live? And how can I compete as a small software
company if all the other larger software companies have already gobbled up the
best talent?
So here's my take on it.
I don't think you need to move to California or Washington. I think there are plenty of smart people all
around ... you just have to find them. I
think you should hiring the smartest people you
can find, invest in them to help
them be the best they can be, and encourage them to fanatically acquire domain
knowledge.
The latter two points above seem to be glossed over too
quickly by "hire the best" aficionados. Yes, raw talent is a very important aspect,
but I think great programmers are born over time, not stamped out at a
factory. And I want people who care
intensely about what they're doing and want to learn everything they possibly
can about their domain. There are just
too many people in the world that want to punch a clock and pick up a
paycheck. Give me people with passion.
Which brings me to my closing thought ... leadership. You can have the best people in the world,
but without great leadership they won't accomplish much. And in a small software company, leadership
pretty much comes down to one thing ... YOU.