Skip to content
5 min read technology management

Debunking the Management Myth about In House vs Outsourced Engineering

In the past few years, most companies advocate the myth of outsourcing as a way to cut costs on engineering. One myth advocated by people in business strategy and operations to justify why it is better to outsource from an expensive place to a less expensive one is that only the specifications of the product input leading to the outcome of the product matters and not the quality of engineering. The problem with that view is that you pay peanuts to get monkeys, i.e. you pay less to run an engineering team because it affects your profits and loss (P&L) but you end up giving a lower quality software engineering product to your customers. That explains why a lot of companies, particularly in Asia cannot take innovation to the next level. With the evolution of the product manager to lower the quality risk, does that mean that there is no room for in-house engineering? Here are some thoughts on the management myth about in house and outsourced engineering.

The Management Theory on Outsourced vs In-House Engineering till Today

Here’s how a business owner justify engineering costs:

The best description of technical debt came from Jeff Atwood aka Coding Horror:

Technical Debt is a wonderful metaphor developed by Ward Cunningham to help us think about this problem. In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development because of the quick and dirty design choice. We can choose to continue paying the interest, or we can pay down the principal by refactoring the quick and dirty design into the better design. Although it costs to pay down the principal, we gain by reduced interest payments in the future.

The metaphor also explains why it may be sensible to do the quick and dirty approach. Just as a business incurs some debt to take advantage of a market opportunity developers may incur technical debt to hit an important deadline. The all too common problem is that development organizations let their debt get out of control and spend most of their future development effort paying crippling interest payments.

Clayton Christensen wrote an interesting anecdote on how Dell lost its competitive advantage by outsourcing engineering to its vendors such as Asus, and ended up in tears when the vendors leapfrogged them in technology competency. Samsung is most well-known for producing a critical component of technology for a particular industry (for example, solid state drives for mobile phones) and then use that as a way to figure out the roadmap of their competitors who outsourced the components from them. That’s why they gave Apple a run of their money.

Here’s the first message that I want to spread: the management theory about outsourcing engineering in the last decade without the product manager is actually wrong, because it fails to regard technical debt as a crucial component that will bring about the downfall of the company. Think about it, the more you lower the quality of engineering you outsource, you end up bringing in more technical debt, and till you grow big and large, you are unable to innovate because your foundations are of a lower quality.

With the evolution of the product manager, does it mean that there is no justification for in house engineering teams anymore for major corporations?

What successful companies have taught us about In-House and Outsourcing Engineering

What have we learned from successful companies like Google, Apple and Amazon? A few things, first, they don’t outsource their teams and keep it at the heart of where the innovation are. Amazon took a step further by spinning out their engineering resources into Amazon Web Services (AWS) so that the startups and corporations out there (who pay for their cloud computing services) end up “subsidising” a portion of their large engineering costs. It means that the engineering teams in Amazon are generating revenues and at the same time, lowering the costs for the company. In all three companies, the quality of engineering is really important and the focus is to ensure that you do not end up outsourcing your core competency to your competitors out there. To do that, you need an in-house engineering to continuously build and iterate on your core products.

Given the evolution of the product manager to lower the friction in solving the risk of quality in outsourcing, is there really no justification for in-house engineering? Here are a few thoughts which we can learn about for startups and corporations:

Author’s Note: The author thanks his colleague, Byron Fuller for interesting feedback and comments that further refines the arguments and ideas about what this post is about.