I have probably interviewed about 200 people alone in the past year for positions.
Since I usually join a company at a technical manager/team lead level, and hence, I am in a position to hire people for various positions within my teams, here are my thoughts about how I envision the ideal interviewing process:
1) Make sure that candidates are adequately screened. I spent the other day interviewing a candidate who could not write an event handler for me. Candidates should be given a test before speaking to a technical resource within my company.
a) Regarding tests: Multiple-choice questions that deal with nuances of syntax are usually a poor indicator of a candidate's analytical and interpersonal skills. That being said, it takes time to grade each test. A multiple choice test is easy for our recruiters to grade, whereas giving a test with more subjective questions can consume time for our technical resources to grade.
We can certainly use a combination of the two.
Each of the senior .NET resources in a company should decide on the 10 questions that we would most like to see a candidate answer. Every candidate knows how to write a singleton by now. We need to test their experience with real-world coding situations.
2) Once a person has performed adequately on the test, he should be given a going-over by the HR staff for interpersonal skills. If I have a person on my team, I want that person to be articulate in a meeting... if a person cannot be understood easily, then he will be tuned out by other people in the meeting. I don't want any shrinking violets on my team. I want someone who can defend his ideas in front of a committee. I would like a person who will tell me to bugger off if I am completely wrong in my architecture. I would also like to be able to take a person out for a martini after work to unwind!
3) After passing through this step, then they should be passed on to a junior .NET technical resource for a perfunctory interview. This would be a test of the candidate's knowledge of .NET and C# syntax and concepts. I want all questions to reflect real-world experience.
4) After passing through the junior resource, the candidate should then be given to the senior .NET resource who is likely to manage the candidate on his first project. When I was hiring .NET resources in my previous job, I mandated that the candidate should be checked out by two .NET resources before getting to me.
5) The candidate should then be given to one of the senior business managers for a final fitness check.
We are all exhausted after a day of work, and none of us are in the mood to interview. We get easily irritated when we interview candidates who have no business being there. We get easily irritated if we have to work hard to understand what the candidate is saying.
What I want to ensure is that any company that I work for has the highest caliber to people in its employ.
©2005 Marc Adler - All Rights Reserved