My experience so far
The last 5-6 years I have done about 6 interviews for a job as a web developer and I have heard about 20 more stories from friends. What I observed during this time, is the way different companies are handling the hiring process. I prefer to work for startups, so most of my personal experience is around them, even though I had some interviews with big companies and I have heard stories of more enterprise companies from friends.
Startups vs enterprise hiring process
What I thought was that the big, enterprise companies have more strict and slow process for getting there. I was imagining the interview process as an unpersonalised test which would took too many hours etc. That wasn't the case at all with the enterprise companies I dealt with (I won't name them because I don't want to expose any specific event, but they are companies everyone knows). What I saw, was that after I sent an email, they came back to me pretty fast (after 3-4 days) with a friendly and personalised email, with the details for the interview and we arranged it pretty smoothly. They were also flexible on the time and the conditions. Then the interview took place and after that I've been announced (if I am suitable, the money they offer etc.) in less than 2 weeks.On the other hand, many of the startups I had experience with, I think they failed miserably to do the right thing in the whole process. Of course it wasn't the same with all the startups, but many of them were pretty bad on this.
My conclusion is that either most enterprise companies have a very good and well-trained HR (even though most of the startups I talked about, where well-funded and they had someone to do it as a job), or the companies who are doers and have achieved some success, know how to handle a process of finding a new talent.
Some basic mistakes I saw
They aren't flexible at all
One of the enterprise companies I was contacted was in Australia (about 9 hours difference from Greece) but we found a time that would be ok for both of us with just one email exchange. In a startup company here in Greece, I had to talk on the phone three times trying to convince them (and they were trying to convince me) to find an hour which would be applicable for both of us. We finally did it but it wasn't a good time at all (it was late on the afternoon, they wanted to leave the office, I was very tired working all day so the interview was a bit of a disaster).HR should communicate with the programmers (or a programmer should be responsible for hiring)
One other funny thing was that in some of them, I talked to more than one person and they told me different things. They gave me a very bad and unorganized impression. Remember, I may give the interview, but you should also give me a good impression and motivation so that I want to work for your company.Do not create a process which will take many phases and more than a month to complete
Ok I understand that you want a long-term employee who can handle every situation and you want to be sure that you will get the best of the best out there. Well, the bad thing is that you will never know how good someone is or if he matches with your existing team, if you don't try him first. So the best interview for me, is to hire someone for a very limited time just to see how well you can cope with. Don't waste time on pointless interviews with too many technical and tricky questions (which most of the time could be also unrelated). The worst interviews are the ones that let you write code without internet or pc, just pen and paper.Some related personal story: One interview I had, it was to write code questions, copy/paste from the book "Metaprogramming ruby" (btw it is awesome book and it deserves to read it). When I got the test I immediately understood that the interviewer didn't want to search further or hasn't the knowledge to ask me something more important. Don't get me wrong, the book worth it's weight in gold, I've read it 3 times (I had it before the interview) and I am discovering something new each time I read it. But I find it too technical and difficult that they asked to reproduce some code parts from the book, especially without internet, just pen and paper.
It reminds me of a multiple question test that a company had in their booth on Euruko and asked from Matz to take it. Even Matz made some mistakes! One reason I believe a company is putting super difficult interview questions is for having the lead in the negotiation after that. It's something like "you aren't good enough, you can't have this salary". Of course, many times it isn't on purpose, it is just simply because the interviewers can't understand the difficulty of a test.
You are seeking for unique talent, treat your candidates like they are something special
You are in a seek for exceptional talent, you find someone and you contact him. Try as soon as possible to see if he is suitable. Don't just send him an email, then search / post everywhere about this job position and after a month send him again and contact him asking for an interview. This one happened to a friend, but after a month it was too late, he had already found another job and has lost his interest and excitement during this time. You are a startup, you must be a doer and flexible... It reminds me the first company I worked for, I gave the interview and they told me they would check the answers and they would come back to me. After 10 minutes they called me and they asked me to go tomorrow and start working. Even though this company has done many mistakes (in my opinion), they are definitely doers, they are a pretty big company now and if it is one thing they know well, it is how to do business.Some funny (but not so related) personal story: Abou a year ago I had found an interesting job position, the startup had created a complete solution for putting your interest to their site. I found it a bit unnecessary, I usually prefer to send a simple email. They had a specialized form with questions etc. I was impressed when I saw it the first time. I send and... nothing. They haven't contact me and after a month I saw they haven't found any rails developer, instead they have hired some php developers. I met the founder at a conference and spoke to him, he told me by himself without asking him how difficult it is to find a rails dev and he was a little desperate. I told him I had sent him an email some months ago. He was surprised and he told me that he hadn't received it. I think the fancy super form of their site didn't work after all.