We (Sauce Labs, Mobile Team) are experimenting with take-home tests as a first-contact screen. I'm familiar with the take home exam that takes a week to solve, so we went in a different direction.
We schedule time with candidates, send it to them at the right moment, and expect them to send in a solution two hours later.
Before we tried it on candidates, we all did our own test, and we confirmed it could be done in less than two hours. (Granted, we are very familiar with the problems we care about, but we usually get complete solutions from candidates.)
So far the results have been fascinating. The test is conceptually super easy, deliberately so, but with a very wide set of possible implementations. It is more about tying together moving parts in the right design. The goal was to do the opposite of the algorithmic brainteasers you normally get in interviews -- it's a miniaturized version of the problems we actually solve all day. Hopefully, it's a good test of what kind of coder the candidate is.
Putting any time constraints on a dev test is a bad idea in my opinion. It's not that I can't finish the test in the allotted time, but knowing that I am being timed will make my brain race and do stupid things. Personally, I don't mind take home tests that take more than 2 hours, as long as they reflect the actual work I would be doing in that position.
We schedule time with candidates, send it to them at the right moment, and expect them to send in a solution two hours later.
Before we tried it on candidates, we all did our own test, and we confirmed it could be done in less than two hours. (Granted, we are very familiar with the problems we care about, but we usually get complete solutions from candidates.)
So far the results have been fascinating. The test is conceptually super easy, deliberately so, but with a very wide set of possible implementations. It is more about tying together moving parts in the right design. The goal was to do the opposite of the algorithmic brainteasers you normally get in interviews -- it's a miniaturized version of the problems we actually solve all day. Hopefully, it's a good test of what kind of coder the candidate is.
But we're still working on it and refining it.