Good for initial screening, but should not take more than 30 minutes. Else IMHO laziness or incompetence asking a programmer to do an assignment. Any good manager/developer/interviewer can sit with a candidate for 1-4 hours and determine if his skill level and personality match the job requirements.