Machine Learning: In-house Team or Outsourcing?

Machine learning is one of the hottest topics in the world of technology. It makes sense then that so many companies are analysing whether they can benefit from it. Should you decide to enhance your business with ML, the question of finding a suitable team will arise immediately.
Which is better: building an in-house machine learning team or outsourcing your needs to an industry specialist? You will need to think about many aspects before making a commitment to either option. Read on to see our take on whether you should go for an in-house or an outsourced ML team.
Hiring is hard, and so is Machine Learning
The first thing you need to consider is that finding ML experts (as opposed to beginners or outright frauds) is difficult. The technology only gained popularity in the past few years, plus the market for ML specialists is extremely hot. This makes sourcing machine learning talent not just hard, but also expensive – good developers expect high wages and recruiting them will take significant effort: validating their knowledge requires you to already be well-versed in ML.
On the topic of unproven teams, there’s always the option of purposefully hiring beginners with the intention of training them. This is a noble idea, but it might not make business sense, plus the costs are high: professional training is expensive and may be extremely inefficient if your company lacks ML expertise. Moreover, doing ML work also requires significant effort from “regular” developers. You can’t just plug an ML team into your existing structure.
Then there’s the fact that your freshly hired team of ML beginners won’t be building anything while they’re learning about ML and significant resources will be consumed in the process: there is no learning without actually training models. You also need to remember that ML is fundamentally different than “regular” programming. It requires solid foundations in algebra, statistics, numerical analysis, and more. Understanding it is much, much harder than learning another JavaScript framework. Reading the Tensorflow docs and making a runnable network is not enough by far – it’s just a beginning.
Even if you do find the right people, you will need to build up the infrastructure required to conduct ML experiments – this means a lot of high-end GPUs, or a ton of AWS credits. Either option can be a risky proposition, especially if you’re dealing with an unproven team.
Sometimes it’s better to go in-house
All the above reasons are why you might want to consider hiring external ML experts. They offer a number of advantages over the in-house approach described above. One is that, typically, they have a much broader perspective and much more experience with problems like yours, since their job involves building solutions for diverse clients. Also, assembling an ML team and infrastructure might an overwhelming undertaking. However, there are some situations when going in-house is the preferred solution:
-
You are distributing advertisements and your income depends on the amount of successfully targeted ads. Therefore your goal is to profile each ad recipient for optimal targeting and conversion rates.
-
You sell a service that supports the QA process in large organizations. This process is done manually by a human observer, but you suppose it is possible to build a system that can perform comparably well, so you want to automate the task for cost savings.
-
You are setting up a modern shopping platform that is supposed to serve numerous shops. To be competitive, you want your platform to improve efficiency, so your clients will put less effort into selling more products. Therefore, you want to develop outstanding recommendation mechanisms, which will boost conversion rates (see the first example).
In all the above examples, ML is essential for delivering business value, which makes a good case for going in-house. Still, it might make sense to outsource the MVP and only consider building out a team after the concept has been proven in action.
Why is it better to stick to outsourcing?
There are many situations when recruiting ML developers and employing them at your company might not make sense for the reasons outlined two sections back. Here are a few examples of when ML outsourcing is more convenient:
-
When your company collects little data or no data at all, and you need to design a data collection process before diving into ML. A popular case is when your company manufactures a product and wants to optimize the production process.
-
When you already have some data and want to extract value out of it. One case would be if you log user behaviour within your application to recognize why it crashed, but you would like to use this data to also improve their experience.
-
When you are experimenting with new possibilities and want to expand your business to gain a unique advantage over your competitors, for example as a store looking for the best shopping platform to support your business.
-
When adding ML to your product would give more convenience and automate manual tasks but is not an essential part of your services. This is the case when you know that there is something that is time-consuming but hard to automate such categorizing documents.
Decision time
Deciding on how to proceed when introducing ML to your company is no easy task. You can build your own team of ML specialists, ask an external company to build the technology for you, or go the third way – outsource a proof of concept and build a team around it once it’s proven its worth.
Whatever you decide, the experts at Netguru are there for you. We’re always happy to offer expert advice whatever the tech dilemma you’re dealing with. Don’t hesitate to reach out if you have any questions!