Reducing Time and Effort: Hiring Software Developers with Evidence Based Processes
Hiring a good software developer can be a major undertaking. Figuring out who to hire, how to interview them, and what questions to ask takes time and effort. The process of hiring great technical talent is also expensive because it has the potential for mistakes which could kill budget or productivity if not fixed quickly enough - in this article we'll cover some evidence based hiring techniques that will help reduce the time and effort spent on hiring while at the same time improving the efficacy of the process.
Create technical exercises tailored towards specific roles
There are many different types of positions within most tech teams – from data scientists who work exclusively with numbers to front-end developers who focus on the UI/UX of an application. It is important to create technical exercises that are tailored towards specific roles you are trying to fill. Try to stay away from pure algorithms and data structures. These can be useful signals, but shouldn't be the sole focus of a developer coding assessment.
A good software developer assessment will have a few different components:
- A problem statement, which sets up the context for what sort of issue they need to resolve – this should be relevant and interesting enough that the candidate can understand how it applies to the role they are applying for.
- The exercise itself should require some sort of code writing – this is where you will assess their technical ability, creativity, and problem-solving skills. The goal here isn't to have them write out a million lines of code; rather create an exercise that is challenging enough to evaluate the candidate's abilities.
- Finally, they should be able to explain their thought process – what did they do and why? How would a colleague possibly solve this issue differently? A good exercise will provide you with all of these pieces of information so that you need to see how well candidates communicate ideas through code as well as through verbal and written communication mediums.
Get the best of both worlds by having an interview process that combines both technical questions as well as work sample exercises, tailored towards specific positions within your organization. For example: If you're hiring a data scientist who works with large datasets – give them a SQL question or ask them to walk through some code used for extracting information from big chunks of text (such as blogs). Just remember not everyone is good at everything so keep your questions focused on the skills needed for the particular role. As long as they demonstrate enough competence it should be fine.
Don't get too caught up in technology stacks
Many companies get hung up on the technology stack they are hiring for. They focus their efforts on finding developers who know the exact stack that they are looking to build on. While it can be highly valuable to find someone who doesn't need to be trained on a specific technology – the reality is that good developers shouldn't have a hard time picking up new technologies.
Focusing too much on a specific technology can create a distraction within your process. Your team may focus too much on finding someone with a specific skill set and forget to evaluate candidates on other factors. It also can lead to an extended search process, as the developer talent pool for a specific technology may be scarce. If you want to hire the best candidates, you don't want to artificially limit your talent pool.
No doubt that knowing the technology stack is valuable, it certainly helps improve a new hire's "time to effectiveness" if that candidate doesn't need to spend time learning a new technology. However, technologies such as Django or the MEAN stack incorporate concepts and structures that can be carried over from other technologies. Take time to think about what sort of technologies are similar enough to your stack. Is Ruby really that different from Python? Could a Ruby on Rails developer quickly pick up Django? Shouldn't someone competent in both SQL and JavaScript be able to pick up MongoDB pretty easily?
If there isn't an exact match between their previous work history and something similar to the project/team environment – don't rule them out yet! Look at their previous work experience and focus on the most important aspects that made them successful in those roles. Is there enough related, but not exact fit, experience that speaks to the candidate's abilities to the job role? If you are using assessments to evaluate their skills, consider assessing them on a technology that they are more comfortable with, one that is similar enough to your stack.
Make sure your interviews are fun and friendly!
It's no secret that recruiting new employees isn't exactly easy. Why not make it as enjoyable as possible by adding some elements of entertainment to your hiring strategy. Everyone loves a good game after all, especially if there's something tangible up for grabs (such as an awesome new job). Not only will this encourage people to sit through more interviews but you're also likely to attract some very talented individuals who see how much fun you're having with things. The more engaged your candidates are with the process, the better hiring signal you will get from them.
When interviewing, make sure to keep the conversation engaging. You want the candidate to do most of the talking, but make sure they don't feel like they are sitting in front of a firing squad. Remember that if you determine that the candidate is a good hire, you want them to like the job too!
When assessing engineering candidates, don't just try to give them hard problems, but fun ones as well. Good developers love to program, and giving developers an interesting and engaging technical challenge to work on is a great way to get them excited about taking the time to complete the exercise and your company.
Technical assessments are just a starting point
Code assessments tools can be incredibly valuable for hiring developers, and it is something that should be done as part of the process. After all, no one wants to hire someone without seeing that they can actually code and solve problems programatically. However many companies get hung up with having someone take a test to see how they score – and then try to rank them based on that score alone. A proper assessment should give you more than just a score. It should give you insights that you can build off of, and take into the rest of your process.
Evidence-based technical assessments are a perfect fit for software developer hiring processes. Not only do they quickly weed out poor performers at the start of your hiring funnel, but the work created allows you to revisit it throughout the process. For example, why not give a developer a coding challenge to complete and then in a follow-up interview ask them how they would improve their design under certain conditions?
The goal of technical assessments should always be to get insight from candidates. The best skill evaluation platforms will allow you to harvest those insights for everything that they are worth. Work sample based assessments, such as coding assessment tools that have developers write code, not only produce scores but also produce consistent work samples which can be reviewed by your team. When combined with scoring rubrics and AI, a good assessment platform will allow your team to gain a deeper understanding of the quality of someone's work, not just their ability to complete the work.
Create a structured interview process
Structure creates the most reliable technical interview process. When technical interviews are structured, they tend to produce more consistent results and therefore better hiring decisions. They also make it far easier to compare candidates when interviewing in large numbers, by reducing insights down into discrete hiring signals that you can measure and make data-driven decisions around.
When you're crafting your interview questions and competencies, take time to think about how they'll be tracked. Many ATS systems contain an interview kit that allows questions responses to be rated. Even better - incorporate your assessment hiring signals into the mix so that it's easier for everyone to see the entire skill profile of a candidate in one place. Qualified's platform is one solution to this problem. I've seen employers incorporate all types of input data points related specifically to interviewing processes, such as behavioral observations and response quality. This is all thanks to Qualified's new evidence engine, which crunches all of these inputs and spits out a unified profile of every insight collected.
Limit what you use the whiteboard for
Traditional technical hiring processes often involve an on-site or remote interview involving a whiteboard. Whiteboarding has caught some flak in recent years because it's considered an antiquated interview approach to have developers write code in a way that is awkward to them. It is just not something developers typically do, so it's putting them in an unnatural position. This doesn't mean whiteboarding is completely bad though. Whiteboards exist in offices because people use them, so think about cases where you would use a whiteboard in the real world. Turn the whiteboarding process into its own work sample.
Limit whiteboarding to technical exercises that involve open-ended design problems. Think about all of the brainstorming sessions your team has had in the past that involved a whiteboard. What is something that you could work on with a candidate that they could contribute ideas to, without needing a level of context that they don't currently have? Maybe ask them about products they use and pick one that you are also familiar with. For front-end developers, perhaps you can pull up a website design and ask them how they would go about approaching the overall implementation. What sort of components do they need to create, what sort of mobile optimization considerations do they need to make? For AI specialists, perhaps go over the sort of inputs and outputs a particular solution would need. "Technical Communication" and "Design Thinking" are well assessed through the use of whiteboarding.
Friendly coding assessments
Having candidates write code in front of you is not the only way to assess technical ability. You can look at all sorts of technical communication, design thinking and problem-solving skills through coding assessments that don't require the candidate to write code while people stare at every keystroke they make. This goes back to the idea that candidates perform best when they are able to replicate the duties of the role in a natural way. Allow candidates to write their code at home, in an environment that is friendly and comfortable to them – similar to how they will be writing code when on the job.
This doesn't mean you need to lose insights into the candidate's thought process. You can utilize recordings to understand exactly how their solution evolved over time. Coding assessment platforms that incorporate AI, such as with Qualified, will even allow you to gain additional insights on candidate performance that you may not otherwise notice. Not only will your candidates be more comfortable and perform closer to their true potential, but you will actually save time by skipping long coding sessions and actually learn more in the process.
Utilize professionally designed coding tests
Having to design technical assessments yourself can lead to a lot of wasted time, and can also produce unreliable results. This is especially true if you are interviewing for developers that have specialized skills in areas where the technical assessment has not been designed well. A lot goes into the design of a test. What technical skills does it need to test? What role specific criterion does it target? Is the test content valid? Does the coding challenge take best practices into account? Is it properly scored?
Testing coding skills is important, you want to make sure any tests around that testing are well defined and implemented. Instead of building your own challenges, consider having subject matter experts on your team pick from pre-existing challenges that are professionally designed.
Code Reviews aren't only for Pull Requests
The benefits mentioned above for whiteboarding can be applied to different approaches. Code reviews are a great example. You can code-pair with a candidate, perhaps using some of their own open-source code, or code they wrote for a previously administered coding assessment. Utilize the code as the discussion focus, talking through different possible solutions and the trade-offs of each approach. Ask the candidate how they would change their code now that they have talked through it more. What sort of improvements can be made?
Pro Tip: In these cases, it's better to use code the candidate is already familiar with. If you give them code they didn't write and have never seen, they are going to feel very stressed trying to interpret the code in front of you. Keep in mind that if your process includes activities that aren't natural to the role, you will create weak hiring signals in your process. Developers typically interpret codebases on their own, and not with an audience watching them, so avoid putting them in awkward situations that may cause them to perform awkwardly as well.
Conclusion
Creating the perfect recruiting process can be stressful for hiring managers and their team, but it doesn't have to be. I hope this article has helped you think through some of the steps you want to take to improve the efficiency and reliability of your technical hiring process. Using an evidence-driven recruiting approach will result in faster decisions while reducing biases. Ultimately it's the inputs of your process that determine the quality of the outputs – make sure you obtain the most solid inputs you can.