I recently discussed how working through a small project is an effective way to evaluate a candidate’s practical skills. In that article, I posed a question (updated now based on the importance of independent work): is it better to implement the project interview with a take-home assignment or as part of an “onsite” with independent work?
I believe you should default to an onsite, which in COVID-times could be conducted remotely, but the take-home assignment does have its place.
An unbalanced time sink
The fundamental problem with a take-home assignment is a candidate has to put in time the employer doesn’t. A candidate may spend hours on a take-home, and the employer rejects them after only a cursory glance. Independent work during an onsite can be similar, but the interviewer should still be checking in on the candidate.
Even worse, the take-home assignment is usually in addition to an onsite. This is expected, since some component of the interview should evaluate the ability to work together. But, that means taking more time off or working during non-work hours. The latter can be difficult for those with families, leading to ageism.
Finally, take-home assignments usually come early in the interview process. Before an onsite, the candidate usually has a chance to evaluate the employer through recruiter conversations or a phone screen. If there isn’t a fit, only a little bit of time was lost. With a take-home assignment, the candidate learns little about the company until the assignment is submitted.
This discrepancy makes the power imbalance I talked about earlier even more more drastic.
What are take-home assignments good for?
Despite all this, a take-home assignment has a huge advantage: they replicate how software development actually happens. The candidate uses tools of their choosing, they get to do so in an environment they’re comfortable in and they get to do it on the schedule that works for them.
The flexibility in schedule is actually quite important. For example, a student with classes during the day may want to work on an assignment in the evening, and you don’t want to interview candidates that late!
Some part of the other benefits can be replicated by a combination of letting candidates work on their own and doing the interview remotely. Such an arrangement also allows the interviewer to check in on the candidate from time to time, answering questions along the way.
Using a take-home assignment effectively
Given these trade-offs, I think it’s possible to effectively incorporate take-home assignments into your hiring process. I haven’t actually implemented the following into a hiring process myself, but here are my ideas:
First and foremost, offer take-home assignments as an option. This only works if not taking the assignment doesn’t hurt in any way, a fact you’ll need to clearly communicate.
Use take-home assignments as a replacement for other parts of the interview. For example, anyone choosing the take-home doesn’t do a phone screen, and they can talk about their project instead of having a traditional system design interview.
Determine company-employee fit prior to assigning a take-home. Have the usual recruiter or team member conversations early to figure out if moving forward is even worthwhile. The take-home should not be an early filtering mechanism, but a way for candidates to demonstrate their abilities.
Constrain the scope of the assignment, but still have candidates work on real-world problems. Take-home assignments that consist of quizzes or Leetcode-style problem sets show disrespect toward the candidate. But so do projects that realistically take a whole day of work.
A central theme above is to make take-home assignments a way candidates show their strengths, instead of making them gating mechanisms. And the way to achieve this is to respect the candidate’s time and preferences.