Nowadays almost all the companies use standard methods for interviewing candidates. They still use some common techniques like tiers of technical tests to find the perfect person… who can have an incredible CV and outstanding skills. But later he could be a complete fool, or he doesn’t fit in the company atmosphere. During my University days I saw people getting better results (than me) in the “Nets” subject, without really knowing what is an IP address! And while working in different places, I’ve seen the same: people without really good tech skills being really good coworkers (trying to learn every single day, trying to create a nice office mood…), and people with impressive knowledge avoiding to share it, or being incredibly selfish. What I’m trying to say is that maybe it’s good to do some filtering regarding technical skills, but later you must focus on testing the person, and not in testing the professional.
Example 1: Last.fm could be a dream place for working. Specially if you love music, web and charts. Yesterday I was looking at their job offers and it was nice to find as a requirement: “with something that passes for music taste 😉“. Brilliant!!
Example 2: Some weeks ago my manager was interviewing some candidates for an “HTML layout specialist” position. I suggested him to ask them “are you lazy?”, and they should answer “yes” because “the lazy programmers get the things done quickly, and try to do the things in a neat way, to finish quickly”. Of course it was somewhat of a joke. But he got the hidden idea. And finally we hired a chemist, with some experience in HTML Strict mode and mad as a hatter, instead of a telecommunications guy with an overfull CV (mostly filled with glossy titles) and having bad manners during the interview. Eventually, he fits perfectly in our department, so it was a good decision.