A lot has been written and said how to pass an interview. In turn, I would like to share my thoughts about the other side of the process - how to interview smart. I have been looking for a job a few times in my life so I know how it feels but I asked questions to candidates also. I played an interviewer role almost 100 times and this experience pushed me to write this post. I identified five common mistakes made by IT interviewers.
Asking closed questions
Closed questions are fine for a test on paper. If you bother to talk to a candidate, let him/her elaborate. Listen how the person thinks, assumes, concludes. If you talk on an interview more than the candidate, it means that your questions are bad or the candidate. Eliminate the first possibility by asking open questions. Instead of "Does Spring Security support Kerberos?", use "How can I integrate a web application with Kerberos?". A simple change but allows you to get more about the person's knowledge but also the problem solving process.
Downvoting because of clothes
Yes, I know. You cannot work with a person that smells bad but disqualifying someone because of coming in a T-shirt to an interview? That is unreasonable. Is chewing a gum rude? Yes. Disqualifying as a software developer? In my opinion, it is not unless it comes with a rude personality. I would not risk writing off a good specialist just because of him/her carrying about his/her fresh breath.
Once, one of my colleague admitted she did not think good about IT employees using backpacks. "They are for students, professionals carry suitcases" she reasoned. I like my backpack because it saves my backbone. Am I a bad programmer?
Skills useless at work
It is funny when an interviewer asks .NET questions to a candidate for a Java developer. Even if the second one has a lot of experience in C#, it is simply wasting time. No matter how good he/she is in .NET, you are looking for a Java expert so ask Java questions.
Subjects that you know little about
Long time ago I participated in an interview for a database administrator. The second interviewer was a Java expert from the potential team and he asked a question like this - "Oracle RAC does not always work well. What are issues with RAC?". The candidate took time and replied that RAC is a good technology and it generally works well. At the end, the candidate kindly requested more information about those issues. The Java expert said that he did not know details but their cluster had stopped working a few times and he had been told by the database team that it is not a perfect system and it happens to RAC. Believe me, the candidate's face looked strange. I understand that some interviewers are just members of the potential team not the technology experts but let's leave asking such questions to people that know what they are talking about. A role of such team member interviewer is to decide on the cooperative skills. It is fine to say "I am a Java developer. Explain me how RAC works and what should I change in my application to support it.". Then, it can be checked how the person talks to a non-expert and how clearly he/she explains the subject. And it does not look stupid.
Hiring with doubts
Never hire if you have any doubts regarding the candidate. Employing a wrong person negatively affects both sides. The manager will have to dismiss him/her which is not easy because of corporate rules/politics, the law and empathy. The candidate will suffer too from obvious reasons. Additionally, a bad employee is worse than no employee. The "no employee" does not waste your time on training.
Do not hesitate disqualifying a candidate based on your doubts. If you are wrong and he/she is a valuable employee, someone else will hire him/her anyway. There will be no major harm to the person. It is only you who will have to look for an employee a little longer.
I decided to write my thoughts down because I noticed that those mistakes are very common. I hope they will help you in the process of looking for a qualified and dedicated employee. Good luck!