The process I've seen working best to this day was at Pivotal Labs: pair for a half hour to one hour with 3 different people in the team you're being hired for. You get to measure everything, from communication skills to cultural fit. Perhaps pair on an internal tool, or even better, an open source project (in which case the candidate gets an extra incentive for not wasting their time).
If you're dealing with too many candidates, issuing a simple 1-hour coding challenge will weed out the uninterested (and won't favor people that have 4-8 hours to devote to a huge coding challenge).
I've interviewed there. Only two people I've paired with, one in the morning and other on after lunch. I had two problems:
* The 2nd guy I've interviewed with was completely non interested on doing it. He was checking the phone all the time and getting off and on. I felt so awkward because of his lack of interest.
* I didn't get _ANY_ feedback at all, just got refused. After 6hours in their office...
If you're dealing with too many candidates, issuing a simple 1-hour coding challenge will weed out the uninterested (and won't favor people that have 4-8 hours to devote to a huge coding challenge).