Product Development Phases: Explore, Expand, Extract

Peter Wong
Travelex Tech Blog
Published in
4 min readMar 30, 2017

This month I attended a talk by Kent Beck at Facebook on building products. He drew parallels between investment strategies and software development. I would like to briefly overview this model and look at where we are at engineering at Travelex.

Investment strategies can be (for my simplistic view) divided into two camps: Convex and Concave.

A convex strategy has a payoff structure where one generally expects small loses but once in a while one would have a big win. The graph below depicts a convex payoff curve [1]. An example investment is buying the lottery.

Convex Payoff

A concave strategy has a payoff structure where one generally expects small wins but once in a while one would have a big loss. The graph below depicts a concave payoff curve. Example investments would include mortgaging a house, or having a saving account.

Concave Payoff

What Kent identified was that the convex payoff structure is akin to Extreme programming while the concave one is akin to Waterfall. Kent realised that instead of viewing these payoff structures as independent models, they can be applied together and used as guidelines to ascertain the stages of product development. The graph below should three phase of product development:

Accordingly these phases are:

Explore : Exploration is when we try things. This is when we can learn what works and what does not. At this stage everything is an experiment and the success criteria is not to come up with something that works but to learn from the experiments. Having fast and small iterations that allow one to fail fast is essential. The strategy here is to reduce cost (time, resource, scope). If one of these experiments turns out to be successful, then we can consider the next phase.

Expand : This is the phase where products start to get real customers and also where operations start to experience bottlenecks. These could be related to network, I/O, memory, 3rd parties etc. This is a phase where we require technical experts to focus and remove bottlenecks as they are being anticipated. One might even consider this as part of the stabilising phase.

Extract : Extraction (or exploitation as one of the audience at the talk called it…) is when we have got large enough user base and we are clear what ticks and what does not tick with users. This is also the phase where every pound in gives three pounds out. This is the phase where small changes will have large impact due to the scale. As Kent puts it:

Economies of scale matter: delivering the service at lower cost is more profitable.

Note that one might think during the extract phase, one can no longer innovate and iterate. But if we look closer, as the extract curve as depicted below, it consists of many small product development phases.

Wire

We launched Wire this week and I would like to see where our product is at with respect to the above phases. I think we have been in the explore phase and we will hit the extract phase once we start getting decent traffic into the product. I also think that a product such as Wire can be in all three phases at once. That is, one team will be getting customer feedback and continuing to explore, and a second team might be fighting a memory bottleneck while a third team preparing for launching the product abroad…

References

  1. Accelerating Upside: Convexity in Software Development
  2. 3X with Kent Beck

--

--