Have you ever considered trying to find out and confirm what the candidate has done in the past, instead of the almost impossible task of finding out what they "can do" in a few short hours? Barring some major new life issue, a developer's past performance is highly predictive of their future performance.
Edit: Removed longish rant.
If you are interviewing, please by all means bring samples of your work and be ready to discuss them, if you possibly can. But some people come from places where they can't talk about what they did (like, literally, Federal law in some cases), or for some other good reason can't really substantiate what they did.
You also have to account for the fact that a lot of the ways of finding out what they did in the past are somewhat unreliable. Many past employers have their own reasons for not being forthcoming or entirely truthful. The interviewee is incentivized to exaggerate their claims. In this context it's hard to get very much solid information of the type you're asking for.
My preference is to see past accomplishments, then use the interview to substantiate that they are indeed your accomplishments and you were not just generally in the area of accomplishments that happened to be occurring. But alas, that's not always an option.
Interviews for electronic engineers consist mostly of talking about projects the candidate has worked on (for young people these might be college and hobby projects). The interviewer's questions are things like "what did you consider the most difficult part of that project?" or "What tools did you use for that?" or "why did you do it that way and not this other way?" No one has ever asked me to design something on a whiteboard, nor would they dream of asking me to rattle off the pinout of some random microprocessor.
The software company interviews I hear about sound more like someone being tested to prove they aren't lying about their qualifications than like adults discussing a business deal.
http://www.joelonsoftware.com/articles/FindingGreatDeveloper...
I'm just suggesting that when an applicant like this exists before you, it makes more sense (assuming you're happy with their accomplishments) to confirm that these are indeed their accomplishments than to try to cram in some ad hoc heuristic for determining their range of skills in an hour or two.
And if my peers are any indication, the reason it's become so hard to hire senior devs is that no one wants to go through the headache of the interview process anymore once you've reached a moderately satisfactory job situation.
And you can't figure those things out just by looking at a resume or by quizzing them for hours until they break. You have to actually talk with them. Engage them in conversation. Learn who they are and how they fit into this field. Learn about their past experiences and their future goals. Then the question as to whether or not to hire them is easy.
Resumes are a starting point. Previous knowledge is a time-saver. Problem-solving and motivation is where its at.
*As a side note, most of my interviews were 30 minutes or less. I only regretted one hire, and I got rid of him pretty quickly.
That means, no onsite interview processes that require taking vacation days to complete mostly. Or off hours interview processes.
I'd have to agree. The interview process is irreducibly stressful, but that doesn't mean we have to go out of our way to make it worse. It isn't even good for hiring most men either, after all! It's just a bad idea.
I've personally had fairly good success hiring people who happen to be women, and I suspect a good part of that is that my interview attitude is that I'm there to find out what you can do, not to find out what you can't, which seems to be the unexamined default of a lot of interviewers. You don't start at "perfect" and get marks off for failure... you start at essentially zero and work your way up. "Starting at zero" may sound superficially harsh when I put it into English, but in practice this produces a much friendlier interview environment, I think, because we're discovering positive aspects instead of negative ones.
(Another reason to prefer this is that in practice this also helps avoid the problem of the senior candidate being thrown softballs, or the junior candidate being asked to design a cloud infrastructure. It really doesn't take that long for me to key in on where your most likely "knowledge frontier" is and probe for details there. As opposed to just going through a rote set of questions looking for demerits. It is a harder style of interviewing, though, precisely because you can't just go through a rote set of questions... even the standard question set I use has a lot of ways of approaching them and several "levels of detail" I can get into depending on experience and skill level.)
The end result is still, frankly, stressful. It's a big deal, and the interviewee would have to be outright irrational to forget that. But it helps if you as an interviewer remember that, too, and have some compassion.