Monday, November 5, 2012


How to hire the best

There are many aspects to hiring great people, and various people smarter than me have written extensively on the topic.
So I'm not going to try to be comprehensive.
But I am going to relay some lessons learned through hard experience on how to hire the best people you've ever worked with -- particularly for a startup. I'm going to cover two key areas in this post:
Criteria: what to value when evaluating candidates.
And process: how to actually run the hiring process, and if necessary the aftermath of making a mistake.
Criteria first.  Lots of people will tell you to hire for intelligence. Especially in this industry.
You will read, hire the smartest people out there and your company's success is all but guaranteed.
I think intelligence, per se, is highly overrated. Specifically, I am unaware of any actual data that shows a correlation between raw intelligence, as measured by any of the standard metrics (educational achievement, intelligence tests, or skill at solving logic puzzles) and company success. Now, clearly you don't want to hire dumb people, and clearly you'd like to work with smart people.

But let's get specific.
Most of the lore in our industry about the role of intelligence in company success comes from two atmospherically successful companies -- Microsoft, and now Google -- that are famous for hiring for intelligence.Microsoft's metric for intelligence was the ability to solve logic puzzles(I don't know if the new, MBA-heavy Microsoft still does this, but I do know this is how Microsoft in its heyday worked.) For example, a classic Microsoft interview question was: "Why is a manhole cover round?" The right answer, of course, is, "Who cares? Are we in the manhole business?"
(Followed by twisting in your chair to look all around, getting up, and leaving.)
Google, on the other hand, uses the metric of educational achievement. Have a PhD? Front of the line. Masters? Next. Bachelor's? Go to the end. In apparent direct contraction to decades of experience in the computer industry that PhD's are the hardest people to motivate to ship commercially viable products -- with rare exception. (Hi, Aziz! Hi, Mahesh!)
Now, on the one hand, you can't question the level of success of either company. Maybe they're right. But maybe, just maybe, their success had a lot to do with other factors -- say, huge markets, extreme aggressiveness, right time/right place, key distribution deals, and at least in one case, great products. Because here's the problem: I'm not aware of another Microsoft that's been built by hiring based on logic puzzles. And I'm not aware of another Google that's been built by hiring PhD's. So maybe there are other hiring criteria that are equally, or more, important.
Here's what I think those criteria are.

First, Drive.

I define drive as self-motivation -- people who will walk right through brick walls, on their own power, without having to be asked, to achieve whatever goal is in front of them. People with drive push and push and push and push and push until they succeed. Winston Churchill after the evacuation of Dunkirk: "We shall not flag or fail. We shall go on to the end, we shall fight in France, we shall fight on the seas and oceans, we shall fight with growing confidence and growing strength in the air, we shall defend our Island, whatever the cost may be, we shall fight on the beaches, we shall fight on the landing grounds, we shall fight in the fields and in the streets, we shall fight in the hills; we shall never surrender."
That's what you want.
Some people have it and some people don't. Of the people who have it, with some of them it comes from guilt, often created by family pressure. With others, it comes from a burning desire to make it big. With others, it comes from being incredibly Type A. Whatever... go with it -MOTHER OF INSECURITY.
Drive is independent of educational experience, Grade Point Averages (G.P.A.), and socioeconomic background.
(But Aziz, isn't a 4.0 GPA a sure sign of drive? Well, it's a sign that the person is driven to succeed on predefined tests with clear criteria and a grader -- in an environment where the student's parents are often paying a lot of money for the privilege of having their child take the tests. That may or may not be the same thing as being driven to succeed in the real world.) Drive is even independent of prior career success. Driven people don't tend to stay long at places where they can't succeed, and just because they haven't succeeded in the wrong companies doesn't mean they won't succeed at your company -- if they're driven. I think you can see drive in a candidate's eyes, and in a candidate's background.
For the background part, I like to see what someone has done. Not been involved in, or been part of, or watched happen, or was hanging around when it happened. I look for something you've done, either in a job or (often better yet) outside of a job. The business you started and ran in high school. The nonprofit you started and ran in college. If you're a programmer: the open source project to which you've made major contributions. Something.
If you can't find anything -- if a candidate has just followed the rules their whole lives, showed up for the right classes and the right tests and the right career opportunities without achieving something distinct and notable, relative to their starting point -- then they probably aren't driven. And you're not going to change them.

Motivating people who are fundamentally unmotivated is not easy. But motivating people who are self-motivated is wind at your back. I like specifically looking for someone for which this job is their big chance to really succeed.

For this reason, I like hiring people who haven't done the specific job before, but are determined to ace it regardless.
I also like specifically looking for someone who comes from some kind of challenging background -- a difficult family situation, say, or someone who had to work his/her way through school -- who is nevertheless on par with his/her more fortunate peers in skills and knowledge (Sometimes I see a lot of me in these candidates).

Finally, beware in particular people who have been at highly successful companies.
People used to say, back when IBM owned the industry: never hire someone straight out of IBM. First, let them go somewhere else and fail. Then, once they've realized the real world is not like IBM, hire them and they'll be great.
And remember, an awful lot of people who have been at hugely successful companies were just along for the ride.
Career success is great to look for -- but it's critical to verify that the candidates out of hugely successful companies actually did what they claim in their roles at those companies. And that they really get it, that the real world is a lot tougher than being IBM in the 80's, or Microsoft in the 90's, or Google / Facebook today.

Second criterion: curiosity.
Curiosity is a proxy for, do you love what you do? Anyone who loves what they do is inherently intensely curious about their field, their profession, their craft. They read about it, study it, talk to other people about it... immerse themselves in it, continuously. And work like hell to stay current in it. Not because they have to. But because they love to.
Anyone who isn't curious doesn't love what they do. And you should be hiring people who love what they do.
As an example, programmers. Sit a programmer candidate for an Internet company down and ask them about the ten most interesting things happening in Internet software. REST vs SOAP, the new Facebook API, whether Ruby on Rails is scalable, what do you think of Sun's new Java-based scripting language, Google's widgets API, Amazon S3, etc.
If the candidate loves their field, they'll have informed opinions on many of these topics.
That's what you want. Now, you might say, Aziz, that's great for a young kid who has a lot of spare time to stay current, but what about the guy who has a family and only has time for a day job and can't spend nights and weekends reading blogs and staying that current? Well, when you run into a person like that who isn't current in their field, the other implication is that their day job isn't keeping them current. If they've been in that job for a while, then ask yourself, is the kind of person you're looking for really going to have tolerated staying in a day job where their skills and knowledge get stale, for very long? Really? Remember -- because of the Internet, staying current in any field no longer costs any money.
In my  Insurance experience, drive and curiosity seem to coincide pretty frequently. The easiest way to be driven is to be in a field that you love, and you'll automatically be curious.

Third and final criterion: ethics.

Ethics are hard to test for.
But watch for any whiff of less than stellar ethics in any candidate's background or references. And avoid, avoid, avoid.
Unethical people are unethical by nature, and the odds of a metaphorical jailhouse conversion are quite low.
Priests, rabbis, and ministers should give people a second chance on ethics -- not hiring managers at startups.

One way to test for an aspect of ethics -- honesty -- is to test for how someone reacts when they don't know something. Pick a topic you know intimately and ask the candidate increasingly esoteric questions until they don't know the answer. They'll either say they don't know, or they'll try to bullshit you. Guess what. If they bullshit you during the hiring process, they'll bullshit you once they're onboard. A candidate who is confident in his own capabilities and 
ethical -- the kind you want -- will say "I don't know" because they know that the rest of the interview will demonstrate their knowledge, and they know that you won't react well to being bullshitted -- because they wouldn't react well either.

Second topic: process -- how to run the hiring process.
First, have a written hiring process. Whatever your hiring process is -- write it down, and make sure everyone has a copy of it, on paper. It's continually shocking how many startups have a random hiring process, and as a result hire apparently randomly.

Second, do basic skills tests.
It's amazing how many people come in and interview for jobs where their resume says they're qualified, but ask them basic questions about how to do things in their domain, and they fail. For example, test programmers on basic 
algorithms -- linked lists, binary searches. Just in pseudocode -- it doesn't matter if they know the relevant Java library calls. It does matter if they are unable to go up to the whiteboard and work their way through something that was covered in their first algorithms course. A lot of people come in and interview for programming jobs who, at their core, can't program. And it's such a breath of fresh air when you get someone who just goes, oh yeah, a linked list, sure, let me show you. The same principle applies to other fields. For a sales rep -- have them sell you on your product all the way to a closed deal. For a marketing person -- have them whiteboard out a launch for your new product.
Third, plan out and write down interview questions ahead of time. I'm assuming that you know the right interview questions for the role -- and frankly, if you don't, you probably shouldn't be the hiring manager for that position.

The problem I'm addressing is: most people don't know how to interview a candidate. And even people who do know how, aren't necessarily good at coming up with questions on the fly. So just make sure you have questions planned out and assigned to each interviewer ahead of time. I do this myself -- always enter the room with a list of questions pre-planned -- because I don't want to count on coming up with them on the fly. The best part is that you can then iteratively refine the questions with your team as you interview candidates for the position. This is one of the best ways for an organization to become really good at hiring: by iterating the questions, you're refining what your criteria are -- and how you screen for those criteria. 

Fourth, pay attention to the little things during the interview process.
You see little hints of things in the interview process that blow up to disasters of unimaginable proportions once the person is onboard. Person never laughs? Probably hard to get along with. Person constantly interrupts? Egomaniac, run for the hills. Person claims to be good friends with someone you know but then doesn't know what the friend is currently doing? Bullshitter.
Person gives nonlinear answers to simple questions? Complete disorganized and undisciplined on the job.
Person drones on and on? Get ready for hell.

Fifth, pay attention to the little things during the reference calls.
(You are doing reference calls, right?)
Most people softball deficiencies in people they've worked with when they do reference calls. "He's great, super-smart, blah blah blah, but..."
"Sometimes wasn't that motivated" -- the person is a slug, you're going to have to kick their rear every morning to get them to do anything. "Could sometimes be a little hard to get along with" -- hugely unpleasant. "Had an easier time working with men than women" -- raging sexist. "Was sometimes a little moody" -- suffering from clinical depression, and unmedicated. You get the picture.

Sixth, fix your mistakes fast... but not too fast.
If you are super-scrupulous about your hiring process, you'll still have maybe a 70% success rate of a new person really working out -- if you're lucky. And that's for individual contributors. If you're hiring executives, you'll probably only have a 50% success rate. That's life. Anyone who tells you otherwise is hiring poorly and doesn't realize it.
Most start ups in my experience are undisciplined at fixing hiring mistakes -- i.e., firing people who aren't working out.
First, realize that while you're going to hate firing someone, you're going to feel way better after the fact than you can currently imagine. Second, realize that the great people on your team will be happy that you've done it -- they knew the person wasn't working out, and they want to work with other great people, and so they'll be happy that you've done the right thing and kept the average high. (The reason I say "not too fast" is because your great people are watching to see how you fire people, and if you do it too fast you'll be viewed as arbitrary and capricious -- but trust me, most startup managers do not have this problem, they have the opposite problem.) Third, realize that you're usually doing the person you're firing a favor -- you're releasing them from a role where they aren't going to succeed or get promoted or be valued, and you're giving them the opportunity to find a better role in a different company where they very well might be an incredible star. (And if they can't, were they really the kind of person you wanted to hire in the first place?)
One of the good things about our industry is that there are frequently lots of new jobs being created and so you're almost never pushing someone out onto the street -- so don't feel that you're dooming their families to the poorhouse, because you aren't. You're not that important in their lives.

I can name a number of people I've fired or participated in firing who have gone on to be quite successful at other companies. They won't necessarily talk to me anymore, though :-).

Finally, although this goes without saying: value the hell out of the great people you do have on your team. Given all of the above, they are incredibly special people.