Criterias For Hiring Genuine Builders Who Can Create Remarkable Environments If Left Alone.
Recruiting individuals for your team and organization is an art. An art at which I've seen so many different Vice Presidents, Senior Managers, Directors, Team Leaders and Developers suck that you begin to wonder if we are basically an industry of the incompetent recruiting the incompetent.
With this post my intent and attempt; dear reader; is not to teach you how to hire better people for the job. That; is a topic that can cover a book in itself.
What I intend on doing with this post however; is giving you a few qualities you need to look out for in your candidates while you are interviewing them. Keep these qualities in mind and work hard to develop your very own personal litmus tests around these basic qualities. Do this and you should have a good shot at eliminating most programmers-who-cannot-program; whiners and the fake rock-stars before it is too late.
Ready for some qualities you need to look out for in the candidates you interview?
Thick skinned and down-right shameless.
Qualities of shamelessness and thin-skinned-approach-to-professional-life are things which usually take less than a few minutes to figure out.
As you talk to candidates try to drive the discussion to a point where they need to talk about a couple of failed projects from their career. How does the candidate talk about failures; is he objective about what went wrong; is he pointing fingers; did he learn something from his colossal failures; does he seem interested in sharing what he learnt or is he just interested in shit-canning his failures and hiding them from you.
Most great builders are down right thick-skinned and they fail often. They are often completely shameless about their failure and carry it with a sense of humor. After technical competence; this is the first quality that I tend to look for in people I hire.
Genuine Builders Are Nice When The Sky Is Falling
Ever been late to an interview? I've been there; you know the typical bad day where you are running late by a few minutes and you start the interview with an apology for being late. I stared in awe as the candidate; with multiple years of development experience; reminded me thrice that I was late and continued to give me a rather intimidating look.
If you cannot be nice to me when I start the interview five minutes late; it is safe for me to assume that you cannot be nice when the project is running late by a couple of weeks.
I'm not saying that you go in five minutes late during every interview; but figure out a litmus test that tells you if a person is just nice; or he is also nice to work with and nice when the sky breaks lose.
Genuine Builder Know Not; And They Know That They Know Not.
Ask difficult questions. See how frequently you hear the words 'I do not know' during the interview. Most candidates find it difficult to even utter these words once during an interview. Others utter these once or twice but start lying and bitching the third time on.
Remember; genuine builders don't know a lot of things and they are rather well aware of their own weaknesses or limitations.
One of their major strength is that they know that they know not.
The art of observing candidates using thin-slicing is a technique described in books like Blink. Of-course you don't have to make split second decisions but anyone who he constantly avoiding eye contact; giving you shitty indignant looks when you correct them at their answers or looking at the cell phone screen as you speak to them in an interview is clearly not someone you want on your team.
Agree To Disagree
During every interview I try to make it a point to play the devil's advocate and disagree to the candidate on at-least one technical or design related topic. Disagree; then observe how the candidate handles disagreement.
Does he argue objectively; are there elements of contempt in his expressions as the disagreement continues.
If you were to hire him; there are going to be many heated arguments which are work-related. At the end of the day you want to hire people who have strong opinions weakly held; people who can agree to disagree and people who do not indulge in acts of bozoism.
Critical and Open but Not an Asshole
People who can provide constructive criticism are rather rare. Assholes who randomly criticize things without rhyme-or-reason are a dime a dozen. Unfortunately there is a very thin line that differentiates builders who can provide constructive criticism or whiners who specialize in de-motivating and shattering individuals.
Drive the discussion around the candidate's current project. Try to find out what he feels about the implementation. Anyone who feels that they are doing everything correct is a blatant-compulsive-liar. Anyone who provides random criticism without also mentioning what could have been done to avoid or fix what is wrong; is a down right whiner.
Anyone who is overly critical and wants to change everything in one day is a whiner too.
I continue to be amazed at just how many companies ignore this. When one of my bosses told me a deep dark secret of figuring out a candidates possible duration in the organization if you were to hire him; the idea sounded absurd. Like all good ideas; it was absurd but true.
"Anyone who has changed a job each year; for the past three years is not going to stay in your organization for more than a year." --- I was told.
As stupid as it sounds; look at most resumes and you'll see patterns around how frequently people leave jobs. How frequently they hop from one project to another. Unless you are a one in a million example; chances are that you are not going to be able to change this track record. So; if you are looking for a candidate who can be seriously committed; anyone who has changed three jobs in last three years; at the rate of a job a year; is out.
Reason For Leaving
This is one thing that says a lot about the person you are interviewing. I continue to be amazed at just how many candidates lie blatantly when it comes to their reasons for leaving their past job. I also continue to be amazed at how easily they get caught.
I'd have a lot of respect for anyone who leaves a job because of difference of opinion. Much more respect than I can have for someone who leaves for a slightly higher paycheck and does that year-after-year. Build some simple litmus tests around reasons for leaving and you'll discover that finding out true reasons for leaving is not hard.
Passionate About Something
As they say --- passion is something that cannot be faked. You either have it or you don't. Ask the candidate which technology does he absolutely love working on. Then let him speak about it and hear him speak.
Passion is easy to detect. Having said that; the paradox of detecting passion is simple --- it takes a passionate programmer to detect and understand passion in another programmer.
If you are yourself a pay-check-programmer whose resume is floating in job portals around the year; and you believe in 501 programming spotting passion is going to be very difficult.
Genuinely Interested And Connected
Most programmers don't read books. Having said that; when I come across a programmer who hasn't read a single book on programming in his entire life; do I really want him on my team?
A programmer who doesn't read programming books is much like a movie actor who doesn't like watching movies. Disconnected and Disinterested.
Does your candidate have a favorite author? Does he work for an open source project? Does he read technical books? Does he have an active blog that he updates regularly with meaningful content? Does he answer forums?
If the answer to most of these is no; he's probably not genuinely interested or connected to programming.
You'd actually do him a favor by gently nudging him out of your office and if possible; nudge him to a different profession.
How much time has the candidate spent on your corporate website? That tells you something about his interest level in the organization. Even today; I continue to be amazed by the number of people who come down for an interview without even taking a quick glance at the company's website.
Both of these are clear examples of the candidate not being genuinely interested in programming in general and your organization in particular.
Weird But Acceptable
Genuine creativity is un-conventional; sometimes even ugly and down right weird. During my course of interviewing career I've interviewed and hired candidates ranging from folks who could barely speak English to folks who were so disappointed with BDUF approaches to software development they just couldn't stop talking.
If there is something weird or unconventional you can spot in a candidate during the small duration of an interview and it is not a harmful weirdness; embrace it. People who get into office at nine and have utmost respect for all the rules; do not know how to bend them and make small or big dents in the universe.
My work experience ranges from working with people who talk about drinking "one gigabyte of alcohol" in an office party to poets who are passionately inspired by other poets. I've always embraced weirdness and have considered it a part of the whole creative process.
Of-course; I've seen a couple of managers have their share of one or two isolated bad experiences where they landed with a kleptomaniac; without knowing they were hiring one; but then that doesn't make all forms of make diversity or even weirdness --- bad.
Wearing slippers to office is acceptable; stealing client's headphones is not.
Unless the weirdness is bad; harmful or un-acceptable --- embrace it.
Nothing Beats A Genuine Builders Recommendation
With all these criteria I might have already started sounding like someone who has years of wisdom at the whole recruitment process. But clearly all this wisdom doesn't work all the time. Which is why; when a candidate referred by one of the top-most-builders in my team fails my interview criteria; but the genuine-builder who referred him has worked with him in the past and is willing to vouch for him; here is what I do --- I shut up and recruit him.
Remember the good old saying that they used to teach you in junior school - 'birds of a feather flock together' --- Your hugely underpaid school teachers knew nothing about the importance; what they were teaching you; would have in your professional life.
If there is something that I've learnt about recruitment after being involved in recruitment for years; it is that idiots usually tend work with idiots and idiots to have friends outside work who are also idiots and they tend to refer these idiots for interviews.
Having said that the same lesson also applies to genuine builders. Builders; usually tend to hang out with other genuine builders. When wondering what you should do with a candidate one of your best builder worked with in a previous organization and has recommended --- remember --- chances are that the seriously kick ass builder who recommended him probably enjoyed working with the candidate because the candidate in question was a seriously kick-ass builder too.
You are never going to find out enough about a candidate during an interview.
When your top most performers refer someone and are willing to vouch for them; shut up; and hire them.
I do not claim of this list being an extensive list of 'all' the qualities you need to look out for; but look out for candidates who do not have most of these qualities and you've filtered a huge part of shitty-whiners out which just makes your chance of recruiting genuine builders that much better.
What are things; besides technical competence; that you look for in a candidate before you bring them on to your team?
How many of these criteria were you actively monitoring or trying to access during interviews you conducted in the past?
Which other criteria do you look for in your candidates, dear reader?