Now, almost every industry needs creative professionals skilled in developing applications for the web and mobile. When there is such a demand, then the number of proposals grows exponentially. But as you know, quantity is not equal to quality. There is a severe race among companies for the most talented developers and the excellent technical experts are picking up like hotcakes. So, how to find your diamond for your IT team? To complete this task, you need to understand the portrait of the candidate and check for its compliance. A resume with significant experience isn't all that defines a great programmer. Integrate technical assessment tests into the hiring process!
Technical assessment is a form of professional aptitude tests of candidates. During which you can visually determine not only the practical skills of programming but also communication skills, the ability to solve problems, time management, the level of responsibility, and creativity.
But before we move on to a more detailed analysis of the assessment tests, it is essential to identify the very skills needed to find in your potential employee.
What are good programmers made of? Write down the recipe. You will need three ingredients: 2 cups of technical skills, 1 cup of teamwork skills, and half a cup of soft skills. Shake but no stir. And as a result, you will get that person who can easily cope with any programming task to solve business problems. It’s called a portrait of the candidate.
Let's reveal the ingredients:
IT developers have a wide variety of skills and expertise to perform their duties at the highest level. There are many types of coding languages, including database knowledge, computer systems, data structure and algorithms, testing procedures, etc. To choose the technical skills needed in a candidate, determine which type of options align with your project’s interests. For example, some options may work better for an interactive website application, while others may be better for developing programs that optimize hardware capabilities.
Remember that you are not only hiring a task performer but also a team member. Each employee influences the working atmosphere and communication in one way or another. It is vital to find a person who knows how to cooperate with others and is aware of the responsibility for the quality of his work. Otherwise, the team risks facing poor results for the project. Then motivation can reach zero. And this is already a serious problem that no company wants to face.
Being a good programmer doesn't just mean writing code but also forming solid and high-quality relationships and meaningful interactions with his co-workers. To fulfill these requirements developer's professional life requires a range of soft skills.
The following can be distinguished:
- Openness and availability
- Real problem solving
- Open-mind and flexible
- Good time managing
- Empathy and patience
Now you know what skills and qualities you are looking for in a developer. But how to do a technical evaluation if an applicant has these skills? There are several ways.
Below you'll find a guide to types of technical assessment, including how to use them to hire software engineers and determine the pros and cons of each of them:
In Mad Devs, we are using a technical assessment test called "Show me." It is the conception that the candidate shows his technical and soft skills right during the video call. First of all, we ask to write a couple of lines of code or a simple function. And after we are watching how a person understands the task, asks clarifying questions, and what points get his attention the most. We can also immediately see a person's reaction to success or failure - if the task does not reach its logical conclusion. After all, the developer often has "memorized" all the answers to technical questions, but he gets lost in using them in practice. Showing, not talking, is one of the general practised and accurate methods to show your skills.
An interview for hiring a software developer is not an exam with questions in the usual sense. Yes, there are questions around knowledge of development processes or familiarity with programming languages and concepts. But it is also a way to reveal the understanding of the basic principles of programming and the candidate's personality. Some questions will focus on ranging from problem-solving to logic to analytical thinking.
Questions asked during a technical interview can fall into several categories, including:
- Behavioural interview questions - to learn more about who the candidate is and how they will fit in with the company's culture.
- Situational interview questions - to create a hypothetical situation and see how a developer would resolve the problem or respond to the situation.
- Questions about education - to know about the specific technical training and education and how it has prepared candidates for applying for positions.
- Questions about technical knowledge and experience - to get a clear idea of the level of technical knowledge and skills needed for the specific role of developer
- Stress cases - put the candidate in extraordinary conditions and reveal his creative thinking abilities, focus on the result, and emotional endurance in stressful situations.
This stage makes every programmer grimace pain. And remembering such an experience, they seem to receive flashbacks from the war. Why does this stage cause a grimace of pain? It's primarily about the level of stress. Not everyone feels comfortable making a video call with a lot of programming theory questions. Therefore, it is vital for the interviewer to first “break the ice” with a short conversation. For example, to talk about the candidate himself, talk about how the interview will take place, and outline the main stages and expectations for them.
Code sessions are when candidates write and run code to solve one or more tasks with a time limit of an hour or a couple. There are two types of it – live coding and coding challenge.
In live coding, the candidate shares screen with the interviewer to implement a small task. For example, to review a working code. Live programming tests demonstrate a candidate’s logic, their ability to explain what they’re doing, how they think, and their ability to code under pressure. Being able to code and communicate in front of an interviewer can be challenging. And remember these conditions are rarely used in real-time tasks for developers. The aim of the exercise is not to provide a correct answer to the question in the shortest amount of time, but rather to consider the whole session as a constructive dialogue. So that’s why at Mad Devs it is allowed to use Google to find needed solutions.
Code challenge is a test sent to a candidate by a company with a clear functional description. The candidate has 2-3 hours to complete it and sends the code to Github. With this test, the interviewer can immediately see the skills and techniques that programmers are using. In addition, the challenge coding algorithm is most suitable for the real conditions in which the programmer will have to work in case of successful completion of all hiring stages. The main disadvantage of this tech assessment is that it is impossible to see the entire programming process. You only get the final product. Therefore, coding challenges are not recommended in isolation from technical interviews.
Instead of a code challenge or after, you can also use a take-home code assignment. The base idea is that developers complete coding in their comfortable environment at home. Typically candidates are given up to 4 hours to finish it. The range of tasks for the test is extensive. It could be code tests to develop a website, back-end exercise, or run some testings. It will be effective if the task simulates actual conditions, the solution of which will be the root of all future work in the company. So it is more about practice rather than theory.
The only controversial point in this technical assessment is that you cannot confirm how the developer came to the solution. There is a risk that plagiarism and the help of experienced developer friends did all the work for the candidate. These doubts can be resolved by assigning an additional discussion for evaluation.
The technical assessment questions you can use:
- Ask the candidate to critique the code
- How would you invest 10 more hours on the assignment?
- Why did he/she choose these shortcuts, and why did he/she think that is the right tool?
Perhaps that's all. Now you are familiar with the basic types of technical assessment templates for adding an employee to the development team. As you can see, this is a laborious process in several stages. However, adhering to it will allow you to indeed find the person who suits your company and will genuinely solve the problems of your business.
The use of technical assessment tools helps streamline the hiring process for software developers and find promising team members for your company. Programming is a symbiosis of science and the miracle of the human mind. Therefore, developers’ skills cannot be revealed from one classic test task or a formal interview. Invest your energy and resources in the hiring process. And remember that the hiring process does not end with a booming tech assessment. This is a lengthy process that includes a probationary period for a new employee. Only at the end of it can you confidently say “Yes” to each other to live happily ever after to solve various business problems.
Previously published at maddevs.io/blog.