Like many of the hangovers that haunt modern software engineering, this is ultimately mostly Microsoft’s fault.2 Back when they were the evil empire where everyone secretly wanted to work, they were famous for their “brain-teaser” interview questions – Why are manhole covers round? – and, of course, they asked new university graduates about computer science theory; “Write me a binary search."
I remember reading a similar comment/article on theDailyWTF (here).
Although I personally don't like to give these kinds of questions in interviews, I personally do not think the brain-teaser questions are as bad as most people think they are. What they are is bad if executed improperly. I think most interviewers, at Microsoft or otherwise, do not know how to execute the question, the interview and judge the answers from candidates. Some examples:
A) Many interviewers want the right answer from the candidate, and will reject a candidate if they can't solve it. This is the wrong attitude. The question is trying to judge how a candidate thinks through a problem to solve it. Even arriving at the wrong answer is acceptable if the plan of attack was acceptable.
B) The question is also meant to judge your communication ability. Can you talk about how you model the problem, or want to plan to attack the problem, etc. Compared to normal programming questions, you have to speak out of your element.
C) The question also judges your ability to work under pressure and/or show your willingness to not give up. Some candidates may (do?) break down in interviews. Is this the type of employee that will break down in front of a client, partner, or co-workers if presented something difficult or stressful?
D) The brain-teaser/puzzle questions should be given along with other normal technical questions and behavioral questions. It's shouldn't only be brain-teaser/puzzle questions. I interviewed with a company straight out of college that gave me around 10 C programming "puzzle" questions. I probably got 6-7 right, which was enough for them to understand that I really knew C well and got to the next round of interviews. I've known of other people that have been given ONE C puzzle question, and that one question determined if they knew C well enough or not for the job. It's a good example of how not to balance the interview.
One additional thought. There are also good puzzle/brain-teaser questions and bad ones. Some, such as "Why is a manhole cover round?", are terrible questions. There is little ability to get the candidate to think through the problem and reason it out. A question such as, "How many golfballs can you fit inside a school bus?" isn't that bad.