It's become a bit of a cliché, but there is some truth to the statement that many of those applying for software developer positions cannot implement FizzBuzz. Even someone with an impressive CV that you've contacted yourself may lack the hands on experience you require. So, how do you effectively test for these skills and at what stage?
It may be tempting to give all candidates a test assignment before even talking to them. Unfortunately, this is likely to backfire and reduce the candidate flow to a trickle. Candidates won't be motivated to complete the assignment, as they won't be able to gauge the time commitment required and their chances of passing.
The more experienced the candidate, the less likely they will be to do a technical test earlier in the interview process. However, leaving this until last is also risky. So, it's best to assess the technical skills after the first interview or screening call. This way the first round can be done by someone non-technical, but the candidate should still be motivated going in.
The actual ways to do the assessment are listed from least to most preferable below:
One can combine the last two methods, using them at subsequent stages in the same interview process. This way you can handle a larger number of candidates, while ensuring that the results cannot be gamed.
The tools needed to run automated versus interactive coding tests are different. While some vendors provide both in one solution, many offer only one or the other. The former tend to be quite expensive, whereas many free options exists for the latter. We'll cover the most popular tools in each category in separate blog posts.
Regardless of which approach you choose, one should realize that no method is perfect. If you have remote working practices in place and the ability to quickly onboard developers, by far the best way to see if someone is a fit is to give them a real task from your project. After a week you will see not only whether the candidate can code, but also how they'll perform in their real job. Just make sure to pay them for the time spent, regardless of whether you decide to make them an offer or not!