I suppose so far I’ve been lucky to have always found people like this. It must have been luck because till now I’ve not formalised an approach that ensures I find people like this. Perhaps it has all been subconscious; I’ve only ever hired people that I like, and I tend to like people with these characteristics.
A more formal approach would be to have a candidate selection technique that selected for these desirable qualities and which identified undesirable qualities, like god complexes, laziness, introversion, lying and other criminal tendencies, and the desire to use Microsoft software.
I have a problem with abstract and difficult-to-assess questions like “If you were an animal what kind of animal would you be?” and “Describe a situation where things didn’t work out too well for you and how you felt about it”. Questions like this rely on the interviewer’s ability to understand the skills that the candidate is demonstrating. If a genius walked into the room most interviewers would be at a loss to recognise one – and if my selection process allows geniuses to slip away then this is as bad as allowing antisocial idiots on to the team.
I prefer to engage candidates in conversation rather than perform a question-and-answer session. I find that this relieves to some extent any interview nerves the candidate may have. It’s all very well saying that you need to select for people who are confident, and that being fazed by an interview is evidence of a bad trait – the propensity to perform badly in stressful situations – but I don’t buy this. Interviews are an unnatural situation for most people and some people, graduates, for example, may find them truly terrifying.
I’m usually involved in J2EE development, and so tend to engage a candidate in a conversation on this topic. Not a question/answer session, just a conversation. If the candidate couldn’t hold his or her own in this then I’d have some doubts about their ability to fit in with the team. I like to discuss innovative open source projects, like Object Web’s cool new C-JDBC project, the Object Relational Bridge project from DB.Apache and the Axis web services project (along with WSIF) from WS.Apache.
What I’m looking for in this conversation is a high level of technical ability, a thorough knowledge of recent developments in the field and an ability to communicate with other technical people in their own language.
Next I’d start a conversation about music and movies. While I’m writing this I’m sitting next to a guy called Glen, who’s bright, capable and friendly, but has a serious character flaw that took four days to uncover. He listens to country music – imagine my horror! This may not seem like a problem to you, and even I quite like some bluegrass – Violent Femmes’ Country Death Song and, of course, the Blues Brothers’ version of Rawhide is brilliant – but usually I listen to KRS1 & Boogie Down Productions, Queens of the Stone Age, Rob Zombie, White Stripes (to which I’m listening right now), Black Sabbath, Bloodhound Gang and so on. Glen would be a problem on my team because he’d constantly be whinging about the noise and asking his pair-programming partner to stop head-banging (this isn’t true; Glen would fit nicely on one of my teams).
The music and movies conversation is designed to show conflicts between the tastes of a candidate and those of the team. As the selector in this process, it’s my job to ensure the team gels. This doesn’t necessarily mean ensuring that everyone on the team has the same taste, but it does mean making sure that each person can tolerate the tastes of the others. This goes some way to showing a general level of tolerance – another desirable trait.
The next conversation I like to have is about the nature of business. I prefer a micro-corporation model – like the one that predominates in Hollywood – and I’m interested if the candidate has any business knowledge and acumen, and if they can communicate this.
The last conversation I have includes topics of racism, politics and religion. Here I want to assess the ability of the candidate to deal with alternative views that other team members may have. Having a meat eater on the team is fine, as long as he doesn’t try to force his sick ideas down my throat.
If all the conversations go well then the next stage of the selection process usually takes a couple of hours. I like to invite people to come and work with the team for a bit to see how they fit in, what they think of pair-programming and test-driven development, and of our actual team atmosphere. Of course, a candidate can’t achieve much in a couple of hours, but from this I can judge their ability to fit in and hit it off with the team. If they’re outgoing and quickly grasp the concept of promiscuous pairing then I’m happy. If they sit there bewildered then perhaps this isn’t the best place for them.