In-house vs. Outsource. How to choose?
06 August 2018
One of the critical strategic software decisions is: when to In-housing and when to Outsource. Both options have their advantages and both are here to stay. We will explore how to choose between the two – and we will see why hiring full-time remote developers is often the better way to develop in-house.
Without further ado, here are the advantages of each option:
When to in-house?
In-housing is optimal when software is a core function of your business.
In-housing allows you to control the quality of the execution in the software development project. You know the developers that you hire on your team and you are certain in their skill level. You manage them, so you have certainty and predictability in the quality that you produce, and the work being prioritized. Another benefit is that the developers on the team are in for the long run, they care about the product and they think about the long-term impact of their decisions.
Another reason why in-housing is optimal for strategic projects is that it improves your ability to innovate. By having the work done in-house, you are accumulating the learning in your organization, getting ahead of the competition in terms of technical know-how. Also, you gain flexibility (agility) because you won't need to define precisely the project scope well into the future, and you won't need to re-negotiate the price every time you need a change. Furthermore, you can share freely more sensitive information with your employees compared to external parties, which allows for better cross-functional collaboration and ultimately innovation.
Bonus: Remote hiring is a superior way of in-housing
In most cases, hiring remote developers puts you in a better position than hiring traditionally.
The reason is that it fixes most of the problems of traditional hiring (without adding almost no new ones). For example, by hiring remote developers based in other countries you can reduce your salary expenses by up to 60% while at least maintaining the quality. In fact, remote hiring turns in-housing from the most expensive option to the least expensive option. Another advantage of remote hiring is that you can access much better talent than usual. When you hire remote, you are looking to hire the best person for the job from the whole world (or at least country). As the saying goes, the best developers to hire are not in your city – they are all around the world. Find here the data on developer salaries and skill levels around the world.
However, to enjoy the benefits of remote hiring you need to establish good communication practices in your team. The technologies to collaborate remotely are available (video calls, chat, email etc.) – the only question is whether you can use them well. All things considered, remote hiring is growing with the incredible 11.5% per year.
When to Outsource?
Outsourcing is optimal when your software project is not a core function of your business.
In those cases, a major factor is the lower overall cost of the outsourcing option. The outsourcing option can be much cheaper than in-house (1) because you can work with a contractor who is based in a country with lower salaries and/or (2) you can work with a contractor who has the necessary scale to specialize in the areas that you need. An additional benefit is that you can have a fixed price for the delivery of the project.
Outsourcing also gives you flexible capacity/access to talent. It almost removes the time that it takes to build a team and bring it up to speed. Finding a good developer can be time-consuming, few companies can hire a developer in less than 1 month (not to mention that onboarding inevitably takes 3-6 months). Talent availability is not an issue when working with contractors as you are not limited to your city. What's even better is that you don't just scale up the team fast – you can scale down the team fast. Your contract can be for a limited project scope, and it can have an exit option, which is easier and nicer than letting go of people from your in-house team.
The theoretical discussion that we went through in this article matches the real-world practice. According to Deloitte's 2016 Global Outsourcing Survey, the top 3 reasons why companies choose to outsource are: cost reduction (59%), focus on core business (57%), solves capacity issues (47%). Improving the quality or innovation are rarely the primary reasons for choosing the outsourcing option.
Bonus: Outsource to a freelancer or development house?
Freelancers are generally the cheaper option of the two because they charge you only for their own salaries. However, a development house provides you with a much more comprehensive service. With a freelancer, you get just one profile, e.g. strong back-end developer with okay front-end capabilities. With a development house, you get a team that covers the different areas, e.g. front-end developer, back-end developer, designer, project manager, QA, CTO-like discussion partner. They can also have multiple developers on the project to accelerate the process. Unlike a freelancer, working with a development house gives you a bus factor >1. This means that with a freelancer, your project will fail if one person quits – but this would not be the case if you work with a development house.