When to outsource
I've found myself recently questioning the age-old advice of "build it if it's central to your business."Advice surrounding the age old buy vs build debate often boils down to: Build components core to your business, buy (or rent, or otherwise outsource) peripheral components.
My recent reading about Wardley Maps has given me cause to start questioning this advice.
Chapter 4 of the book Learn Wardley Mapping shows us a typical (if simplified) architectural diagram, showing components of a self-driving vehicle, but with the labels translated into Elvish. You are asked to decide whether either of two highlighted components should be outsourced, or built in-house.
Naturally, only the Elves know the answer.
That is, until the information is re-framed in the form of a Wardley Map. This maps each component along the maturity axis (as well as customer visibility, but that’s less meaningful for today’s purposes).
Suddenly the relative maturity of the two highlighted components is apparent. The component labeled… eh… let’s say “Gibberish 1” sits squarely above the “Commodity” label, far to the right, while the other component, “Gibberish 2” sits near the “Custom Built” label, just 25% in from the left.
Now it’s pretty clear that the commodity component should be a strong contender for outsourcing, and the “custom built” for in-house development.
What were the two components? The commodity one is the GPS system. Yeah. That probably makes sense to outsource.
The other component, a “World Perception Server”. Probably something to build in-house.
In this view, what matters isn’t, per se, how “central” a component is to your business, but rather how mature that component is. If it has already been commodotized, it’s a strong contender for outsourcing.
This has interesting implications for the concept of outsourcing the building of, say, an MVP, which, practically by definition, is custom-built, or even farther left, in the chaotic realm of product “Genesis.”
What do you think?