A Prediction System to Better Estimate Talent Needs for Technology Projects
As a rapidly expanding service company, Netguru’s biggest challenge is to match the existing demand for its services with our in-house talent. It is nearly impossible to achieve a perfect balance in which the company has the same number of engineers and designers with a specific skill set that is needed for all our ongoing projects.
When there is an increase in demand for our services, we recruit more people. But onboarding takes time, so it’s impossible to have the people we need exactly when we need them. Moreover, we can experience the opposite problem: when demand falls, we might have people who don’t have any projects to work on.
This situation is very common for project-oriented companies such as Netguru. The industry term for it is “bench”. It is unhealthy for the company for many reasons:
- Reduction in cash flow: Benched employees keep getting paid, but their salaries are not covered by revenue from projects they would be working on.
- Talent disengagement: Employees want to grow and use the skills they were hired for. If that’s not happening, they might become bored and contemplate leaving the company for more exciting projects.
- Damage to the company’s culture: When a lot of people are feeling disengaged, it might influence the whole company and give other employees a negative image, increasing dissatisfaction and turnover.
When analyzing the bench is not enough
But that wasn’t enough. We needed to know if we’re lacking any kind of specialist that we might need soon. Missing certain developers (e.g. iOS or Android) may force us to hire external contractors, who are more expensive and do not always meet our standards, or even miss some business opportunities. We wanted to avoid that, so we set out to find a way to make more accurate predictions about the future.
The system which we had in place to attempt to predict the future size of the bench based on ongoing sales and currently running projects was very complex.
It generated five different numbers for each technology stack plus a few additional predictions. Since we have nine different stacks, it added up to 50 numbers that we needed to check almost daily. This was overwhelming for the engineering managers.
Accurately predicting the future
First, the goal was to improve the accuracy of predicting the size of the bench that we would need to have in four weeks. Then, having gathered data, we decided to see if we could make predictions for up to eight weeks in advance.
For this project, we decided to enlist our internal Machine Learning team experienced in creating top-level models for complex problems. Predicting based on available data can be a very tricky task with multiple pitfalls and the team faced several challenges.
Konrad Jarociński
RnD Manager at Netguru
Reacting to continuous change
The project resources were very limited. Only a few people from the Machine Learning team were available to work on the bench project as others were working for external clients.
Putting the UX in focus
After only two weeks the team had a simple proof of concept to show to the stakeholders.
Afterwards, the team quickly added new features such as automating data updates, which until then had to be done manually. This not only relieved our coworkers from cumbersome work, but also provided additional value of backing up the data in a separate database. Now the models are adjusted and retained on a daily basis with new incoming data, which means continuous improvement without additional employee input.