This week I came across an interesting blog post titled ‘The Most Revealing Job Interview Question‘. I’m always interested in the types of questions being asked in developer interviews and this one was no exception. Here is the question:
I want you to explain something to me. Pick any topic you want: a hobby you have, a book you’ve read, a project you worked on–anything. You’ll have just 5 minutes to explain it. At the beginning of the 5 minutes you shouldn’t assume anything about what I know, and at the end I should understand whatever is most important this topic. During the 5 minutes, I might ask you some questions, and you can ask me questions. Take as much time as you want to think it through, and let me know when you want to start.
I read through the whole article and thought that it’s a pretty interesting question, but something about it was bugging me. It does seem important that developers are able to explain concepts – surely this is something that you do several times a day! You even get the advantage of picking the topic – pick something you’re really interested in and you’re good to go!
The author seems to have gotten really positive results as well – star candidates tend to use analogies and use your existing knowledge to get their point across. Poor candidates will usually not premeditate before diving in, which usually correlates closely with disorganized and non-directed work practices.
It does definitely sounds like a worthy question, except… This is your most important job interview question for developers?!
I realized what was bugging me about this question – if you’re really good at explaining stuff, maybe that is proof that you’re good at… explaining stuff. If you want to see if someone is any good at writing code, maybe you should get them to write code. I think my main problem with questions like these is that interviewers tend to attach too much value to them: everything else in the interview becomes positive reinforcement.
I’m not saying that you should only evaluate developers on their coding abilities. At ThoughtWorks we do various interviews that involve absolutely no coding – phone screens, technical interviews, values interviews, etc. But we also require you to do a coding question as well as come in and pair with us – because the best way to evaluate someone’s development ability is to get them to write code.
Instead of asking a developer to showcase their teaching abilities, rather get them to write code. Pairing and coding questions are much better indicators of someone’s ability to write code.
You wouldn’t employ a potential chef without getting them to cook something, would you? Happy coding.