Top 7 Ways to Quickly Test IT Competencies Before an Interview

Hiring IT professionals is not an easy task. Firstly, there is a shortage of experienced personnel on the market now, they understand this. Candidates are often not ready to spend a lot of time on the "selection events" of the employer, if they are not first interested. The previously popular practice “we will give a test for 8+ hours” no longer works. For the initial assessment of knowledge and screening of candidates before a full-scale technical interview, you have to use other, faster methods. Secondly, for a qualitative assessment of knowledge and skills, it is necessary to have such skills yourself or to attract a colleague who has such skills. These difficulties can be solved using the methods that I will discuss in this article. I myself use these methods and made a kind of rating for myself.

So, my top 7 ways to quickly test the competencies of IT professionals before the interview:

7. Examine the portfolio, code samples, open repositories of the candidate.

6. Short test task for time (performed in 30-60 minutes).

5. A short express interview about skills by phone/Skype (like a questionnaire, only online and by voice).

4. Live-Doing (Coding) - we solve a simple problem in real time with a shared screen.

3. Questionnaires with open questions about experience.

2. Short tests with multiple choice answers, limited in time.

1. A multi-stage test task, the first stage is completed before the interview.

Next, I consider in detail these methods, their advantages and disadvantages, and the situations in which I use one or another method of quickly testing the competencies of programmers.

Top 7 Ways to Quickly Test IT Competencies Before an Interview

In the previous article about the recruitment funnel habr.com/en/post/447826 I conducted a survey among readers about ways to quickly test the skills of IT specialists. In this article, I talk about the methods that I personally like, why I like them and how I use them. I start in first place and finish seventh.

1. Multi-stage test task, the first stage is completed before the interview

I think this is the best way to test developer competencies. Unlike a traditional test task, when you say “keep the task and go do it”, in my version the process of completing the test task is divided into stages - discussing and understanding the task, designing the solution and assessing the required resources, several stages of implementing the solution, documenting and handing over. decision acceptance. This approach is closer to normal modern software development technology than just "get it and do it." Details below.

When do I use this method?

For my projects, I usually hire remote employees who develop a separate, separate and relatively independent part of the project. This reduces the need for communication between employees, often to zero. Employees do not communicate with each other, but with the project manager. Therefore, it is important for me to immediately assess the ability of a person to quickly understand the problem, ask clarifying questions, independently develop an action plan to solve the problem, and evaluate the necessary resources and time. A multi-stage test task helps me a lot with this.

How to implement

We single out and formulate an independent and original task related to the project that the developer will have to work on. I usually describe as a task a simplified prototype of the main task or future product, for the implementation of which the developer will have to deal with the main problems and technologies of the project.

The first stage of the test task is to familiarize yourself with the task, clarify the incomprehensible, design a solution, plan steps to solve the problem, and estimate the time to complete individual steps and the entire test task. At the output, I expect a document of 1-2 pages, where the developer's action plan and time estimate are written. I also ask candidates to indicate which of the stages they would like to complete in order to confirm their skills in practice. You don't need to program anything yet.

This task (the same one) is distributed to several candidates. Candidates are expected to respond the following day. Further, after 2-3 days, when all the answers are received, we analyze what the candidates sent us and what clarifying questions they asked before starting the assignment. Based on this information, you can invite any number of candidates you need to the next stage.

The next step is a short interview. We already have something to talk about. The candidate already has a rough idea of ​​the subject area of ​​the project on which he will be working. The main objective of this interview is to answer the candidate's technical questions and motivate him to complete the main test task - programming the part of the task that he himself has chosen. Or the part that you want to see implemented.

It is always very interesting to observe what part of the task the developer wants to implement. Some prefer to roll out the project structure, decompose the solution into modules and classes, that is, they move from top to bottom. Some - allocate a separate subtask, the most important in their opinion, without prescribing the solution as a whole. That is, they go from the bottom up - from the most difficult subtask to the whole solution.

Advantages

We can see the erudition of the candidate, the applicability of his knowledge to our project, the development of communication skills. It is also easy for us to compare candidates with each other. I usually discard those candidates who gave overly optimistic and overly pessimistic estimates of task completion time. Of course, I have my own estimate of time. A low assessment of the candidate most likely indicates that the person did not delve into the task properly and completed this test superficially. Too much time estimate usually indicates that the candidate has a poor idea of ​​the subject area, does not have experience in the topics I need. I do not immediately reject candidates on the basis of their assessment, but I ask for reasons for my assessment if the assessment was not already sufficiently motivated.

To some, this method may seem complicated and costly. My assessment of the complexity of applying this method is as follows - it takes 30-60 minutes to describe the test task and then 15-20 minutes to check the answer of each candidate. Candidates usually take no more than 1-2 hours to complete such a test task, while they immerse themselves in the essence of the tasks that they will have to solve in the future. Already at this stage, the candidate may become uninteresting, and he refuses to communicate with you, spending a little time.

Disadvantages

First, you need to come up with an original, isolated and capacious test problem, this is not always possible. Secondly, not all candidates immediately understand that programming is not required at the first stage. Some people immediately start programming and disappear for several days, then they send a fully completed test task. Formally, they did not cope with this test task, because they did not do what was required of them. But at the same time, they coped well if they sent an adequate solution to the entire test task. To rule out such incidents, I usually call all the candidates who have received the assignment 2 days after the assignment is issued and find out how they are doing.

2. Short Multiple Choice Tests with Time Limits

I don't use this method very often, although I really like it and consider it one of the best ways to quickly test competencies. I will write a separate article about this method in the near future. Such tests are widely used in various fields of knowledge. The most striking and typical example is a theoretical exam for obtaining a driver's license. In Russia, this exam contains 20 questions that must be answered in 20 minutes. One error is allowed. With two mistakes, you must correctly answer 10 additional questions. This method is highly automated.

Unfortunately, I have not seen good implementations of such tests for programmers. If you know good ready-made implementations of such tests for programmers, please write in the comments.

How to implement

I have worked with independent implementations of such tests by employers when fulfilling orders as an outsourced recruiter. It is quite possible to implement such a test. For example, using Google Forms. The main problem is in the preparation of questions and answer options. Usually employers' imagination is enough for 10 questions. Unfortunately, in Google Forms it is impossible to implement the rotation of questions from the pool and time limits. If you know a good online tool for creating your own tests, where you can limit the time for passing the test and organize the selection of different questions for different candidates, then please write about such services in the comments.

When do I use this method?

Now I use this method at the request of employers if they have ready-made tests that can be given to candidates. It is also possible to combine such tests with the fourth method from my rating - we ask the candidate to share their screen and take the test. At the same time, you can discuss questions and answers with him.

Advantages

If implemented well, this method is self-contained. The candidate can choose the time convenient for him to take the test and you do not need to spend a lot of your time.

Disadvantages

The qualitative implementation of this method is quite expensive and it is not very convenient for a small company that occasionally hires new employees.

3. Questionnaires with open questions about experience

This is a set of open-ended questions that invite the candidate to reason based on their experience. However, we do not provide answers. Open-ended questions are those that cannot be answered simply and in monosyllables. For example, remember the most difficult task that you solved with the help of a framework such and such? What was the main difficulty for you? Such questions cannot be answered in one word. More precisely, the only simple answer is that I have no such experience, I have not worked with this tool.

How to implement

Easily implemented using Google Forms. The main thing is to come up with questions. I use several standard designs.

Tell us about the last project you did with XXX, what was the most difficult part of that project for you?

What are the main advantages of XXX technology for you, give examples from your experience?
Having chosen XXX technology, what other alternatives did you consider and why did you choose XXX?

In what situations would you prefer AAA technology to BBB technology?
Tell us about the most difficult task that you solved with the help of XXX, what was the main difficulty?

Accordingly, these constructs can be applied to many technologies in your work stack. It is not easy to answer such questions with formulaic phrases from the network, since they are personal and about personal experience. Answering these questions, the candidate usually keeps in mind the idea that at the interview any of his answers can be developed in the form of additional questions. Therefore, if there is no experience, then candidates often withdraw themselves, realizing that further conversation may be meaningless.

When do I use this method?

When working with orders for the selection of specialists, if the customer did not offer his own method for the initial verification of competencies, I use this method. I already have prepared questionnaires on a number of topics and it costs me nothing to apply this method for a new customer.

Advantages

Easy to implement with Google Forms. Moreover, a new survey can be made on the basis of the previous one, replacing the names of technologies and tools with others. For example, a survey about experience with React will not be much different from a survey about experience with Angular.

Compilation of such a questionnaire takes 15-20 minutes, and candidates usually spend 15-30 minutes to answer. The time investment is small, but we get information about the candidate's personal experience, from which we can build on and make each interview with candidates unique and more interesting. Typically, the duration of the interview after such a questionnaire is shorter, since you do not have to ask simple questions of the same type.

Disadvantages

To distinguish the candidate’s own answer from the “googled” one, you need to understand the topic. But it comes quickly with experience. After reviewing 10-20 responses, you will be able to distinguish between your own original responses from candidates found on the web.

4. Live-Doing (Coding) - solving a simple problem in real time with a shared screen

The essence of this method is to ask the candidate to solve a simple problem and observe the process. The candidate can use anything, there is no ban on searching for information on the network. The candidate may experience stress from being watched. Not all candidates agree to this option of assessing their skills. But, on the other hand, this method allows you to see what kind of knowledge a person has in his head, what he can use even in a stressful situation, and what information he will go to a search engine for. Almost immediately noticeable level of the candidate. Beginners use the most basic, even primitive features of the language, often begin to implement the functionality of basic libraries manually. More experienced candidates are well versed in base classes, methods, functions and can quickly solve a simple problem - 2-3 times faster than beginners, using the familiar functionality of the core library of the language. Even more experienced candidates usually start by talking about different approaches to solving a problem and tell several solutions, asking which of the options I want to see implemented. Everything the candidate does can be discussed. Even based on the same task, the interviews are very different, as are the decisions of the candidates.

As a variation of this method, you can ask the candidate to take some kind of test to test professional competencies, justifying the choice of one or another of the answer options. Unlike regular testing, you will find out how reasonable the choice of answers was. You can come up with your own variations of this method, taking into account the characteristics of your vacancy.

How to implement

This method is easily implemented using Skype or other similar video communication system that allows screen sharing. You can come up with tasks yourself or use sites like Code Wars, a variety of ready-made tests.

When do I use this method?

When I select programmers and it is not at all clear from the resume what level of knowledge the candidate has, I offer candidates an interview in this format. In my experience, roughly 90% of developers don't mind. They are pleased that from the very first interview, communication about programming begins, and not stupid questions like “where do you see yourself in 5 years”.

Advantages

Despite the stress and excitement of the candidate, the general level of the candidate's skills is immediately and clearly visible. Also, the candidate's communication skills become clearly visible - how he argues, how he explains and motivates his decision. If you need to discuss a candidate with colleagues, it's easy to make a video recording of your screen and then show the interview to other people.

Disadvantages

Communication may be interrupted. Anxiety can cause the candidate to become dumb. In this situation, you can interrupt and give him time to think about the task alone, call back in 10 minutes and continue. If after that the candidate behaves strangely, then it is worth trying a different way of assessing skills.

5. Short express interview about skills by phone/Skype

This is just a voice conversation on the phone, Skype or other voice communication system. At the same time, we can evaluate the candidate's communication skills, his erudition and outlook. A questionnaire can be used as a conversation plan. Alternatively, you can discuss in more detail with the candidate his answers to your questionnaire.

How to implement

We agree with the candidate about the conversation and call. Ask questions, record answers.

When do I use this method?

I usually use this method together with a questionnaire when the candidate's answers seemed to me original or not convincing enough. I talk to the candidate around the questions from the questionnaire and find out his opinion in more detail. I consider such a conversation to be mandatory when the candidate's communication skills are important, the ability to simply and intelligibly formulate his thoughts.

Advantages

Without speaking in a professional voice, it is usually impossible to determine how well a candidate is able to express his thoughts.

Disadvantages

The main disadvantage is the extra time. Therefore, I use this method in addition to others, if necessary. In addition, there are candidates who speak excellently on professional topics, but in practice they know little. If you need a programmer who will consistently and efficiently solve problems, then it is better to choose another way of primary testing of competencies. If you need a manager or an analyst, that is, a specialist who translates from human language to "programmer" and vice versa, then this method of testing competencies will be very useful.

6. Short test task for time (performed in 30-60 minutes)

For a number of professions, the ability of a specialist to quickly find a solution to a problem is important. As a rule, the tasks are solved simple, but the time of solving the problem is important.

How to implement

We agree with the candidate on the time of the test task. At the appointed time, we send the candidate the conditions of the task and find out if he understood what is required of him. We record the time spent by the candidate on solving the problem. We analyze the solution and time.

When do I use this method?

In my practice, this method was used to test the competencies of technical support specialists, SQL programmers and testers (QA). Tasks were like “find problem areas and figure out how to fix the problem”, “optimize the SQL query to work 3 times faster”, etc. Of course, you can come up with your own tasks. For novice developers, this method can also be applied.

Advantages

We spend our time only compiling and checking the assignment. The candidate can choose a time convenient for him to complete the task.

Disadvantages

The main drawback is that solutions to your problems or similar ones can be posted on the network, so you need to have a certain number of options and periodically come up with new tasks. If you need to test the reaction speed and horizons, I personally choose time tests (method number 2).

7. Examine the portfolio, code samples, open repositories of the candidate

This is perhaps the most straightforward way to test competencies, provided that your candidates have a portfolio and you have specialists in the selection team who can evaluate the portfolio.

How to implement

We study candidates' resumes. If we find links to the portfolio, then we study. If there are no indications of a portfolio in the resume, then we request a portfolio from the candidate.

When do I use this method?

In my practice, this method was used very rarely. Infrequently, in the portfolio of candidates you can find work on the desired topic. Experienced candidates often prefer this method over a typical and uninteresting test item. They say - "look at my rap, there are dozens of examples of my solutions to various problems, you will see how I write code."

Advantages

Saves candidates time. If the professionals in your team have time, it is possible to weed out unsuitable candidates quickly and without communication with candidates. While the recruiter is looking for candidates, his colleague evaluates the portfolio. It turns out quite fast and parallel work.

Disadvantages

Not all IT professions can apply this method. To evaluate a portfolio, you yourself need to have developed skills. If you are not a specialist, then you will not be able to evaluate the quality of the portfolio.

Colleagues, I invite you to discuss what you read in the comments. Tell us, what other ways of quickly testing competencies do you use?

Source: habr.com

Add a comment