Hello!
As promised, I continue to publish about management in IT. In the previous
article I told you what it means to be a Team Leader. But what a lead without a team? Today, how to recruit cool people, not having large resources, and when no one knows about you.

A small remark: all companies are different (I wrote about this in the first part). I will talk about the case when you and the head of department, and Team Leader in one person. And they themselves must recruit a team. That is, these are the most difficult conditions. When your company has a personnel department, everything is much simpler, but about this I will also insert my 5 kopecks.
')
How to hire people
They do not appear from the air, so everything is pretty standard here:
- search for specialists in the labor market;
- recommendations. In Europe and America, this is not very common, but here it is common practice;
- dragging people you know well from your past job. This option is very good, but with one condition: you choose employees, starting from professionalism. Otherwise it does not work.
How companies hire people:
- a large and well-known IT company. Working there is the dream of many programmers. In this case, attracting them is not difficult;
- big company where IT is not the main activity. Now there are a lot of such, they hire engineers to automate their work. These companies have all the resources for HR: managers are actively promoting their cool IT departments, attracting specialists by all means. Gradually, this information scatters in professional circles, and when an offer comes from such a company to a person, it agrees;
- startup with investments. As a rule, there are enough resources to hire a good recruitment agency. You can offer good conditions, a class A office in the center, various bonuses, etc. There should be no big problems with personnel;
- small companies that live on what they earned (the majority of such companies). Most likely they do not have the money to immediately attract qualified engineers. At the same time, the office is located in the place where rent is cheaper.
And we will consider the “funniest” case - the last one; in one of the projects I was faced with precisely such conditions. I was allocated a budget, of course, below the market. The place of work (it’s not possible to call the office the language) was above the car repair area, on the street it smelled like diesel. And it was all 10 minutes by bus from the subway. But at the same time, the task was to make a rather complicated online service from scratch. On the face of many applicants who came to the interview, read genuine surprise.
How to live with it
First thoughts: “We need to look for a new job, it’s unrealistic to do something here.” But practice has shown that everything is quite real. There is a cool MoneyBall movie about a top manager who ran a baseball team. There are very good words in the beginning, when the main character tries to solve the problem of recruiting players into a team in the absence of money for them. To paraphrase, they can be applied to our situation: “If you try to hire employees using the same methods as other companies, then you will not hire anyone. Need to change the approach.

The most important principles:
- need at least some management experience, and it should not be the first. If you were offered such a position, but you didn’t do it before, the probability of failure is great. I understand that there is a temptation for rapid development and career growth, but the point is that the experience should be successful;
- you must clearly understand who and why you should hire, and at what time. If you write a service, and there are 4 months for it, then there is no point immediately hiring a tester and an admin. At the beginning of the development of the client part yet, that is, there is nothing to test. And server setup is usually needed closer to the release. Take a piece of paper and on the left side make a list of employees and their duties, and on the right side - the functionality that needs to be implemented. If for someone there is no work, then boldly cross off;
- Identify your “audience” and where to find it. Objectively, you don't have to hire super professionals, your company has no money for it. But this does not mean that specialists with less experience, but who want to develop, will not grow into professionals. I strongly advise you to pay attention to the craving for development. And still experts should grow together with service (business), to the abrupt professional in a modest ordinary project can become boring, and he will leave;
- In addition to hh.ru and other similar resources, there are social networks and just friends. Publish vacancies on your wall, ask friends of programmers to repost, write to thematic groups. You knock, I myself hired a few people;
- Offer something that others do not have in the market. In my case it was a battered plank of the project itself, that is, I initially planned a complex and interesting service: a client-server application on the Symfony server, react / angular on the client, no CMS, and only modern technologies.
In a dialogue with the founder, when I first came to work at the company, the idea was born of creating an aggregator of used spare parts for automobiles in order to combine car assemblies. But he could not afford the big expenses. If the plans were not so Napoleonic, then he would have done everything differently. For developers who crave experience, such projects are more attractive because everything in them is initially done correctly. Many are willing to sacrifice a cool office for valuable experience.
Drafting vacancies and preparing for interviews
Any intelligent HR will tell you that a positive response by 90% depends on how you made the vacancy. Everything is simple: go to HH and see the vacancies that would interest you, and try to write the same way. In no case do not lie, write only the truth. If not at all, make a list of skills that are relevant to your project, and contact HR. Save time, but it is not very expensive.
Starting the search, use all resources: sites with vacancies, social networks, friends, etc. Be sure to buy access to the database with a summary. Yes, searching the database takes a lot of time, but the talented team and successful project are worth it. Also write the standard presets for responses and failures.
Now about the preparation for the interviews. "What for? I am conducting an interview, let the candidates prepare! ”- many might have thought. But this is important, you need to prepare for each job. Google to assist in drawing up a list of questions that you will ask during the interview. The list is required, otherwise you will forget to ask something.
Watch lectures or speeches on the topic of hiring in IT, get a lot of useful nuances. Also make a small test task, for 15 minutes, not more. I am opposed to a person sitting opposite with a pen, deciding something for about an hour.
Later, I compiled a
questionnaire on important technologies for us and sent them to applicants. It did not require more than 10 minutes to fill out, the candidates simply put their grades in front of each technology. The results have already given a clear idea of ​​the specialist’s compliance with our requirements, in 80% even such a questionnaire was sufficient.
An important remark: you cannot be an expert in everything, so take advice from professionals or even call them for help for an interview. You may spend a little money, but save a lot more in the future. Also study the subject yourself. For example, you need a tester, but you do not know anything about it. Do not be lazy and open Google.
So, you have n candidates who are ready to come to your interview. In this case, you and so terribly do not have enough time, so you have to save it. Take the phone and start calling or writing them in the instant messengers. First, talk briefly about the company, and then literally within 5 minutes, ask to tell about your experience. 70% fall off already at this stage. Or something does not suit them, or you.
How to understand that a person does not suit you? It's all pretty simple: either he has the required experience, or not. You can always ask about some technology in a conversation, it's hard to lie on the go: if a person confidently talks about his experience, then most likely it is. Yes, and the voice is often easy to identify. Well, the tales of some inexperienced juniors about the development of space ships will brighten up your everyday work.
How to conduct interviews
Alas, this is a process where everyone lies. Your task is to find the truth. Of course, the very best not to lie.
Let's start with what you should not do:
- Do not give a logical task, not related to work. The applicant must not carry goats and sheep on the boat, weigh the balls and go towards the train at a speed of n. This does not help you find a good programmer. On the contrary, just waste time and miss valuable shots;
- Avoid voluminous test items. I believe that in 10–15 minutes by simple tests it is easy to figure out the level of knowledge of the basics. If you can see that the person is experienced, then you can not give a test task at all, do not waste your and his time. And the interview is stressful; don't aggravate;
- Do not ask about those technologies that are not in the project. If you don’t use something, you don’t need it now;
- Do not go into narrow specifics. Do not focus on any particular framework or library. This will not tell you about his real knowledge, but will only give an understanding that he worked with some technologies. Ask better about OOP, patterns, SOLID, etc. A person who knows the basics will easily understand any framework or master a library;
- do not require clear definitions. I understand that structured knowledge is important for a programmer, but understanding is more important than knowing a specific definition;
- if at some point you understand that the applicant does not suit you, end the interview. Just say that you need a more experienced person and you do not want to waste his time. The majority perceives it quite adequately. There is no point in continuing the interview in order to say “no” at the end;
- First of all, evaluate the professional qualities. You need people who will solve problems in the project, you do not live with them. This is more important than gender, age, education, past job. I met cool developers who were over 50 and former VDVshniki who mastered programming;
- Do not take people if they do not fit. Especially if there is no potential for growth in them. Do not make concessions to relatives and friends, this is the path to nowhere;
- Do not ask about highly specialized technologies. Even an experienced engineer can not answer, because he did not work with them. Of course, if you are looking for this technology, he should know it.
And now what to do:
- Take colleagues for interviews. Their opinion will be only a plus. And they can figure out some nuances better than you. But forcing for extras no one needs to drag;
- Listen carefully to the job seeker about the experience. You can learn a lot from this, clarify what is interesting to you, and many questions will disappear themselves;
- Give preference to people who know how to think for themselves, and not just solve the problem. For example, in a simple test problem, do not give parts of some data. If a person starts to reason and ask, this is a plus in his piggy bank;
- To test the knowledge of patterns, do not ask to write them by heart. Better offer a problem closer to life. For example, to make a designer for the studio, which makes the repair of an apartment. There are different doors (metal, wooden, plastic), different windows (plastic, wooden), etc. This will allow you to see how the task will be solved architecturally. First, for a person it will be easier than rewriting jagged knowledge, and secondly, you will see how he approaches the solution of specific problems;
- Give people thinking tasks, preferably from real life. Ask the applicant to argue out loud, as the answers complicate the task. The main thing is not to find a solution, but to find out the approaches of a person;
- Ask a little questions from different areas, do not delay the interview. 40 minutes is enough, maximum hour;
- tell yourself about the project, ask the applicant what else he would like to know, try to get interested. Here you have an advantage over HR, who are usually not aware of the project. Do not be lazy and set aside for this time at the interview;
- tell me everything honestly. No need to lie about technology and responsibilities. If you too embellish the working conditions, then there is a chance that a person will leave after the first two weeks of work;
- motivation may be more important than knowledge. There are people with burning eyes. Let them have little experience or not at all, but there is a desire to develop. Tell them honestly that they don't have enough experience, but you see potential in them and you are ready to give a chance. I took 4 people with little experience, they all turned into great specialists. By the way, such an approach is often used by large companies; they are raising new people from newcomers. And you can do it;
- make a visionary choice. If one candidate knows a lot, but you see that he is not ready to do any work or is trying to push his conditions already at the interview, and the second is not so experienced, but with glowing eyes and full of enthusiasm, then take the second. He will not spoil the atmosphere of the team, and this is a very important aspect. If others see someone mowing, it will dampen the team. Such as the first, it is difficult to manage, and if you have little experience in management, do not create additional difficulties for yourself;
- if you like a specialist, rather take it. Do not take long pauses, call the next day optimally. People were taken away like that in just a day;
- Learn from the applicant about self-education. This will show how he is able-bodied. Books, conferences, online courses, hackathons, whatever, these are all advantages for him;
- Ask the candidate what he would like to do and whatever he would not. If your interests do not coincide, and you take him, sooner or later he will leave you. And you will spend time on his learning and development;
- if a person does not fit or there are other reasons for refusal, inform him about it. Make a couple of standard blank responses and spend 3 minutes to send. I think everyone hates when they are not answered. Do not do it yourself. In addition, a person can grow and come to you again;
- do not know whom to choose? Just write on paper all the pros and cons. Those whom you did not take, but you liked them, put them in a separate daddy. She will help you out more than once;
- Do not be afraid to hire people stronger than you. I saw the candidates chop with the words: “Yes, you saw him? He will give me a hand! ”But with professionals you will achieve success faster.

Dismissal
When should I fire? Obviously, if the employee can not cope with their duties. There is an important moment for you - the reasons for this, and it is desirable to find out. For example, you could be guilty if you incorrectly entered it into the team. I am already preparing a separate material on this topic.
Also, your expectations might not coincide with reality. For example, he does not cope with the tasks for which you took him. For this and there is a trial period. Usually you sit down and substantively analyze the situation without any negative. If you can not fix it, then you break up. In some cases, it is possible to find a solution, and the person remains.
It is necessary to dismiss a person when he constantly kosyachit and can not cope with the tasks on time. To keep him and try to re-educate is a waste of time. It is easier to dismiss and temporarily take on his responsibilities. I somehow did not dismiss the person, because there was no one to replace, but then I paid. There were a lot of key responsibilities on him, and he was constantly breaking deadlines. Conversations and others did not help, as a result, two serious facacs happened, in which, of course, I was to blame, and the company lost money.
Cases of drunkenness, absenteeism and other ugliness will not disassemble. Dismiss!
It may also turn out that the person does not correspond to the values ​​of the company and does not want to separate them. This is bad for the team. The boat will swing harder, in the end you can be left without a command.
It is necessary to be able to dismiss people too. The first few times you feel guilty, but with experience it gradually passes. Everything should be clear in the case: “Vasya, you are cool, but unfortunately we have this and that (we explain the reason), therefore the best solution would be to leave.” In the same film MoneyBall there is a very good example of how the main character teaches to fire a person, I recommend to watch it.

How the hiring process will change when the company grows
In fact - in any way, all the principles will remain the same. Only you will have an HR, to whom you will explain what you want to receive, and he will be able to search on his own. HR can determine which person wants to develop and which does not, who is difficult to manage, and who is not. If you are already a CTO or a head of direction and you have a Team Leader or someone who can become one in the future, take them for interviews, let them study. Then at some point they will be able to conduct the interview themselves. You look, sometimes you help, then you arrange a debriefing, and then they themselves will be engaged in hiring employees to their team. But this is about growing Team Leader, and about this in another article.
findings
Many will say, Team Leader should not do this. And they will be right, in the ideal world of a big company should not, where all the processes were debugged by another enthusiast. But answer yourself the question: “What do you want in a year from the company?” In order for it to grow, the team must also develop with it.
The more carefully you select people, the less often they will leave you. For three and a half years from my team (there were only 30 people in it), only three left, and then two for family reasons.
Use different techniques, go to conferences, communicate with people. I myself found two employees. Engage social networks, communicate with people from universities, from there you can also attract young professionals, for example, through practice. All doors are open for you.
Team Leader recruits a team for its tasks and its vision. Everyone has strengths and weaknesses, there are no people who are absolutely strong in everything. Your task is to discern the potential of each person at an interview, test it on a trial period and eventually assemble a team so that people complement each other and work as a single mechanism. Hiring talented people is not a search for super-professionals who can solve any problems. First, they are few, and secondly, it is very expensive. Your task is to find people with potential and be able to open it, help them with growth. And remember that with them you will grow.
Thanks for attention! Next time I will talk about how to build an effective development team.