Well, I believe it is not worth discussing here the pros of a tech test task in the hiring process. As it is widely used worldwide by many companies from Valley corporation to garage startups. But, statistically, programmers (as well as other tech specialists) loathe test tasks. If you ask them why you would probably hear a few reasonings:
- Usually, the time to complete a test task is underestimated. If a recruiter says it should take 3-4 hours, expect to spend 8+ hours. And this is way too long, rather boring and demotivating, especially if the technology stack is old.
- Companies are trying to save their time (hence money) at the expense of candidates’. To shorten their interview process and spare hiring managers’ time, employers briefly phone interview a candidate and immediately give a test task, and then wonder why candidates are not motivated to do test task? Because they are not sure yet if the game is worth the candle.
- A test task as a way of developers’ screening is a questionable tool as it has a rather low ration of information received and time spent and may not always correctly filter the highly-skilled talent from the novice. Plus, very few skills and little knowledge can be revealed through test-taking, for example, problem-solving skills. Tests usually assess the coding ability and knowledge of algorithms.
- Companies have an ill-established feedback process and either skip feedbacking or give untimely or give a poor one.
- Some programmers claim that companies cheat candidates and give the test task to have some job done free of charge.
All this poses a question – to test or not to test? It is a hard question. As on the one hand, there are applicants with their ‘truth’, and on the other, employers that are already sick and tired of batches of unqualified candidates with identically shiny resumes and need to spend oceans of time, examining the credibility of self-reported skills. Thus, their desire to shorten screening time and decrease cost-per-hire with the help of test tasks is natural.
So, if your company chooses to have an obligatory test task as a part of the recruiting process, at least make sure you:
- Give a short test task, that is 2-3 hours utmost. Spending days of free work as a job application requirement is a burden for anyone. And since experienced developers are top requested these days, asking to complete a long test can result in them finding another job faster. Or you can set a time limit for the task completion. Let’s say 4-5 hours. This will also help you understand if the person can work productively under deadline.
- And online. Well, to travel to the company office to talk with a recruiter and then spend 3 hours for a test task is rather time-consuming and tiring, especially after the working day. Or one should take a day off the work, which is also not ideal for candidates.
- Offer lengthy deadlines. Do not insist on a candidate submitting test results ‘today in the evening’. As on working days, especially if you’ve ignored item №1 of this list, and prepared a long test task, an applicant will either need to cheat on their present employer and do the task at working time (do not encourage dishonesty from others, as they may play the same trick with you later), or steal some time from family, or get in stress in case of some other upcoming commitments.
- Offer a test only after an HR interview. Do not expect a candidate to be motivated to perform your test task if you didn’t conduct at least a short HR talk, didn’t discuss necessary conditions, salary and other perks.
- Make it professional. There are cases when the test task is created by not-exactly-the-right people. For example, small companies may lack some technology expertise or a senior person, who can prepare a relevant test task to hire a senior developer. So the test task can be composed by a middle specialist or a Scrum Master, or simply taken from the Internet.
- Provide accurate instructions. Decide what exactly you want to test and provide guidance accordingly. Don’t mix apples and oranges, as a two-hour algorithm implementation task will hardly help you assess problem-solving skills. As well as, 4-hour digging into API will require from you an explicit explanation of what outcome is expected.
- Pay for it. Especially if you cannot live without extended test tasks, I do not see other solutions, as to offer payment. Want to shorten costs? Do not give a test task to everyone, only for those, you feel are the right candidates. Yes, it may be a bad idea to pay for the test task if you plan to give it to every passerby, but if to the selected and the pre-interviewed, yes, the sound idea! 60-100 USD for a company is not much, but can significantly shorten recruiters’ persuasion efforts and increase the pool of candidates.
- Do not give it to everyone. The hiring process is not one-size-fits-all. Do not test people who contribute to open-source, have high reputation level on Stack Overflow or own a GitHub repository that can showcase readable and maintainable code. Also, ask if they have pet-projects, they can share. My experience shows that passionate developers, however junior they may be, can demonstrate their coding skills through personal projects. It is not a secret that hi-tech talent are very in-demand these days, and they may find another job faster than doing your test.
- Give it to juniors and…test task fans. Is the test task a universal evil? No. The test task is great for juniors, as they have no experience and past projects to discuss at the job interview. As for the fans, yes, such unicorns exist and they are not that exotic as you may think. So, let the test tasks be done by the interested. But if somebody is not or flatly refuses, don’t blame them for the lack of motivation and reject immediately, consider offering alternatives.
- Always provide feedback. Like always. No matter the task is done well or not, especially if not, politely point out the candidate’s areas for growth. Invest time now, and you will not only contribute to company’s reputation, demonstrate the norm of mature behaviour, but also, if not for this project or company, then in the next, you may have a chance to work with the person side by side. I believe you understand that “Unfortunately we cannot move forward with you” is not the feedback. Do not worsen your karma and company image, have a well-establish your hiring process.
- Consider alternatives. The test task is not a universal remedy either. There many other efficient ways to pre-screen and test people, like:
- Codility and other identical services;
- Live coding may appear to a truly valuable source of information. It allows to observe, in real time, a candidate’s logic, their ability to ask “the right” questions”, test communicative and collaborative skills in a dynamic within a team. Often live coding is done via screen sharing, but a company office will also do in case of a mutual agreement;
- Probationary period, as life shows, even brilliant test task results will not complete smooth performance afterwards. So the probationary period will set the record straight. Yes, it’s risky and can cost lots but building an A-plus team has always been venturous and challenging. This is where Talantly is intended to facilitate your hiring process and make your life a lot easier.
So to cut a long story short, a test task is just an instrument, like a hammer which is used both for building and killing, and one should learn to use effectively to make it work for the good.