I want to start a meme.
I mentioned in one of my earlier posts, "In summary, CodeMash 2009, the Hands of Fate", that I attended a session called "Turning the Ship", hosted by Dave Donaldson. Recently Dave posted about the Art of Interviewing, and that post had a follow up post by Michael C. Neel. As Michael mentions in the first line of his article, I am also guessing that interviewing may be wandering around in your mind somewhere, so I think this is pertinent.
I once had an interviewer ask me to "Define a class". This was directly after I had explained how I used some design patterns to elegantly solve various problems in real world situations. I was actually stunned, and ever since then, I have always wondered what that interviewer was looking for in an answer. Was the book answer of "its a code representation of an object that encapsulates certain behavior, oh and it's stored on the heap...yada yada yada", enough? Do you want your doctor to be able to define the medical technology he will be using in your operation? or tell you about his experience with it, and why it works so well?
In the "Turning the Ship" session Dave had us play a little game. He divided us into groups and had us come up with 2 interview questions that related to "agile". I want to broaden that case a little bit but remain in the technical realm and ask you, "What is your favorite technical interview question?", and more importantly, "What are you looking for in an answer to that question?".
Dave and Michael agree (as do I) that the best interview questions are conversations. So, how do you start that conversation? How do you steer that conversation into getting/hearing what you are looking for? This could be a technical question or a non technical question. I am just curious of what you are looking for and how you try to find it.
If you are not in the position of interviewing candidates, then tell me about a question that someone asked you as an interviewee that you found interesting.
I will start:
"What blogs do you read?"
I know it is simple, but that is my favorite technical interview question, and it sounds kinda corny, but you can gather a lot of information from it. I consider it the new age version of "tell me that last book you read". Quite frankly, I am looking for the candidate to tell me some name of blogs that I read as well. If you are reading Martin Fowler, Hanselman, Ford, McConnell, Atwood, etc, then we can probably move the conversation to patterns, or embracing new ideas, writing elegant code, stepping out of your comfort zone and learning something new, but most importantly, we have something in common that relates to the position.
The other great thing about this question is that there is no wrong answer, so its a good first question to pose. Even if the candidate says that have never read a blog, I can suggest some to them and see how they react. Are they quickly grabbing their pen? Are they looking at me with a blank stare? Do they have a passion for the craft? Then I can ask myself, "based on that answer, where do I go from here?". It's like the Choose Your Own Adventure book of interviewing :)
Michael's post states you need to ignore personality. I think that can not be farther from the truth. I think that you have to find a sense that you can work with the person, no matter how high their technical skill may be. One way to find that out may be to break you down (read Find the Breaking Point in Dave's post), and see how you react to the pressure. What good is having a member of your team who happens to be an absolute expert if no one wants to talk to him because he is an asshole??? What good is a member of your team that is going to flip his lid when he is asked too many questions that he can't answer? I am much more interested in smart people that can learn well together, find answers together, and get along. That makes a fountain for new ideas and encourages collaboration when everyone is comfortable conversing with eachother. I am not saying that you need to be asking them about their family and their interests outside of work, but you do need to find out if you are capable of having a common respect for one another.
So, that is it, I am going to tag Andy Craze with these questions. I respect his opinions and to be honest, me being new to this blog thing, he is the only one I feel comfortable "tagging". But please, feel free to pass this along, or answer it yourself, I'd love to know your thoughts.
P.S. - I know what Dave's answer to this question is, however I wont say it in case he wants to keep it up his sleeve, but it's good. Quite frankly, if an employer didn't ask me this question, I would sure ask them, it works both ways, hopefully Dave will leave a comment :)