Personally I find the a technical assignment really necessary as part of an recruitment process to really get down to the candidate's "coding personality". Weakness, strengths, interesting, motivation, etc. When doing recruiting I've found that more "open answered" technical assignment are better than "solve this very specific problem".
A solution that could be discussed and put in different perspectives ("what would be the first thing you do if traffic suddenly jumped by a factor 1000", "...if the amount of data was much larger", "...if you had to support feature x...") generally reveal more skills than something more focused on specific algorithms or even syntax.