
Looking at the history of my test assignments, there are patterns that I would like to warn colleagues about, because such cases occur regularly and, most likely, regardless of the specialization of the developments. For example, I came to such conclusions, having more than a dozen tasks performed in different years with a volume of 2-5 business days each. And the conclusions are so paradoxical that, I think, they will cause controversy and surprise among those who did not. I will formulate the main conclusion for the beginning, and then I will show the rationale with examples from practice.
Conclusion : (sophism) a test task with a volume of more than a day with the main goal (employment) is unprofitable to perform.
In the job market, sometimes (5-10% of cases) there are offers from companies to do a “home” test task. It usually takes at least several hours: simple tasks try not to be given. It turns out that it is of great importance for the applicant, when, in what phase of communication this task is offered, and how large is it. It does not always mean that the task is reasonable or beneficial to perform. Very often the tasks contain flaws in the formulation, and their implementation is less profitable than the strategy of non-discontinuous job search among companies that do not offer tests or offer less complex and faster tests (for example, directly at an interview or via Skype online).
In the course of several years of work on the web front-end, tasks were periodically met, which were not always beneficial to perform. I can even say this: not a single case of hiring with a test task was successful for any party - neither for me nor for the employer. At the same time, recruitment, built on slightly different principles, was successful. So, in the performance of tasks, I got used to seeing not the goals that, in theory, the other side, the employer, sees in them. In fact, they do not perform their main function. The main function of tasks (8 hours or more) does not work in most cases.
')
1) do not guarantee the justification of the time spent, even in the case of error-free execution;
2) create disproportionately large efforts towards this vacancy;
3) possible manifestations of irresponsibility from the position of the employer: non-information from HR about the test results.
And since the number of vacancies with tasks is no more than 10% of the total number, even a strategy of not fulfilling them makes sense! However, I do not call for this: sometimes it is necessary to perform tasks from the “love of art”, but at the same time (paradox!) You can not count on a successful reception, i.e. they should not be done for the sake of employment.
Deciphering sophistry
Let's look at a couple of such beautiful examples that were performed in different years and already with the understanding of this paradox. Those. I performed these specific tasks no longer for employment, but with 2 nd or 3 rd goals: to create a portfolio for myself and to write useful utilities for myself. Why the experience of performing tasks led to such conclusions - let's talk in the review process.
Experience is limited to the scope of development for Javascript / CSS / HTML, but I think that the conclusions will be true for other areas of development and programming.
As in any case, the use of test items is a great art, and not everyone owns it. I want to illustrate with a couple of vivid examples from practice, when tasks, sometimes even potentially paid ones, did not lead to a positive result, although they themselves did not detect abilities or inability to work.
The paradox of long assignments was noticed for a long time: all the vacancies where assignments were, turned out to be not mine, regardless of the success of their fulfillment (or rather, one company was like this, but I spent 4 times more on the assignment than necessary, because CSS is a concept of browser compatibility, and you need a lot of tests for quality results). In the end, I think, not because I performed them relatively badly, but someone “successful” performed the next task “good” each time. The reasons are deeper - in psychology, in the system, in the art of drawing up tasks.
Somewhere in 2011, at one of the interviews, we did not agree with the employer on the views on the rate (this was after the interview, while discussing the salary amount), and he, in the presence of HR from an outside organization, made an unexpected decision: pay it. Volume - about 3 days. They wrote a contract, I started to do, even did. It turned out such a beautiful widget with graphs, exactly according to the task and screenshot of the sample. But, as it is not surprising, and underwater stones of psychology were formed here.
Task - widget with graphs
Link to the demo.The formulation of the problem required the support of various browsers. And the rounded corners of a beautiful widget were not supported in any way, as is well known, by IE6-8 browsers. And the PIE library could not be used - it is very loading engine.
On this and played a cunning employer. More precisely, not even he, but the worker overseeing me — I don’t know why he personally needed to turn the contract into a deliberately disadvantageous one. They remembered browser compatibility and the line in the contract “The widget should work the same in all browsers.” It formally meant that in order to support IE6-8 rounded corners (2011, he was still alive!) I need to increase the amount of work by about 40% make cutting pictures on all rounded corners and do another 2 days of deliberately rough work, which nobody really needed, only the widget's consumer (PIE cannot be used). She would not show anything from skills, and assumed that the customer would really need the widget, and he did not want to transfer this part of work to full-time work (after reception).
Recall the moment that the final offer amount was still unknown, therefore, even having done the work, I could not get a satisfactory offer. The solution came about by itself. Even having promised to finish the work, I could not find a reason to finish it. After 2 days, I received a job offer from a large company after 1 interview and without test assignments, and on the 3rd day I worked there. There was no point in finishing off the formalized test task, losing almost twice his salary level. At the same time, the customer received a free part of the test task and could be satisfied with it, and I received a test page, which I can show as an example from my works. Let it - time spent, but according to its results were:
1) decorated test page with 3 instances of widgets and parameter settings;
2) the experience of using the inheritance of DOM objects and the HTML template engine;
3) use of the library for plotting graphs;
4) an example of working with JSON and XML as input.
The potential reward for the test task turned out to have no value at all, for which the task should have been completed. Thus, the task did not perform such functions:
1) not interested in the material performance;
2) the interpretation of the contract by the customer has translated it into the category of materially unprofitable;
3) distracted from the main task - search and employment;
4) was carried out under conditions of uncertainty of the conditions of the subsequent offer (offer).
The fact that the work turned out to be personally useful to me turned out as a result of the fact that I tried to solve this problem not for the sole purpose, but for the purpose of reusing written code. If you set a dual goal for a test task, you can often agree to its free execution.
After this incident, there were still at least a dozen test tasks of various kinds in the following years. As before, they didn’t take a job at all with the completion of the task - those who wanted to give the task were no more than 10%. For a lazy job seeker, you can even be cynically advised not to perform the tasks ever - and in this he will not lose much. But, nevertheless, they sometimes play a useful organizing role, as open source in the world of commercial software.
If the tasks are aimed at self-education of the applicant and solve a task that is useful for the developer, then this task can sometimes be viewed as a “matter of honor” and as a way of personal development. You can perform the task without hesitation, if time permits, and the task comes from the environment of an authoritative organization, to talk with representatives of which will be useful in any case. So it was in 2013 with mail.ru.
Tasks - text filters
Link to demo 1.Link to demo 2 (highlight words).Before the first meeting, they sent a beautifully formulated test task of 2 tasks, the solution time of which seemed to be about a working day or a little more. It was immediately clear what could be its second use. In addition to the example of your code for the not quite trivial task (two), you would get an example of a fast JS filter over large text data sets. To illustrate the speed of work, I generated a random set of words, about 100 thousand, and then it searched for words based on a sample of a word fragment entered by the user. In the first task, they were highlighted, in the second - only the lines with the found fragments were shown. Of the 1000 lines on the screen instantly left 5, 2 or not at all, zero lines.
The basic practical use of the assignment also oddly vanished. Yes, I was invited after this for an interview, it was successful, everyone liked everything, but it turned out that mail.ru assumes several interviews, and the next day I was offered a job in another company, after an absentee interview via Skype, and 2 times closer to home, and with not exactly the worst conditions. Again, it was not possible to practically realize the ephemeral potential of the test tasks, again they remained to fulfill their non-primary goal in the future.
Tasks that are unwise to perform
At the end, I would like to recall such tasks (test tasks), a short analysis of which (20-30 minutes) led to the conclusion that it was absolutely unprofitable to perform them. This was usually written to the employer with a justification why the implementation of such a task would take an unreasonably long time and give me, as a job seeker, an unjustifiably little chance of choice. Consciously, another 30 minutes of writing is spent on this, but we get an almost correct separation, except for the fact that the employer has to actually be embarrassed, arguing that he is wrong. Usually, employers either canceled the task without new ideas, or did not respond.
Why is it unwise to perform such tasks? Usually, these are tasks that require more than 2 days to solve (more than 16 working hours), for which there is no time or I don’t know anything about the employer. That is, he even could not speak about the fork of the salary, about the working conditions, but to immediately give a task, which is often called “small”, but at the same time “not for 5 minutes”. Already by such phrases one can understand that we are talking about 2-5 days of unhurried work. Very often, such tasks are accompanied by a fuzzy formulation, and you can practice at your leisure in the search for uncertainties in the formulation of the problem. For example, nothing is said about the behavior of a web form in the case of boundary conditions (data is zero or very much), the conditions of validation of some cases of filling out forms are not specified, it is required to “use Angular” where it is not necessary to use it (because reloadable page). In some such puzzles, it is guessed that the person who asked it has never done it.
In such cases it is necessary to recognize the “rot” (dampness) of the task in time and “not to buy low-quality goods”. A diplomatic, polite approach helps to maintain correct relations with the employer, but most likely, this very thing speaks about the poor soundness of the campaign to find candidates, and here it is impossible and senseless to teach the employer, being on the other side of the vacancy.
Practical cases of such ill-conceived tasks over the past year are remembered by two; in both cases, before the interview they were offered to “work” for about a week, it is not known for what purpose. More precisely, in order to get the right to speak with the employer further.
Here, of course, it is not necessary to explain that 95% of other employers do not put such obstacles, so saving a week or two on refusing such offers will help save a lot in living expenses. And the vacated time is more profitable to spend on your own projects or on a normal job search and another self-promotion in the resume.
What tasks would be welcomed
You can understand the employers who want to see live examples of the work of applicants before they hire them. As a variant of mutually acceptable dialogue, there is such as the execution of tasks online via Skype / Jabber, with immediate commenting on the train of thought.
In such tasks, a huge plus is that the applicant sees that the interviewer does not care how much time he spends. The interviewer himself will not waste his time if, in the course of the work, the inadequate abilities of the applicant will be understood. Tasks can be solved expeditiously, conditionally, or replace one another. They talk about 2-hour similar telephone interviews, but in practice I had such a 20-minute interview, which was then continued at the face-to-face meeting.
Another option acceptable task may be, if it involves a waste of time about 2-5 hours. Maybe with an immediate telephone call at the end. To create such tasks you need a certain skill in choosing the balance of the complexity of the solution. You can not make the task too difficult. You can not think of a problem with an unobvious solution - you need to even suggest a solution, because the main goal is to check the availability of knowledge, and not to spend the time of the applicant. I tried to create examples of such tasks myself, being in the employer's place, from the other side of the vacancy. What happens? Even just assigned tasks are not all able or willing to fulfill. And here there is a time limit, which the applicant is willing to spend, and, perhaps, vaguely formulated conditions for the implementation of this task.
Recall that it is very important for the applicant to know on what condition he will agree to spend his time on the assignment. It makes no sense to give the task to clarify the conditions of employment, except, perhaps, the most simple tests on the knowledge of arithmetic.
As a result, we can say that the test tasks for the applicant is not a very safe tool for selection. It is very easy for them to hurt in the recruitment campaign, acting without regard to the psychology of the applicants and indiscriminately. This is the same as if you put an unjustified price on a product that has not yet been advertised. Such a job is simply "not bought."
Advice to applicants:
*) having heard about the test task, try to estimate its volume of performance on the basis of the formulation of the task, estimate the errors and uncertainties in its formulation, in order to clarify them before performing;
*) evaluate whether it will be profitable for you to spend time on implementation, after weighing the probability of a successful reception; keep in mind that promises to accept such a salary in the case of successful implementation, most likely, will not;
*) Evaluate whether it is profitable for you to do this task right now, in the process of looking for work and other interviews, and if you get a useful product as a result (in a portfolio, in an open-source project);
*) check with your employer if he will object to the publication of the solution of his task by you for your own purposes.
*) if all questions - the answer is "yes" - start the test task!