When looking for a new developer job, a fair amount of positions require some kind of assessment by the company in order that developers can justify their claimed skills.
In my opinion, these assessments reflect on the company too. As a developer, this is an early chance to see what a company values in their developers. Having been invited to complete a number of these tests, I've seen both ends of the spectrum which adjusted my views on the company I was applying to.
These assessments can be time consuming and both sides (applicant and company) should value the time put in. The applicant should be able to get a feel for the company in what they're being asked to do. It should also be challenging so that the applicant can feel some reward in completing the assessment.
Very recently, I was asked to complete a 50 minute multiple choice test. Questions were generally around syntax of code printed in a non-monospaced font without syntax highlighting. I lasted about five minutes and even less questions before I sent an email back to the company explaining that their job spec highlighted the need for imaginative and versatile developers but their test promoted some kind of robot-like code monkey and that I wanted to withdraw my application. This response may have appeared arrogant to the company in question however if taken in the spirit it was intended, may highlight the need for a review in their hiring process.
I believe that in attempting to assess the ability of an applicant, a company can and should also impress the "spirit" of the job in that process.
My preferred method is for a project kind of problem which allows the applicant to be imaginative and to show why they should be top candidate for a role. It also allows for discussion in any further interviews around thought processes and techniques. These can often be lengthy (3 or 4 hours) but a quality application can almost secure a the role even before further interviewing.
What do you think is the ideal way for a company to assess the standard of an applicant while promoting the position and the company?