Job interview is not an easy thing, neither for the candidate, nor the recruiters. From the candidate’s perspective it’s stressful to be questioned, the recruiters need to make a good judgement. Interview process is a thing that’s easy to make wrong and expensive to make right. Recruitment mistakes are difficult to fix, when you hire someone and you haven’t tested them well enough it’s not an easy mistake to revert.
There’s multiple ways to test one’s technical skills. Those might include:
- Technical questionnaire
- Home assessment
- Pair programming
Having been candidate multiple times and being technical recruiter myself, I’d say that home assessment is the least perfect of them. Let me tell you why.
What’s wrong with recruitment homework
Test results should be comparable across candidates
When you conduct a test of any kind, you want it to be repeatable, and the test results comparable. Otherwise the test is meaningless.
Homework builds an environment that promotes some people over the others. Candidates who have more time after work are more promoted over the others. People who are busy in the afternoons with their hobbies and/or families don’t get to arrange so much time for the assessment.
This obviously introduces a bias into the result of your recruitment process.
Candidates should have an equal chance
It’s difficult to make this process equal for all attendees. You might want to equalize the time candidate spends on the task by limiting the time using a platform but that adds unnecessary artificial boundaries not present on day-to-day job.
This creates a set of issues like e.g. potential candidates being discouraged by the time investment.
Decide what traits you want to test
What do you really want to test with this kind of activity?
Take technical questionnaire for comparison - you have a limited time, one or more technical recruiters that would ask questions about the language, patterns and so on.
You can test the candidates technical knowledge, but also if they don’t know the answer to your question - see how smart they are when you try to point them to the right direction. That way you also test how quickly they learn, what is their thought process within the domain they are not expert in, and see how willing they are to learn from one another. Or maybe you’ll find a candidate that knows everything, one of the recruiters can play a junior and you can test how good is your candidate at explaining hard concepts to less experienced colleagues.
With home assignments you only give a task, limited time and wait for the final result. The result may vary depending on how much time did they manage to spend on the task. Of course you can see what patterns they have used, how clever solutions have they come up with, but there’s nothing more into it. And even the part about their technical solution is not so easy to defend because…
It’s prone to cheating
When the candidate is left alone with no interaction with their recruiter, they can invite friends and solve your task in pair/mob programming fashion. If it’s not the first candidate to solve the assignment, how can you be sure they didn’t know what to expect up front?
Relaying on such a result might lead to recruitment mistakes that are hard to revert. The other option is to question the candidate afterwards anyway, but then you start your relationship with the candidate by expressing the lack of trust. You only have one chance to make the first impression.
It isn’t much better than lurking through the candidate’s Github
If you’re only interested in seeing the end result of your candidate’s coding process, you might as well ask them to send you their best open source work. You’ll see their coding abilities while they don’t have to do any extra work.
It takes a lot of candidates time
There are two perspectives into this:
- Being the candidate, especially when you are a perfectionist, you are tempted to spend much more time compared to in-person assignments
- From a company point of view, a candidate who has multiple career opportunities might skip your job posting simply because they have a limited time to spend on a one process
What makes a good interview task
Now that we have pointed out the bad parts, let’s think how to make things better. There are a few things missing in the homework approach that you want in your recruitment task, those are:
- Comparable results
- Not only about the code
- Give the candidate a chance to get to know you
- Better feedback
If by now you are looking for an alternative, I think pair programming is an interesting area to explore. It can be anything from in-person coding in pairs up to online live coding session. In the later case you can have two recruiters, one being the teammate while the other gives them tasks.
This kind of assessment lets your test multiple things at once so let’s discuss them.
Each pair programming session can have similar task. You split the exercise in multiple parts and make the pair implement the task. Each candidate gets help from one of the experienced devs as their pair, they have a fixed time for the task. Each candidate gets the same time window so there’s no issue with unequal chances.
Not only the code
Besides seeing the results of coding, you get to experience the way candidate thinks about the problem and how they cooperate with the teammate and someone who specifies the problem. I’d argue that this is even more important than the technical skill itself as it’s the most straightforward to improve.
Let them know you
When one recruiter helps the candidate, they get to discuss the solution. This way the candidate can see what kind of people work in your company. This might help them decide when they are in multiple processes at once.
The candidates immediately gets the quick feedback on how they did since this is close to real world kind of work. Thanks to the deeper insight you got during the process you can also send more detailed feedback after the session, avoiding pointing the misconceptions as errors.
I’m aware that the recruitment homeworks have their advantages. This article is intentionally biased towards other forms of recruitment that I personally feel more beneficial. I’m saying this having been on both sides of the recruitment process multiple times. Perhaps this will make someone reconsider their process next time they think of improving it.