Technical recruiting: Are coding tests really necessary when hiring developers?
A study by Dice shows that software developer vacancies are the hardest technology positions to fill. The problem is not a shortage of developers, but rather a shortage of high-quality developers. Therefore, when carrying out Technology recruitment for positions like developers, the biggest challenge is determining whether a potential candidate truly knows their craft.
For most recruiters who rely on skill-based hiring, the solution seems pretty obvious – coding tests. At first glance, coding tests seem the perfect way to assess a developer’s skills: Give them a coding task, and you can easily tell whether they have the skills you want.
But are coding tests the most effective way of gauging a developer’s skills?
5 downsides of using coding tests for evaluating skills
Most coding tests demonstrate algorithmic skills
Most coding tests are often used to evaluate a candidate’s knowledge of algorithms.
While algorithmic skills are foundational for most developers, they have little bearing on someone’s actual programming ability. Therefore, a candidate could ace your coding test but still perform poorly as a programmer. Another could perform poorly on such tests but be a great developer.
Developers are tested in an unfamiliar environment
Think about the working environment for the average developer. Most have an integrated development environment (IDE) that they’ve customised to suit their preferences and simplify their coding process. They also have quick access to their favourite resources.
In most coding tests, candidates have access to none of these things. Therefore, you’re testing them in an environment they’ll never find themselves in, which has little bearing on how they’ll perform on the actual job. A candidate could perform poorly in such circumstances which is not an accurate reflection of their true ability.
Most coding tests are different from the actual work
Many companies rely on generic coding tests that correlate little with the work for which the candidate is applying.
What’s the point of having candidates do a code test evaluating their ability to build an app from scratch when the work you’re hiring for only involves fixing bugs?
Such a code test doesn’t give valuable insights into the candidate’s performance if hired. When hiring developers, it makes sense to test candidates on tasks similar to the ones they will actually be performing on a daily basis.
Coding tests are time consuming
Very often, coding tests take a huge amount of time. When candidates have applied for several jobs (which is highly likely in the current market)and have to do a coding test for each, this could add up to tens of hours.
Simply reducing the time required to do an online coding test can lead to more candidates taking and completing your test, and reduce the overall length of your recruitment process- which is a plus!
Coding tests aren’t ideal for Senior Developer positions
When hiring for junior positions, coding tests in your interview processes are a simple way to evaluate whether a candidate is well versed in programming fundamentals.
For senior positions, where candidates are seasoned professionals with years of experience, score-based, formulaic, poorly constructed and conducted coding tests can be seen as a waste of time. You could lose out on top talent by simply asking them to prove themselves.
Senior developers often have an abundance of valuable experience which cannot be conveyed through a technical test. If the coding test is the first step in your interview process and you are rejecting candidates at this point due to their performance, you will lose the opportunity to learn more about them. For senior developer positions, it’s important to have a more open conversation with them first of all.
Senior developers are especially important when you want to transform your company’s Technology and development teams. According to recent surveys, 74% of businesses are actively digitally transforming their businesses.
In such a highly-competitive environment, you don’t want to lose out on senior development talent simply because you expect candidates to take coding tests.
So, should you do away with coding tests altogether?
Despite the shortcomings of coding tests, they can still help you determine whether a candidate has the skills you’re looking for – when they are fair, accurate, and relevant.
Sometimes coding tests are also about producing a simple solution which shows good engineering principles, is testable, scalable, and cleanly written.
Here are some tips on making your coding tests more effective and improving the quality of your hires:
- Avoid generic coding tests. Go for tests designed to assess a candidate’s knowledge of language-specific frameworks.
- Ensure each coding test is tailored to the position’s requirements and relevant to the day-to-day work.
- Keep your coding tests adequately timed. Ideally, use tests that need less than an hour to solve.
- Avoid automated scoring, which can unfairly reject qualified candidates.
- Don’t rely solely on coding tests. Use them with other ways of evaluating a candidate’s programming skills, such as looking at their programmer portfolio, checking their GitHub, or checking their reputation on Stack Overflow.
- If giving a coding test to a senior developer, be especially careful to present it in the right way and to abide by points 1-5 above in order to not put the senior candidate off. Make sure the problem to solve is relevant, the coding environment is as realistic as possible and walk them through the intention of the test so you can address any concerns about them having to complete score-based tests.