How to Interview a Software Developer in 30 Seconds
When reviewing somebody else's code, what is it that you usually find most disturbing?
It is one of my favorite questions, and I have been using it for over a year. (Together with some questions like "How would you store a color in a database field?", "Why use a Singleton pattern when a static class does the same job?", and "Can you get me a new cup of coffee?".) But it was only yesterday that I noticed the high correlation between the type of answer given by the candidate on the question above and whether or not my interview resulted in a job offer.
All answers given by candidates come in only two forms:
The Syntax & Conventions answers
When being asked to be critical about other people's code, three out of four candidates start blabbering about coding conventions. The candidates drone on about the naming of variables, how class names should be descriptive, and about some arbitrary optimum value for the number of comments throughout the code. Unfortunately, this is not what I hope to hear!
The Design & Architecture answers
Only one out of four candidates answers this question by telling me how he dislikes slow-performing algorithms or insecure code. These people refer to the KISS-principle, coupling vs. cohesion, and how some designs should have been reworked into common design patterns. Those are the people I want!
If I ask a real estate broker about a house, his first reaction should not be his opinion on the quality of the paint, because that is not going to help me as a prospective buyer.
I can easily repaint my house I can easily have someone else repaint my house, but I cannot easily change its foundation. Similarly, I don't care about my candidates' opinion on coding conventions. (And before I'm being flamed to cinders… Sure, coding conventions are useful and important! But since the formatting of code is so easy to change, it should not be first on anyone's list of concerns.)
When I realized this yesterday, I started tallying the results of my interviews. So far I have measured a staggering 100% correlation! OK, I admit I had only two job interviews yesterday. But they were a good sample nevertheless. The first candidate mumbled something about the level of indenting he was very concerned about. I'm afraid I don't remember anything else about this person, because my mind slept through the rest of the interview. The second candidate told me how he didn't like inconsistencies in class designs and interfaces. I had to refrain myself from hugging him. So instead, I offered him a job.
I'm going to do some additional testing of my hypothesis, just to be sure. But it looks certain that The Perfect Job Interview Question is going to be major time-saver for me. In fact, the question is so simple I might even let my COO do these interviews in the future.