I talk to a lot of people about how to find, interview, hire, and retain software developers. When I am talking about hiring software developers, the conversation invariably comes around to the topic of coding tests.
I’ve been very vocal about this in the past: I don’t like them, but I do recognize times in which they may be useful.
Let’s talk about coding tests for developers and whether they may be useful in your process.
The short answer to the question, “Should I incorporate a coding test into my hiring process?” is “Probably not.”
If you have a developer...
If you have a developer already on staff who is senior enough to properly judge someone else’s code, you may at least be able to derive some small amount of value from the code. If you are interviewing a mid or senior level developer with a body of publicly available code, you can derive the same value from that. You would be looking for things like:
- Use of best practices
- Security measures taken (filter inputs/escape outputs, at the very least)
You should also consider that if the person has a few pieces of code publicly available on the web, your coding test isn’t really necessary. The code that is already available will be much better thought out, because the developer had time to think the solution through and properly implement it.
If you don't have a developer...
If you don’t have a developer on staff already, a coding test is mostly a pointless exercise. To you, it may feel like you are doing your proper due diligence, but in reality, the developer could submit a totally wrong piece of code, and you wouldn’t have anyone with the skills needed to see that. Without proper review, the submitted test might as well be in a foreign language.
There are systems out there that you can subscribe to that will manage tests and score them for you. They apply current best practices to the code and look for completeness, working code, and well-formed code.
In these cases, I still don’t think they are a good measure of a developer’s skills. At best, they can tell you whether the developer can write proper code in a timeframe. Even take-home tests are a problem, because they usually don't represent real-world problems–they are manufactured issues.
You need professional help
If you are interviewing developers for a developer position on your team, you need professional help. Your first line of defense should be any existing developers you have on staff. If you already have developers on the team, let them conduct the technical part of the interview.
If you don’t have developers on staff yet, or if you don’t feel that your developers are at a skill level at which they can adequately judge a candidate and their code, then work with Gun.io.
Gun.io has a team of current developers of all types that vets every candidate before they are sent to you. Yes, we do have coding tests that candidates can take. We also have staff that are qualified to evaluate existing code.
Even if you have developers on staff, by using a professional team like Gun.io, you save your developers from having to evaluate the unqualified candidates. You know that your developers will only spend their time selecting the best candidate, not wading through all of the chaff.
Coding tests should be a last resort measure when evaluating a developer, and should only be used when you have an expert on your team to review the code submitted. Even then, the results derived are of limited use and should be a single point within a larger dataset used to evaluate a candidate.
To consistently get better candidates for your open positions, work with a company that has a team that is dedicated to evaluating developers and finding the ones that meet your exact needs: a company like Gun.io.
Interested in working with Gun.io? We specialize in helping engineers hire (and get hired by) the best minds in software development.