Tuesday, November 2, 2010

TDD Katas in Interviews

I've been doing a lot of interviewing in the last year, which means I have to perform the impossible task of evaluating another developers skill set. Two big questions I keep in mind when doing the technical part of the evaluation are

  • What will it be like to work with this person?
  • Where does theory meet practice?

I'm very big on concrete results so I do as much hands on interviewing as I can fit in. One tool I've started using to help answer these question is pairing on a TDD kata. Especially when someone puts TDD on their resume. Now none of the candidates I've interviewed have heard of katas, which makes it fun for me because they learn something new, which I always hope to offer someone.

Typically I structure the pairing using PPP, which works like this
  1. Developer A writes a failing test.
  2. Developer B makes the test pass.
  3. Developer A & B collaborate of refactoring
  4. Developer B writes a failing test.
  5. Developer A makes the test pass.
  6. Developer A & B collaborate of refactoring
Some of my takeaways are
  • You get a real sense of what it'll be like to work them.
  • Do they have real world experience?
  • How are they evaluating themselves?
  • It brings out a lot of proclivities
  • Does the person understand red-green-refactor?
  • Can they put on a customer hat on? Do they focus on important functionality? Or do they overly focus on edge cases?
  • How fluent are they with Resharper or DevExpress (refactoring)?
Some things I've learned for getting the most out of it are
  • Allow 2.5 - 3 hours.
  • Offer the person the option to bring their own laptop
  • Mac laptop keyboards can be really awkward if a person isn't used them (I own a mac)
  • Keep in mind you're interviewing. Don't get so engrossed that you end up doing important things for them.
  • Don't use contrived katas

No comments: