However, with the rise of the code puzzle/challenge test/work sample, I wonder if it might be time to forge a new professional ethic where it's understood that it is an important courtesy to give an applicant's work attention and useful feedback in return for investing time in completing a challenge.
With that in mind, lately I've been thinking it's important to set expectations (and figure out if you're likely to end up wasting your time) by asking at least two questions before agreeing to submit work on sample problems:
* if they have reference solutions or other rubrics that someone in-house has recently completed, and if they'll be willing to share those with candidates who submit work
* what kind of time they're planning to devote to giving attention and feedback to candidates who submit work
If they have a reference solution, that's a good sign that they have clear ideas about what their standards for success are and a good baseline of the likely time involved in completion.
And if they're willing to at least say that they'll spend real time on studying solutions and giving feedback (ideally something within an order of magnitude of the time they ask candidates to invest) -- or at least show you the rubric -- that's probably an indicator that you're not going to waste your time.
If they don't give an indication that they can do either, it may be a better use of time to move on. And if enough developers use that as a standard, I think it'll be less common to submit work with no response.
(This isn't, by the way, meant to be anti-challenge. The merits seem pretty clear to me, and I've gotten offers including my current job from submitting responses to tests. I've also, however, spent hours or even days* doing free work with nothing useful in return.)
(* One more useful question: does the sample involve working with the Facebook API? Just say no.)