Alexander Zverev: I passed the C # language test. And I scored 14 out of 45. Well, well, I didn’t touch C # for two years, but still, for almost four years I was one of the developers of ReSharper and knew C # much better than the average programmer. However, it is possible that I am an idiot, and for all these four years the ReSharper team has been in danger. 😆 😅

Source: https://vc.ru/flood/10558-multiple-choice

70% of the candidates did not cope with the Codility tests. HR company lost candidates due to online tests. Then the company decided to continue cooperation with candidates who did not pass the tests, as a result, these candidates successfully passed the probationary period.

Senior Solution Architect with 15 years of experience who successfully passed 5 rounds of interviews showed low cognitive skills (mindfulness, creativity, memory, etc.) during psychological testing, and as a result he was refused. After some time, this candidate got a job in a competing company and successfully works there.

Source: https://dou.ua/lenta/columns/testing-candidates/

Imagine your feelings if you will be asked to take an exam for a driver’s license each time you change a car of the same category. I will not argue that every driver should know the rules of the road by heart, but in reality such drivers are extremely rare. The vast majority of drivers, driving a car for several years, keep in mind only the key rules, for example, traffic at an intersection. The vast majority of drivers have not had a single accident for years. But it is precisely road safety that is the main purpose of traffic rules. As a result, retake ‘exams for the right to own a driver’s license only happens with malicious traffic offenders. When applying for a job, the driver must simply show the license, he is not obliged to take an exam. So why does the software developer have to prove his professional suitability every time? Someone will say that not every programmer has certificates (an analogue of a driver’s license) and that far from every technology can be certified at all. I agree, but only in the case of hiring graduates of educational institutions with no experience, and only if the diploma is non-core. In the event that there is documentary evidence of previous experience in a similar position, I am sure that you can do without testing. In addition, no one has canceled the probationary period, and you can always fire a person during this period if a mistake is made. The employer will not get rid of errors, even if he uses online testing, they will be in any case.

My professional programming experience is 21 years. When changing jobs, I am offered to solve online tests along with other candidates. Repeated solution of these tests led me to the conclusion that this is a waste of time — I almost always get a refusal. For several years now, I refuse to solve these tests. As you understand, all this time I have not been sitting idle, I work all the time and am very effective. A strange situation is observed, I can’t pass the tests, but I successfully pass the probationary period and my salary is going up soon. I conclude that online testing is an extremely inefficient recruitment technology. Next, I will try to explain my point of view.

As I see online testing

Usually, during online testing, the candidate is invited to solve several problems related to writing code. Tests are solved in a short period of time. The duration of the test can be on average from 30 minutes to one and a half hours, depending on the number of tasks and their complexity.

Limited time leads to stress and mistakes, sometimes inability to solve a simple task, which the candidate easily solves in his usual conditions.

The programmer is disturbed by an unusual development environment. Typically, this is the web page that the candidate sees for the first time and he need to get used to its interface in the test process. It takes time to get used to, and this leads to additional stress, which means mistakes. Some online testing systems allow the use of the familiar development environment, but my experience shows that you can copy the code and run it in your favorite development environment only in case of a simple application. If this is, for example, an Angular application, then part of the time will be spent downloading dependencies and building, and in some cases it will require installing another version of Node.js, @angular/cli.

Some tests may look completely stupid compared to the usual tasks of the developer, and in some cases even humiliating. In such cases, the developer may refuse to solve the tests without even starting them. The candidate wonders, “Why should I spend time on this?”

Sometimes there are tests for knowledge of unnecessary technologies and algorithms. For example, sometimes tests come across knowledge of sorting algorithms and the possibilities of their optimization. In reality, most programming languages contain sets of ready-made implementations of most existing algorithms. Detailed knowledge of these algorithms can come in handy if you specialize in their development. But the ordinary developer does not create new algorithms, his tasks are much more prosaic, in which case, why should a person bother with unnecessary information? Such tests can be learned to pass, but this knowledge is not applicable in practice and is needed only for solving online tests when moving from one company to another.

You might think that a programmer should be able and ready to solve problems extremely quickly and, moreover, in a stressful situation. It can be assumed that online tests are aimed at finding such sports programmers. Dear employers, if you have stressful situations, then you have a poorly organized development process and, most likely, unhealthy relationships between team members. In practice, as my personal experience shows, speed and stress are exactly what destroys quality and leads to new stressful situations. In addition, it is often found that in a company where tests are applied, it does not require a high development speed. In some cases, the company cannot even provide the new employee with tasks. Sometimes, a company allocates access to resources for several weeks! Often a programmer walks around the office idle and is practically not busy with anything other than playing air hockey. There is an incredible contrast between the requirements of online tests and reality. The question arises: why was such a complicated selection procedure needed if the real needs for skills are several times less?

There are tests that contain questions about the corporate culture and values of the company in which the candidate is trying to get a job, as well as questions, for example, the point of view of public figures in the industry. To answer these questions, the candidate is invited to watch several videos on the topic of company life. Are you kidding me? I pretend to be a developer, not a vice president.

According to my observations, the higher the competition for a particular vacancy, the more people aspire to the same position, the more sophisticated and more difficult tests, because these companies do not experience staff starvation. They resemble besieged fortresses, and tests are a kind of weapon with which the besieged shoot back from hordes of annoying zombie candidates.

If the company is medium or small, everything can be limited to technical interviews, easy communication, discussion of favorite technologies and even common interests.

So, how to recruit developers in current situation?

Recruiting in the IT industry is a rather complicated matter, especially for HR specialists far from IT. Sometimes you can meet HR specialists who were developers in the past, they are much more effective because they know the technology from the inside. I am sure my personal experience in selecting developers can be useful, as I served as an HR manager with extensive experience in software development. Using my recommendations you can do without online testing. I apologize in advance if I seem captain obvious.

Verification of diploma and, if possible, average mark. For some reason, having a diploma of higher education and information about the university that issued this diploma is completely unclaimed. This has not always been and will not always be. If you see that the candidate graduated from a non-core university, and the specialty is not related to IT or computer technology, or the university is not technical, then it is better to conduct a test or a detailed survey. If the university is specialized and technical, this is already good, there is more confidence in such a candidate. If the university that issued the diploma is on the elite list (Moscow State University, MSTU, Moscow Engineering Physics Institute, Moscow Institute of Physics and Technology and the like), then you need to fight for such a candidate, offering the best conditions with the least obstacles to hiring. Moreover, in some cases, you can ignore even a specialty and an average score. Some may object, paying attention to the fact that modern technologies are not included in the program of the university, which the candidate graduated 20 years ago. In fact, the task of the university does not include training in specific technologies, its main task is to develop the learner’s intellectual and analytical abilities, broaden his horizons and form his worldview, teach him the ability to find and process the necessary information, apply this and newly obtained information to solve everyday problems. We must not forget that specialists can be divided into intellectuals, erudites and idiots. Unfortunately, erudits can be idiots, intellectuals not. But intellectuals are not always erudits. A true engineer does not need to know everything, he must know where to look for the missing information. The presence of work experience. If the candidate has experience in leading companies in the industry, which has 5 years or more, then do not waste time for useless tests, trust such a candidate more. Availability of high quality portfolio. Screenshots, screencasts, schemes and diagrams, repositories in GitHub can be presented as a portfolio. It can be assumed that the candidate will present the work of others as his own. This is not to be afraid, because the employer can easily find out the forgery during the interview or during the trial period. When viewing a portfolio, you should pay attention to whether the information presented is excessively detailed, since in this case the confidentiality of the information is violated. If so, then there is a risk that the employee will reveal the secrets of the company to the future employer. In some cases, you can close your eyes to this sin by requiring the candidate to sign a special non-disclosure agreement. Performing a test task. In some cases, there is no way to evaluate a candidate’s skills other than to see his implementation of a task in the form of a code. A good alternative would be the task of developing a small application using the required technology stack. Statistics show that developers are much more active in completing such a task than in solving online tests. But there are features too. The task should be simple. It must be remembered that the candidate most likely still works at the previous place of work and that he can complete the task in his precious non-working time. If this is a weekday, then the candidate may be tired and not able to solve high-quality and long-lasting difficult tasks. Performing a difficult test task on a weekend can be just as difficult, as these days are usually carefully planned for family responsibilities and relaxation. Some unscrupulous companies, giving as a test task fragments of the technical requirements of the systems that are in their development, receive almost free code for the implementation of some modules. An overly complicated test task may cause a candidate to suspect that he is being used in this way and that he will refuse to fulfill it. It is necessary to make the hiring process as simple and short as possible. Remember that the lengthy recruitment process leads to the interception of a candidate by a more agile HR specialist. This situation does not exist in every industry, but in the IT industry there is a constant shortage of specialists and high competition between employers. At the same time, remember that people never value what they did not pay for and what they got for nothing. Minimum time and effort required by the candidate must be present. This may be, for example, several interviews, some of which can be conducted via video. Participation of the future leader in the hiring process. A recruiting specialist can do his job perfectly, and a candidate can successfully pass all the tests, but the future manager may refuse a new employee, for example, due to psychological incompatibility or some other hostility. Such a decision can nullify all the work done, therefore the future leader should participate in the initial stages, and the candidate should also know that he is facing his future leader. In some companies, the manager to whom the staff is selected is limited and cannot make a decision on hiring or somehow influence it. But this will sooner or later lead to undesirable consequences and bad teamwork. Do not forget that any human community is a hierarchical structure. Even if a company destroys internal formal hierarchies, they will in any case form spontaneously. And it’s impossible to completely get rid of the hierarchy, the company has at least one level. This is due to natural laws — any stable structure in nature has a hierarchical structure. The candidate is accepted into the company as a rule for performing certain tasks in some direction, where the existing manager is no longer able to close the flow of applications with existing resources. A candidate who comes as a subordinate must support the leader, help him, must not fight against the leader. There should not be strong contradictions or hostility between the leader and subordinate. Therefore, the participation of the head in the selection of personnel is very important. The participation of technical specialists in the hiring process. Many HR managers hire technical specialists for an interview because they do not have a sufficient level of technical knowledge. In this situation, unforeseen circumstances and unexpected negative reviews of these specialists may arise. The fact is that the candidate who is in the interview should present to the audience all the best that is in his experience. Some achievements may cause envy and annoyance of future colleagues, and some may feel competition from the candidate. Be careful. Intuitive decision making, first impression. I am already a middle-aged man and in my life I managed to see a large number of people. The experience of communication and teamwork helped me develop one useful skill — reading a people. I can’t say that this skill is developed perfectly with me, I study all the time. But I drew attention to the fact that the first impression that a new person I met in the first few seconds makes upon me is subsequently confirmed. After the first seconds of communication, when the conversation begins, the impression can change greatly, as the attention of the interlocutors switches to the subject of the conversation and both manage to disguise themselves. But after about two to three weeks, I am convinced that the first impression was very accurate. Of course, it is present in the form of some kind of informal intuitive sensations that can be both positive and negative. Engage older employees with life experience and strong reading skills. This skill cannot be obtained in a short time, it must be consciously trained. The book “Reading People, Jo-Ellan Dimitrius and Mark Mozzarella” will help you develop these skills. The author of the book has worked for a long time in an American court and over a long career has learned to influent the decision of a jury by selecting the right jury. She learned to read people in the short time of the first meeting. The book, in my opinion, has no price, since it is not an ordinary pseudoscientific psychological teaching, but it is a concentration of great practical experience. You must understand that in the short time at your disposal, you will not be able to fully understand the essence of a person and his internal organization. An important decision in conditions of lack of information can and should be made with the help of trained intuition. I would like to share some practical recommendations. 1) Imagine the near future, in which the candidate for a long time and effectively works in your team. 2) Answer yourself the question, is this picture real, is it possible, is it true or false. If the feelings are negative or skeptical, most likely there is something to think about. To increase the effectiveness of this method, ask yourself these questions in the evening before going to bed, in the morning you will receive the most accurate answers. Please do not ask me why, the explanation of this mechanism will go far beyond the scope of this article The book: https://www.kirkusreviews.com/book-reviews/jo-ellan-dimitrius/reading-people/ Short trial period. Any recruitment methodology will not insure you against errors, you should not be afraid of them. The cost of error can be significantly reduced by shortening the trial period. Choose a period of time that will be sufficient for you and your team to understand whether the candidate is right for you or not. The shorter this period will be, the better for both the company and the candidate. It is clear that the company cannot be turned into a passage yard, since the reception of a new employee is accompanied by the allocation of resources — a computer, a workplace, accounts, access to systems and confidential information. Protect your company with a strict non-disclosure agreement. In addition, a new employee should only gain access to critical resources and information after passing the probationary period. Buddy. Give a hand to a beginner and you will find a friend. From the first minute of work in the company, a new employee should have a person who is able to help in any situation. Buddy must embody hospitality and be prepared to answer countless even the most stupid questions. Issuing access to resources. New employees cannot work without access to company systems. In some cases, access is granted one to two weeks after entering work. It is unacceptable. Allocation of access should take no more than one day, and ideally, a workplace with all necessary accesses should be allocated in advance. Test day. The developer is invited to stay in the role for which he claims. It often happens that the requirements of a vacancy, interviews and tests do not give an idea of what the developer really expects. For example, it might be legacy code with legacy technology. In addition, the candidate can assess the time and convenience of traveling to the office, the office itself, the team, workplace, computer, speed and quality of the Internet, places to dine, etc. The team and future leader can also look at the candidate, look at him in business.

Are you still planning to conduct online testing?