Finding and hiring the right developer for your team can be challenging. Many organizations use coding challenges in their interviewing process to see which developers walk the walk. The only issue is that many of these organizations administer coding challenges in the wrong way.
To think that simply having a developer fire up an IDE and solve trick questions to prove that they are competent programmers is asinine. But this is what many companies do to see which developer is the best.
A coding challenge is used to determine what kind of employee the developer candidate would be if hired. It illustrates a programmer's hard technical skills, their approach to problem-solving, and their ability to understand the requirements and think clearly under pressure. Ensuring that the coding challenge that you organize does realistically reflect the goals and tasks that applicants would face in the workplace and does provide an effective way of evaluation does significantly increase the chances of hiring the best developer for the job.
Organizing an effective coding challenge
Coding challenges test developers on their technical skills, problem-solving approach, and ability to work under pressure. They come in handy when testing the relevant skills of a Developer versus relying on what a resume says.
To get the most from a coding challenge, you need to make sure that it reflects the skills that an applicant would use in the actual job as well as simulate relevant challenges that they are likely to face. Challenges can include finding a bug in a problematic piece of code or building out a new feature and integrating it.
The coding challenge should have clear goals and measurement systems in order to objectively measure a candidate’s performance. Coding challenges save the hiring company a big amount of time while showcasing the technical skills of the candidates in a real-life environment.
Focus on real problems
Offering the candidates to solve a real-life problem will show how well will they do on the job and what impact they could have at your company. You can use the challenges that your business has overcome in the past or currently facing. They will be more relatable than complex trick questions. It will also provide a candidate with an idea of what kinds of tasks to expect on the job and see for themselves if they’d be a good fit. Generic coding challenges won’t be a good fit, because they don’t target the specific skills that you are looking for or the particular problems that your business can face. The more specific you get - the better fit for the job you will find among the candidates.
Include pair programming
Pair programming is a type of screening process where your interviewer reviews each line of code as the developer writes it. It is an interactive process where the candidate walks the interviewer through their thought process and explains how they solve the problem. Through pair programming, you can learn how the candidate thinks and approaches their tasks, and how they would interact with your team members. It is an excellent way to check the teamwork skills and see how the candidate developer collaborates. Even though in many cases, every software developer focuses on their tasks, collaboration - with a team member, other departments, management, clients - is an essential skill for a great developer.
Keep an open mind
The “right” answer is not the ultimate goal of a coding challenge. A good problem will always have multiple solutions. The coding challenge is an opportunity to see how a candidate thinks and approaches the problem. If they didn’t reach a viable solution, you can still see their skills in action and identify areas that might require some improvement. What does matters here is how a candidate understands the requirements of a challenge and approaches finding the solution.
Have a standard
Having a standard for your challenge would put all candidates in the same equal conditions. Put candidates on the same level by standardizing your coding challenge. Each developer should work on the same problem, with the same tools, and, if possible with, the same interviewer. That helps to evaluate all applicants equally and simplifies the analysis of the results of the challenge. If you have too many different variables, you might not be able to objectively company each candidate’s performance at the end of the coding challenge due to the difference in the resources used.
Keep it private
Don’t rely on out of the box coding challenges as they can be easily shared online. Stick to using real-life problems that your business has encountered to make sure you don’t have similar challenges to the other companies. Such websites as Glassdoor can also indicate if your test has bees shared online.
The idea of a coding challenge is to find the best performing developers and separate them from the ones who are not qualified for the job. So when the coding challenge is complete, how do you evaluate them? It is important to remember that getting the “right” answer doesn’t always guarantee a perfect match.
Remember why you’re hiring for that specific position, and how every candidate does meet the requirements. Evaluate their process to see the way they are thinking and approaching the problem. Think of the work priorities that the team has. For example, if test-driven development is a priority, look at their unit test.
Make sure that a candidate has a clear understanding of the challenge requirements. Did they grasp all the details? Were they willing to require some clarifications to complete the problem? Were their mistakes due to a misunderstanding or to lack of attention to detail?
After the challenge is complete, you should take some time to talk through it with the candidate to let them explain their decision-making process, as well as indicate how they handle criticism of their work. While skills can be improved, inadequate response to feedback, or inability to discuss the project and its results might be a red flag for teamwork issues.
If you can, try to provide feedback even if you think that the developer is not a good match for your company. First of all, a polite way of handling the hiring process. Thoughtful feedback provides the candidate with an overview of their performance and an indication of where they can improve in the future. By providing candidate feedback, you are doing them a favor and helping them grow.
Using a coding challenge can help you to filter the best performing engineers from those that are unqualified for the job. The idea behind a coding challenge is to see how a developer would solve a similar problem on the role in real life.