When to outsource your project

Michael Kolomenkin
3 min readDec 8, 2017

--

A couple of days back I had a conversation with a colleague that caused me to throw my two cents into numerous articles on outsourcing. I will not talk about whether you should outsource or not. Software outsourcing is a huge business. It would not succeed if it was not worthy enough. I will not talk about how to choose and manage your outsourcing company. The internet is replete with very good and comprehensive guides that deal with this issue.

I will describe my perspective on when to outsource the code. My guideline is very simple. If the code is likely to both change and later be re-used, develop it in-house. Otherwise, feel free to outsource and save money. The main reason is the difficulty to alter the code developed by an outsourcing company after a while. The need to change may come either from the quality of the code or business requirements.

Practically, the guideline can be implemented by dividing the development process into three stages according to the long-term influence of the code quality.

1. Proof of concept

You have an idea. There are always chances that your idea is useless, either from technical or business point of view. What you need to do is to test the idea as fast and as cheap as possible. Even if your idea is in the right direction, after the initial prototype you are likely to alter it significantly and rewrite everything from scratch.

Advice: outsource

An outsourcing company is an excellent choice. You can hire a cheap programmer who will build a prototype for you. The prototype will be far from being perfect. It may crash occasionally and may look poor, but it will accomplish its goal — test the validity of your idea. It’s important to stay focused and not to start developing complex features. Probably the features are not vital for the prototype. They might be difficult for your cheap and entry-level programmer to implement. Eventually, you will end up spending much more money than expected and will still have only a prototype.

2. Early stage product

The ambiguity is still great, but you know what you want to do. You may still pivot, but you have the basic verification that your idea makes sense. And even if you pivot, the core underlying technology will likely stay.

Advice: in-house

In this case, my advice is to develop everything in-house. At this stage, you need to develop a flexible technical solution that will be easy to adapt to the changing business needs. The correct architecture is vital since without it you won’t be able to scale up and will have to write everything from scratch. Keeping knowledge inside the company is vital too.

While an outsourcing company can save you some money, the risk is too high. Scaling up a solution developed by a third party contractor is usually a high-risk task.

3. Updates

You have a product and you probably have customers. There is much less ambiguity. The challenge is to build new features, fix bugs, provide support, etc. The tasks are more localized and have less strategic value.

Advice: outsource

Outsourcing the development is definitely a good idea. You will be able to save money and concentrate on tasks with long-term importance. Even if the feature did not work out as planned, you can reimplement without causing huge damage to the company.

Afterword:

My own failure and the failure of many other start-ups was to continue with the outsourcing company from stage 1 to 2, from a prototype to development of a real product. While definitely possible in some case, this is a high-risk task and I would recommend building your own team when you see that you are approaching the stage one.

--

--

Michael Kolomenkin
Michael Kolomenkin

Written by Michael Kolomenkin

Farther of three, AI researcher, kayak instructor, adventure seeker, reader and writer

No responses yet