Last week at the Agile conference, a participant in my “Hiring for an Agile Team” session asked how to know if the people she was interviewing–who had no experience as part of an agile team–might actually work in the team. As she said, “I can't wait for the perfect person. I can train, but I need people who are capable of doing the work even if they haven't done it before.”
Drum roll, please. This is exactly why auditions are a necessary part of your interviewing toolbox. I suggested that she first define the behaviors she needed to see. In this case, it's the ability to do test-driven development. I suggested she explain test-driven development. I also suggested that during the phone screen or emails setting up the interview that she point candidates to articles she particularly likes about test-driven development. (I suggested she consider testdriven.com or Keith Ray's blog.) Now the candidate knows to expect an audition, even if it's something the candidate hasn't done before.
During the interview, ask the candidate to design something–something similar to your product is best, but you can use an open source product, or even something like a factorial function. The key is to explain that you'll check in every five minutes to see how the candidate is doing. When you check in, ask to see the tests and the code. Say, “Thank you, I'll check back later” and walk away. As you check in, you can see if the just the code is growing, or if the tests and the code are growing together.
Not everyone can teach him or herself test-driven development. The key with this audition is to look for forward progress, not perfection. In my opinion, this audition is better than a hypothetical question.And, in case you're wondering, no, I suggested a whole bunch of questions she could ask too, about ability to learn skills and adaptability. But I suspect that starting with this kind of an audition will help clarify whether the candidate could do the work at all. Always a useful thing to know.