Employee turnover can cost the employer between 50 percent and 200 percent of the departing employee’s salary, depending on the seniority of the position. Bringing in the right people and conducting an effective interview process is critical in reducing risk for turnover and ensuring only the best person for the job is hired.
Recruiting isn’t always the hardest part of the hiring process. For many companies, the interview process is equally daunting. The purpose of the interview is not only to get to know the candidates, but to provide some clarity and differentiators to make the weeding out process a bit easier. But there’s more that can be done to help that process along. When hiring programmers, for instance, coding assessments are a common practice to assess ability in advance of an interview. No need in wasting everyone’s time if the candidate can’t complete a basic programming test, right?
At first glance, programming tests seem like a great idea, but they have felt the brunt of a large backlash on blogs and social media recently. Are they worth it? Do they save the company resources? Do they ensure a better hire? Let’s look at the facts.
Tests Demonstrate Skill, Not Potential
We all know that some people test better than others. A test is just one measure of aptitude but it should never be taken as the sole indicator of a person’s ability. The more important factor is if a person can demonstrate skill as well as potential to learn more. Can they be trained? Can a mentor or manager take what the candidate already knows and build upon it?
Most branches of programming work are evolving at an ever-increasing pace. There’s always a new framework or library on the block and success means keeping up with these developments. Maybe a candidate has impressive experience working on legacy projects but are out-of-touch with the newer technologies. Modern coding assessments won’t reveal their potential to quickly bridge the learning gap.
The ability to learn is a valuable characteristic – one that is often not reflected in a test. Sure, you need to know if a developer has basic skills, but try not to put too much weight into any one test.
Coding Tests Environments Don’t Reflect Reality
Sportspeople have this concept called “specificity training.” It means the closer your training is to the actual sport, the more prepared you’ll be. Coding assessments typically take a programmer out of his or her natural environment and ask them to complete a test without their favorite resources. How many developers work without access to Google? How many write out code on a whiteboard or on paper?
It would be like testing a boxer’s fitness by having him ride a stationary bike instead of punching. Yes, you’ll get an idea of his overall fitness, but you aren’t seeing what he can really do when he is in his element. Similarly, there are plenty of cyclists who could school the boxer on a bike but would tire out quickly when hitting the heavy bag.
To research using search engines and apply a solution to a problem is a crucial part of today’s coding work. The internet gives you access to millions of other minds who have been working on the same problem. Why reinvent the wheel? Yes, developers shouldn’t be depending on search engines every time they write a “for” loop. But to test someone’s ability without access to search engines is as much a memory test as it is a coding test.
If you find value in coding assessments, consider giving candidates access to Google or allow them to complete the test at home and then have them talk you through the results.
Tests Demonstrate a Candidate’s Thinking Process
Assessment tests give you a rare insight into a candidate’s thinking process – if you ask the right questions. If you take the test results as written, you are missing a great opportunity to look into the candidates methods and approach. It’s this insight that will help you evaluate how well the person can take what they know and apply it to different situations.
With test in hand, ask them to guide you through the process they used to get their results. Alternatively, you can have them talk aloud as they do the test so that you see how they approach a problem. This methodology will be more useful to you if you approach it from a certain angle, however.
Keep in mind the candidates are outside of their comfort zone in an interview. Nerves can impact a person’s memory and reasoning processes, so don’t approach this test like an episode of Mastermind. Feel free to give the candidate prompts if they get stuck. Help them along without answering for them. Keep the goal in mind – you aren’t particularly looking for a specific answer but a glimpse into how they think and apply their knowledge to tasks to produce a result.
Tests Demonstrate Soft Skills
Programming might be a technical job, but soft skills are still essential. Coders will be working as part of a team and they will need to talk about their code, justify their approaches and be open to different perspectives. They will need to appreciate constructive feedback to continually improve.
Coding assessments can give you an insight into these types of soft skills. A candidate’s composure during a test can tell you a lot about how they will interact and work with other people on the job. Are they enthusiastic and passionate? Are they up for the challenge? Do they see the test as beneath them?
To get the most out of coding tests, keep an eye on soft skills as well as technical skills — attitude, communication and ability to take criticism.
Coding Assessments Are Great for Junior Positions
If you’re interviewing juniors, coding tests are valuable because they can be a simple way to see what they can do. For a junior programmer, you’re not looking for the finished product. You just need them to know the fundamentals of programming and that they possess the passion to learn more.
Take a simple test like FizzBuzz or reversing a string. These tests may be played out, but if someone can put one of these together, it shows they know the basics. At the very least, it shows they understand loops, variables, conditionals and control flow.
If you ask them to make a small, simple application, a basic CRUD application for instance, you’ll get even more information about their coding level. You can then talk to them about the code they wrote to learn more about how they approach coding, what they know and what they’ll need to be taught.
Tests Aren’t Ideal for Senior Positions
Senior candidates should be handled differently. As opposed to a junior candidate, a senior should already know all of these basics well and this should be obvious from their CV. If they have years of experience and you ask them to write FizzBuzz, they’re likely to be insulted and you’re wasting time. You’re essentially questioning what they have written on their CV.
Senior developers are seasoned professionals — treat them as such. This doesn’t mean you up the ante of your coding assessments and ask them to write something akin to a market-ready application. You simply want to develop a coding test that will fit their level of expertise and perhaps push them a bit beyond their comfort zone.
Code Samples Are Often Better than Tests
For intermediate to senior roles, you can usually ditch the formal coding test altogether. A better approach is to have the candidate send in samples of code they have written and talk it through with them. From this conversation, you should be able to develop probing questions that will reveal their level of knowledge.
By discussing a sample, you’ll learn everything that coding test could tell you and much more. You can ask them to explain it to you, dig into the technicals, and ask why they took this approach over another. Determine if what they’re explaining to you would translate in the role’s environment and requirements. Does it relate? Is it relevant?
Coding Tests Take Time
Another downside to coding assessments, whether you do them in-house or give out homework assignments before the interview, is the length of time they take to complete. The coding tests present a dilemma. From the hiring company’s perspective, it would be ideal for the candidate to spend several hours on a relevant test. The test needs to be comprehensive enough to show their skills and you want them to take their time so you can have an accurate picture.
The candidate may not be as enthusiastic. Many programmers apply for tens, if not hundreds of jobs before they find one that fits. Imagine spending a few hours on coding tests for each application. It’s just not feasible and can turn a viable candidate off.
There is also a cost to you in reviewing candidates’ work and in managing them while they are in the building doing the tests. If you do employ tests, keep them brief, for your sake and your candidates. Be sure the test is efficient while also being an effective measure of aptitude.
Tests are More Valuable When Similar to the Actual Work
If you do administer any coding assessments, make sure they are relevant to the post for which the candidate is applying. You’d think this goes without saying, but social media is rife with interview horror stories, such as people being tested on complex algorithms, only to find out they’d be fixing bugs and resolving Git conflicts all day.
If the work involves algorithms, test them on algorithms. If they’ll be in e-commerce, have them link a simple app to your API. If they’ll be a bug fixer, design a test where they fix actual bugs.
You will not only have a better idea of the candidate’s skills, but the candidate will get a much better notion of what his or her work will be if hired. It’s more fair and gets you closer to hiring the right person for the job – one who will stay after they are hired.Do you need any help finding the right candidates for your business? We know IT staffing inside-and-out, and we have a proven process for getting the right people in the right places. If that sounds good, drop us a line — we’d love to talk about how we could help!