Wednesday, March 26, 2008

How do you test a potato...

This is one of the questions I ask when I interview anyone/everyone. Seriously. Project managers, managers, senior developers, testers, co-ops... everyone.

I know its a total rip off of from the book from Microsoft on How do you move Mount Fuji which is filled with riddles that anyone interviewing for a technical job should study just for the sake of people like me.

I don't use this book as an interview guide though; don't fool yourself either. Its not a good guide, its just a fun read that contains a few lessons. To that, I have a real reason why I ask it. My interview tends to be very technical with the subjects ranging along the software engineering continuum and are not just about testing. When I ask this question, I'm forcing someone to look beyond an answer and to talk to me as a person. This question requires you to have a discussion on a topic that is totally out-to-lunch. Well, a lot of the subject matter made by software companies are totally out to lunch... how do you test an enterprise level web application that requires 100,000 hits per minute to be sustained? If you can answer me that question, give me a call. :)

This question requires someone to step out of the interview and evaluate the question for its merits and ask the right questions. Its not about how you answer, but how you question the question. This creates a fun little discussion that gets you talking to me.
If anyone is looking for the areas I usually interview, here's a general list of the things I cover:
  • People
  • Tools and Techniques
  • Estimation
  • Reuse
  • Requirements
  • Design
  • Coding
  • Error removal
  • Testing
  • Reviews and Inspections
  • Maintenance
  • Quality
  • Reliability
  • Efficiency
  • Research

I also make it a standard part of the interview to solve simple math problems or have people code something for me (e.g.:how do you multiply two numbers together without using the multiply operator).

Anyway, the point here is that everyone should strive hire the best people around the world and don't settle. If you're not evaluating people against a similar set of criteria around the world, we get an organization that is disjointed from many angles or you get people who slipped through the cracks. I look to the engineering community to help drive this effort along.