For this reason and this reason alone, I will continue to advocate for take-home coding challenges.
(1) IMHO, the best practical solution is a pair-programming interview using a real bug or feature the company has already solved.
For this reason and this reason alone, I will continue to advocate for take-home coding challenges.
(1) IMHO, the best practical solution is a pair-programming interview using a real bug or feature the company has already solved.
Interviewing all candidates in a pair programming setting risks weeding out all the people who are great at the job, but get anxious in a paired interview scenario.
A job interview is already pretty stressful and anxiety inducing. Adding somebody looking over your shoulder while you type into that mix can be really rough on some people.
Whiteboarding is only good for those who are fresh out of college.
You will never know what someone is capable of in a few hours. People who think that works are just fooling themselves and turning away good talent.
I guess the goal is to fine tune your interviewing process based on how past candidates turned out.
The irony of it is putting processes like this is actually turning away good talent, but they wouldn't know, because they aren't doing any analysis; they just read an article somewhere.
Has "traditional interviewing" undergone any scientific study for determining if it "works"?
Also, there is no distinction between a full time job and a temporary contract in terms of survivability in the US. Most states are at-will states, and not being able to do the work is a fire-able offense. Just about everyone knows this.
Most people who have been in the business a while aren't willing to move to a new city, again unless you are willing to pay ungodly sums of money. If you are hiring right out of college and junior-mid's, this technique is better suited, but still, you're competing poorly in a seller's market.
I mean, just because you are hiring and paying a salary doesn't mean 20 other companies in your area aren't doing the same. What makes you better? Certainly not market rates and certainly not your exhaustive and mostly ineffective interview process.
You want a good person, ask your tops if they know anyone good, then try to lure them away with an offer of 1.2x - 1.5x market rates, depending on the return you expect from them. Trust your tops and don't put them through this silly process. Have the top interview them with you in the room. Spend about an hour with them to make sure they aren't some weirdo. Trust me, they'll respect you more if you respect their time.
I get that other developers get paid well to program so a lot of them are put-off by doing their job for "free." However, There's a simple solution of which has already been mentioned: cater the challenge to be completed within a few hours. Time-lock it and urge the applicants to only spend X number of hours on the challenge.
Like I have mentioned in another comment, I've been part of in-person interviews that lasted all day on top of an HR and technical phone interview. If I could cut down the in-person interview to just "personality fit" then that would be my preference.
1) I spent 6 hours on it. I didn't do some of the "optional" parts (unit tests specifically) because I felt like 6 hours was enough to "show I can program" i.e. what it was supposed to do worked. Result: I got grilled over why the optional parts weren't there and didn't get an offer.
2) I spent 15 hours on it. I did everything I could think of on it including 50ish unit tests and more than what was asked for. Result: I got and accepted the job. (note: I had laid out my salary requirements before hand).
Is this "great"? I have an active github/open source profile. To me in both cases they basically wanted to waste my time and mental effort, and see if I would do it. That.. can't be ideal.
Oh, you had dinner plans tonight? You want to see your kids before they go to bed? Sorry, our engineering team generally works 11am-8pm. You need to be in the office.
I know many companies don't explicitly require tests, but for them if a candidate submits a take-home challenge without them, its an automatic rejection. Do you think that if you had included tests in that first challenge that you would have gotten an offer?