Hiring internally vs. outsourcing development

After spending time over the last 6 months talking to companies of various shapes and sizes about their hiring preferences, we developed a simple framework to help answer the question "when do I hire full time developers internally vs. outsourcing development?" 

Screen Shot 2013-07-16 at 2.50.58 PM.png

IT company building a core product:  If you are an IT 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?

IT or non-IT company building a non-core product: If you are an IT, or a non-IT 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 offerred to them

Non-IT company building a core product: This is the most interesting combination, and one that companies are increasingly finding difficult to answer. Why is this? If you read our last blog post, the answer to this might be a little simpler, but effectively as more and more legacy companies start to build digital products and services, they are increasingly building products and services which might be considered core to the company. However, not every core product or service is created equal. Lets consider two 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 outmuscle 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 end-user experience 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 IT 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 economic 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.