After spending the best part of the last few years talking to companies of various shapes and sizes about their hiring preferences, I developed a simple framework to help answer the question “when do I hire full time developers internally vs. outsourcing development?”

Outsourcing Framework

Tech company building a core product:  If you are an tech company building what you consider to be a core product or service, then you should absolutely look at putting together an internal team, since chances are you will need to iterate rapidly, produce bug-fixes, provide customer support etc related to the product or service. Doing all of this in an outsourced, but yet effective manner becomes cost-prohibitive if the product in question is your companies core product. Perhaps even more critically, if your company is not building product, what exactly is it doing?

Tech or non-tech company building a non-core product: If you are a tech, or a non-tech company, building a non-core product, then you first preference should always be to outsource. This is for two reasons:

  • A company that specializes in building what you consider “non-core”, is more likely going to be better at it than anyone you hire internally
  • Even if you can hire the best, you will need a consistent and interesting enough pipeline of work to keep the best engaged – remember, very rarely do the best at anything make a decision purely based on the money offered to them

Non-tech company building a core product: This is the most interesting combination, and one that companies are increasingly finding difficult to answer. Why is this? This is because as more and more legacy companies start to build digital products and services, they are increasingly looking to transform themselves into tech-companies. However even if a legacy company considers itself a tech company, it should really think hard about whether the digital product it is building is truly core. Lets try and explain this via two (somewhat) hypothetical examples below:

  • NCR Corporation building a competitor to Square Wallet: Here both NCR and Square are in the business of retail checkouts. If Square starts offering a service via. Square Wallet that offers a significantly superior retail checkout experience, than NCR, then all else being equal Square will out-muscle NCR, and win the retail check-out and digital wallet war. In this scenario NCR’s existence depends on building check-out related products and services that match that of Square’s, and like their digitally native competition, do rapid and continuous product development, which generally requires an internal team.
  • American Airlines building the most elegant check-in application in industry: Lets assume American Airline’s mobile check-in app is so far superior to its competitors, that its starts winning awards at UX and industry conferences, and gets rave reviews from its customer base. Additionally check-in’s are a part of any airlines core business process, so it can be considered a core part of an end-user facing service that American Airlines provides. However, the truth is regardless of how elegant and simple to use the app is, the check-in process is only a part of the overall customer experience (CX) that American Airlines provides to its customers, and in isolation, will in all-likelihood not make a significant difference to a customers decision to fly American vs. United.

In summary, unless you are an tech company building your core product, outsourcing development should always be a serious option on the table.

Note: We realize this framework does not take into account supply and demand imbalances that a company might be operating under. Today macro factors in the technology space, have led to a clear imbalance in favor of supply, and hence even if it makes sense for a company to hire full-time, that choice might not represent a realistic option.