It's very common for developer's to want people to write code in an interview. I'd say it's up to you. I personally prefer intelligent discourse. I can learn a lot more about a person through normal conversation than I can by giving him a test. A lot of programming tests for an interview tend to be one of the following:
- Too simple - don't demonstrate any real knowledge
- Too complex - easy to make a mistake on, especially given the stress of the interview
- Irrelevant to their duties
- Implement some arbitrary algorithm from Sophomore CS
- Only pen and paper
The important thing is that the interviewee has domain knowledge and can answer questions intelligently.
I would hire a person who failed a programming test yet demonstrated intelligence, creativity, and the desire and ability to learn over someone who passed with flying colors yet had demonstrated many of the personality traits (flaws) common among developers.
Cheaters Prosper
Another thing I'd like to add. If I gave written tests, I would be much more impressed by the person who "cheats" (google, stackoverflow, IRC, manuals, asking a buddy) to get the answer over the person who knew it already. The ability to be resourceful is a wonderful trait.
Hall of Shame
If you do decide to have your interviewees write code. You MUST share the code of any failed ones with the rest of the team. Hell, make a wall of shame. It'll make for good laughs, we love to make fun of other developers :) (Please preserve the anonymity of the poor soul though)
Attack of the Clones
Another issue that occurs is that the test is often written by the management (if technical) or one or more of the current development team. They will obviously write questions that they know the answers to, and consider challenging. This will lead you to have a team full of developers who can implement a quicksort algorithm in 15 lines of C yet not a one who can write a unit test or profile properly.