liveBook · Manning

Build-versus-buy decision

As explained in Machine Learning System Design

A decision process for choosing between developing a capability internally and obtaining it from an external provider.

A team needs a new ML capability. Should it develop the capability internally, buy a service, or combine the two? Start with a clearly defined problem, then investigate what the market already offers. A familiar problem may have an established vendor solution, but availability alone does not make that solution a good fit. section 3.0 section 3.2.1

Work through the decision at the level of system components:

  • Is this capability central to competitive advantage? Third-party infrastructure can be sensible even when it is critical to operations; businesses whose infrastructure distinguishes them may invest in building it. section 3.2.1
  • Does a vendor meet the actual need at an acceptable price? Check the required capability and metrics, not just the vendor’s broad product category. A price that works for one company may not work for another. section 3.2.1 section 3.4.2
  • What would building or adopting open source require? Compare vendor costs with internal hiring, infrastructure, maintenance, problem-solving, available time, and team capacity. Open source is not automatically free to operate. section 3.2.1 section 3.5
  • Could an external product satisfy only part of the need? Sketch the system in a few clear blocks before deciding which components to build and which to obtain. section 3.5

Search for a photo marketplace

A marketplace with millions of images needs to answer customers’ text queries with relevant photos. It would be easy to assume a company of that scale must build its own search engine. First, survey search-as-a-service providers. Many may be unsuitable because text-to-image search is not the usual offering, but some may warrant a closer look. Also inspect how other search systems approach related problems. The goal is not to reproduce a much larger search engine; it is to find an approach that meets this marketplace’s needs. section 3.4.2

The decision is not necessarily all-or-nothing. Look for products that satisfy the whole requirement or a useful portion of it, then decide what remains to be built. Revisit the choice when the proposed level of innovation demands investment that may not pay off. section 3.5

How Machine Learning System Design covers it

How deep it goes
Works through practical decision questions and a search-service case without prescribing a numerical scoring model.
Examples
Uses rented cloud infrastructure, outsourced selfie verification, and a photo marketplace’s text-to-image search to test sourcing assumptions.
What it assumes
Assumes a sufficiently defined problem and develops the sourcing questions from there.
What you can do after
Practice/perform a component-level sourcing assessment using business centrality, vendor fit, price, maintenance, time, and team capacity.
How it connects
Links problem definition, solution-space research, problem decomposition, and degree of innovation to component sourcing.

Also explained in

Compare how 3 books explain build-versus-buy decision →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Machine Learning System Design. The section links point to the parts of the book it draws on.