Imagine going on a first date, and immediately proposing. That's hiring in a nutshell. Companies have to make long-term and far reaching decisions about candidates based on very little data and time. Of course, the same is true in the opposite direction too.
At most companies I've witnessed, it's clear to say the whole hiring process could vastly improve. I see candidates who I know are amazing programmers being failed at the phone interview, and often less able engineers cruising through with flying colors.
For example, here's a conversation I had the other day:
Bert - "That last candidate didn't do very well, he flunked my Poisoned Chalice question."
Me - "Your what?"
Bert - "Yeah, the Poisoned Chalice question. He totally chose the wrong cup."
Me - "Oh dear"
Are we the only industry that asks entirely irrelevant questions during interviews? I mean, if the guy is interviewing for a front-end programming job, is it such a stretch to ask him about programming? And frankly, when has anybody ever programmed on a whiteboard?
Perhaps the whole process is fundamentally flawed though. I've certainly made my share of mistakes, and it's incredibly hard to evaluate someone in such a short period.
The fact is, we don't have to model the way we structure our interviews on other professions. We don't have to make arbitrary judgements based on half an hour out of a busy day. Often, we can ascertain a programmer's ability through their portfolio of open source work. Alternatively, we can set simple and practical coding challenges.
This approach gives you so much more information on which to base a judgement on. You can see if the code is well written, correctly structured and properly tested. Then, your interview becomes much simpler. All you have to do is make sure the candidate actually wrote the code, and check for a cultural fit.
There's another alternative too. Companies like Automattic (WordPress) require a one month no-obligation trial before any new employee is officially hired. This works for them, but can have its downsides too. The lack of commitment on the company's behalf may deter potential candidates. This is clearly a cost Automattic is willing to take though, as making the right hiring decisions is so important.
So the jury is still out on how to improve the hiring process. What I do know though, is that the conventional system is broken, and is well due an overhaul.