Gradual Epiphany

Interviewing, 1

Lately, it’s been popular to complain about how ineffective interviewing is as a way of selecting good candidates. It’s decried as a waste of time, unpredictable and “just wrong”.

Interviewing doesn’t have to be this way.

In every other part of software development, we invest massive amounts of discussion, argument, blood, sweat and tears trying to find the perfect reproducible process. We spend PEOPLE YEARS of time tuning our software lifecycles, even when we don’t even know what we’re building or who we’re building it for. Think about all the software methodologies we have, all the conferences, the books, the acronyms. In my 17 years, I’ve learned/participated in at least 4 major software development methodologies (and endless mixes): RUP, Agile, Scrum, Kanban.

You know how many interviewing methodologies I’ve been taught?

Zero. Nil. Nada. Zilch.

Do you see the problem here?

Random actions yield random results. Interviewing people without a very specific, repeatable process will yield worse than random results. Even coin-flipping can yield a streak of good hires. An unreproducible interview process will allow existing biases, personal mood swings and time of day (!!) to influence the outcomes. It will create a self-reinforcing cycle of bad hires. Not only that, it will waste precious time — quickly offsetting any gains from adding staff.

Here’s where you start:

  • Determine up front how many interviews EVERY candidate will have.
  • Determine up front the goal of EACH interview.
  • If possible, determine the questions (and the specific wording of them) you will ask in each stage.

Write these decisions down. Develop a script. Train your team with this script. Each time you choose to pass on a candidate, review the process in light of the decision and see if you could have identified the problem earlier in the process. Adjust as necessary, but try to change only one variable at a time.

In other words, treat hiring with the same rigor and focus on reproducibility as with developing software. Be methodical. The truth is that the people you choose to build software matter more than the development process you use. Good process amplifies people, but no amount of software process can fix a bad hire.