I agree completely. It really pisses me off when you complete the take home test and then get called in for another 8 hours of whiteboard technical interviews.
WTF is the point of giving these work sample tests if they're not sufficient proof that you can do the work? And how can anyone think actually programming things into a computer is superseded by asinine whiteboard sessions that have less in common with the day-to-day of programming?
IMO, after the take home test, the in-person should be a couple hours or half day for personality fit and maybe some loose questions to determine if you actually did the test yourself. Mainly, the in-person interview should determine if you can tolerate sitting next to each other all day.
So I've started giving negative Glassdoor reviews to companies that abuse these tests, either by handing out broken or excessive ones or by wasting a full day of my time with algorithm questions AFTER accepting the test. I suggest everyone do the same.
I think it can work both ways. Tasks like that can be time-consuming, but would you rather take a day off for an on-site interview, or spend ~1h doing it at home? There's some line that shouldn't be crossed of course - I think companies shouldn't give the test to everyone - just those who are actually considered after some screening. But I've been on both sides: taking and preparing the test, and I think it's a good idea as a 2nd stage filter.
My test was completely open-ended. Trivial task (script to copy data from .csv to a sqlite, optionally notify on the queue at the end), but make it as production-ready as you can/want. I don't think I could learn as much about people's abilities during an interview, as I could from that task. I mean, the 1 person who made a proper package, a short .rst install & use documentation, and included crazy unicode test cases was immediately on the top of the list.
Those take home tasks are rarely 1 hour deals, so it's not a question of spend an hour at home or take a day off for an on-site. It's usually spend X hours at home and take a day off for an on-site.
Do you really think that "crazy unicode test case" person really only spent an hour on your test?
This seems to be the common complaint, but really this is discussing the idea -vs- the implementation. Some examples here of checking specific things that were not in scope, or tasks that take whole day are really disappointing. And I agree there are loads of really crappy tests out there.
But yes, you can create a test that's easily doable in 1h. As for the crazy edge case tests: probably. It's still a reasonable thing to check for, but often people don't. (having a non-ascii name helps here) If you have simple enough and open-ended enough tasks, I don't think extra time helps the candidates in any way. I mean, either you have experience doing something or you don't. Even if you spent, for example, X hours researching "what does production-ready mean?" and related topics, I don't believe you'd produce as good result as someone with actual experience. (yeah, I could see that in the answer)
I will concede the point that if it literally takes an hour, and it means I don't have to write code in the interview with someone watching my every move at all, then, yes, I would gladly do such a test. I'm still skeptical that a test that requires writing production-ready code and tests would really take only 1h.
So you prioritized for people willing to sink many hours into your assignment. The need to sink many hours into a homework assignment is the criticism.
Phone interview - 1h during work hours. On-site interview - ~3h total, but probably a whole day off work. Test - ~1h at any time you choose.
I'm not sure I follow your logic. They would spend just as many hours, at a more inconvenient time of day without the test. I did the task myself to a level I'd expect at the time to make sure it does not take "many hours". If that simple task would take people many hours, then I hope they didn't apply... (or they would probably fail very soon if hired at all)
The candidate gets no benefit from doing your take home test. In an interview the candidate learns something about the company. Also the ~1h requirement just isn't realistic if you give an open-ended test - you penalize the people who actually spend 1h and reward those who spend more time.
As the other commenter pointed out, you don't control how many hours a candidate spends on the assignment. All you see is the end result, and the guy who spends 8 hours will generally end up with a more impressive result than the candidate who spends 1 hour, and this reflects time spent far more than candidate quality. If you give an "open ended" assignment, you are encouraging candidates to spend a ton of time and then lie and claim they spent very little time, because that looks impressive.
Do you really think "the 1 person who made a proper package, a short .rst install & use documentation, and included crazy unicode test cases" spent only an hour?
they're the worst. about 6 years ago i applied for a job at expensify, and they gave me a take home test. when i sent it back, they couldnt read the code. they asked me to condense it all into one file called main.php. (i separated into controllers / views for a web app)