Hacked the system: how we changed the selection and adaptation of developers
Last week, our colleagues - Evgeny Shishkin, development manager, and Lydia Samkova, head of the IT department, spoke at the HR API . We share the outline of their report on the processes of selection and adaptation of developers in the Contour.
Over the past three years, the number of developers in Contour has doubled. By the end of 2018, their number will be over 1000. The company has new products, which means that the number of teams is growing - now there are more than 50. Against the background of active growth, our selection and adaptation processes have stopped working.
We are not the first large IT company to face such a scaling problem. Therefore, we have studied the experience of others, sharpened it for our realities and are ready to share it.
Frame from the film “Harry Potter and the Philosopher’s Stone”
As it was before?
The process of selection and admission was built around the rating of teams, which tried to take into account the needs of business and teams. First, the candidate was invited for an interview with the teams with the highest priority in this ranking.
At the interview, which lasted for 1.5–2 hours, they tried to find out how the candidate met the technical requirements and expectations of the soft skills. If the candidate did not fit, another such interview with the following teams in the ranking was planned. And so on, until we found the right team.
After that, a team interview, an acquaintance and a final interview with the head of the department were held. Adaptation newcomer held in the team, where he was accepted.
Problems of such a selection
- Serious discomfort for candidates who often had to go through 5-8 interviews. In one interview participated from 6 to 10 people.
- The selection process was delayed for months, we lost interesting people.
- The ranking of the teams was opaque. The teams could not affect the place in the ranking, some waited for candidates for years.
For the candidates, this scheme also looked sad. So, we had several dozen teams with open vacancies, but the candidate had no choice. The newcomer was the idea of the entire company based on the experience in one team, which we offered him. And if expectations and reality did not coincide, then the motivation fell, and he could leave (35% of all departures were for those who had not worked for a year).
The old scheme did not have a unified approach to adaptation. Each team spent their time teaching the newcomer to general contouring practices, tools and solutions. Adaptation took place everywhere in its own way, but somewhere it was not at all. This is also the cause of serious losses.
What have we changed?
We believe that people need to be accepted not into a specific team, but into a company. Therefore, they built a centralized system of interviews, creating a special community for this - a guild of interviewers , and canceled the ratings.
The guild conducts technical interviews where the candidate passes 3 mandatory sections: demonstrates his practical skills in writing code, knowledge of algorithms and data structures, design patterns. There is also an additional section for experienced developers, where we check the candidate’s technological outlook.
If everything is good from the technical side, we conduct a final interview, and in case of mutual sympathy and successful agreements we hire a person. And then the newcomer gets for 3 months in the bootcamp, where they occur:
- total immersion in company context and development processes,
- crash course training,
- internship in several teams.
And only after that the already formed contourist chooses the team where he wants to work.
Team selection has become a conscious preference for the candidate. In this case, we give teams the opportunity to influence the selection process: to tell about themselves, the project, tasks, processes and technologies.
They took as a prototype a solution with the same name “bootcamp” from Facebook .
Now the bootcamp structure looks like this:
- General immersion and acquaintance with the company (1-3 days),
- Training: crash course and meeting with teams (4–10 day),
- Internships and team selection (3–12 week).
The first three days of the bootcamp are mandatory for everyone, they are great to help shape the overall context. Then there is some flexibility, someone goes through training on the crash course and through internships, and someone gets right into the team.
One of the most important parts of the first days is a story, what you should pay attention to when choosing a team, and about tools that help navigate our variety of teams. The main tool is the classifier of commands.
Butchampers see all the teams that have open vacancies. They can filter the list of teams by technology, platforms, cities and roles in demand.
Crash-course allows you to equalize the overall technical level of employees at the output, to develop an idea of how it is customary in the company to write code, what practices and technologies we use.
Butcampers get acquainted with our infrastructure. Beginners at the very start are vaccinated, motivating them to continue to use best practices and common infrastructure solutions.
The course is divided into blocks - full-time classes with lectures, practice and homework. While the course is designed primarily for developers backend. Some blocks are adapted for front-fenders, soon three more blocks will appear for them.
At the crash course, we invite not only bootkampers, but also all comers from the development teams. Classes are usually held in pairs, and this is an opportunity to work together for beginners and experienced employees. For bootcampers, this is also an additional opportunity to talk about different teams and get "unfiltered" information.
Meet the teams
After the first three days, the bootkampers make a short list of the teams of interest, where they describe the reasons for their choice. You can clarify information about the team with mentors - employees with a wide context on projects and teams. Mentors ensure that the choice of a novice does not disagree with his motivation.
Now it's time to get acquainted with the teams :) But the campers set up meetings on their own, find out all the important moments for themselves, and agree with internships with the teams they like.
We share shortlists with motivation with all the teams that have vacancies. Teams gain access to information, including interview artifacts. Building on this information, teams can get in touch with the guys and arrange meetings and internships.
By the end of the second week, everything is determined at least with the first internship and goes to it. And this is the third, longest, block in the bootcamp.
On average, one internship lasts 3-4 weeks, we recommend to undergo 2-3 such internships. Our teams are really very different in their processes, in the atmosphere, and in the subject area. It is not always possible to hit the target from the first time, so several internships are important.
After internships, the guys choose a team where they would like to continue working on an ongoing basis. Naturally, this also takes into account the desire of the teams themselves to continue such cooperation.
We record how many times the team got on the short lists of bootcampers, how many internships have passed and how many of them ended up choosing them. We share these statistics with teams. It helps to fight the fear of competition for interns with top teams. There are popular projects, but the final distribution of the bootcampers occurs evenly.
What was the result?
Since August 2017, we have passed 10 sets of the bootcamp, at the end of May we launched 11 sets.
- Expand the selection funnel at the entrance. Now we do not need to evaluate all the risks of candidates at the start.
- Get experienced and strong candidates. Pros come to us more eagerly, because at the very start we give them the opportunity to make an informed choice of the project and team.
- More actively engage in a distributed development format. Now you can simply take and work with the intern remotely.
- To organize a centralized, high-quality adaptation of newcomers.
- Get harmonious employee-team pairs. An employee chooses a team with the tasks that will develop it to the maximum, and the team gets a developer motivated to solve the problems of this particular team.
- Get the people of the company, not the employees of a separate team. It also has a very good effect on employee engagement and increasing internal mobility.
By the way, not only programmers pass through the bootcamp. Now he is fully working for testers, we are gradually connecting analysts to this process, we have designers and designers on the line.
How is the selection and adaptation of developers in your companies? Could bootkamps help you too? Share in the comments your interview experience in different companies.