#125 Kent Beck's 3x Model
When you are making any product related decision, the first question you should be asking is - what stage your product is in?
This post is about Kent Beck's explore, expand, and extract model that explains the different stages a typical product goes through. While this model seems obvious and simple in hindsight, it can be very powerful if it is used to make routine decisions like how much to test, how to measure progress and what the team should focus on. This model explains a lot of contradictory "product advice" - what may be "good" advice for a particular stage may be "bad" advice for a different stage.
Origin Story
Kent Beck is the creator of extreme programming a software development methodology, a leading proponent of Test-Driven Development (TDD), and one of the signatories of the Agile Manifesto.
After joining Facebook he was confounded that seemingly "chaotic development practices" was resulting in value creation and innovation delivered at scale at break-neck speeds on a consistent basis. As he was trying to answer this question he came across Taleb's work on two types of payouts.
Convex payouts: you make a small investment and most of the time you lose, but once in a while you get a big pay-off
Success in this context - make a lot of investments, reduce the cost of the investments
You encounter a lot of failures, once in a while "you fail to fail"
Concave payouts: you make a large investments and most of the time you make a small return, but once in a while you lose your entire investment
Success in this context - reduce downside side, increase the pay-off just a little more
Be conservative, make sure you understand the risk thoroughly
Based on this input, Beck was able to grasp where two primary software development methodologies were coming from.
The waterfall development process is trying to reduce the risk of downside. Folks who are advocating for this process believe they are operating in a concave world.
Agile development process is trying to make small bets and double down on anything that gains traction. Folks who are advocating for this process believe they are operating in a convex world.
3x Model
The three stages in Beck's model - explore, expand, and extract. This model can be used at various levels - for a new product, for new features/ideas, for enhancements. Each stage requires a different mindset, different risk tolerance, different type of expertise/skill set. Trade-offs in each stage change dramatically. In each stage you are playing a different game with a different set of rules
Explore (0-1): In this stage of the product, you are trying to create value that resonates with the target market (discovery, ensuring that the customer is succeeding). You have a small chance of a large pay-off, and a limited budget. In this stage it is best to let the team operate with "unlimited" freedom to experiment
The more experiments you can run for dollar/time the greater are the chances of success
This stage is characterised by high risk/failure, optimised for learning/testing (not scaling or quality)
In this stage you are trying to own a positive reinforcing loop (especially in the case of B2C products) - the bigger you get the easier it is to become bigger
The market decides when you shift from explore to expand. This happens when one of the experiments generates an a response that is 10-100x higher than normal. If you are applying the 3x model at a product level, transition from the explore to expand stage happens once you hit product market fit.
Expand (1-10): In this stage, you are trying your best to protect/support the growth/demand for your product/feature. You have a large chance of a large pay-off. Your focus is to overcome bottlenecks to scaling and ease the limitations of the next rate limiting resource. Scale and performance become a concern.
You are in respond mode. You are responding to the next thing that can kill you (i.e. demand crosses the supply). You are running out of servers, disk space, office space etc. Your job here is to reduce demand by a little and increase supply a little, so that death does not happen
You should not be trying to add features at this stage
A lot of technical wizardry is required in this stage
This is duct-tape land and about effectiveness in supporting growth/debottle-necking (not cost-effectiveness)
The transition from expand to extract needs to be detected by the PM/product team. The team should be able to identify the critical drivers of growth
If you don't identify this transition, your team will burn out, and you will run out of capital
Extract (10 onwards): In this stage, you are trying to extract maximum returns from the product (you focus on efficiency, ensuring that the business is succeeding). You are operating sustainably, with well understood inputs and outputs and the relationship with them. In this stage you encounter the inhibiting loop - the bigger you get the harder it is to become bigger
Quality becomes paramount
Things are predictable, planning and run books work during this stage
You know what metrics to look at, you know what an investment will return (RoI analysis makes sense in this stage)
The explore-expand-extract stages plays out on a smaller scale within each stage as well (it is fractal in nature). You can watch videos on this topic here and here
I am also very curious to see; If there is probably a 3 x 3 x 3 mapping here;
- explore, expand, extract (3 stages) v/s
- product level, feature/idea level, enhancement level (3 levels) v/s
- agile, scrum-fall, waterfall (3 process)?
In a sense the outcome of such a mapping could yield which os the 3 x 3 x 3 selection (vertical, horizontal, across or whatever) leads to; product-market-fit (PMF), product-market-scale (PMS) and POWER
POWER;
“The product-market fit and power questions are different questions; one doesn’t necessarily answer the other… When you have a business model that gets you to product-market fit, there may be a power opportunity embedded in that and there may not be. Those are two very different problems. One is the problem of capitalizing on an inherent potential for power; the other is trying to figure out what you’re going to do to get power in something that currently doesn’t have it. That’s a very hard problem; it’s a second invent that’s every bit as hard as the product-market fit invent.” - Hamilton Helmer
Is there any relationship between explore, expand and extract stages to waterfall and agile processes? like say;
- explore (probably better to use agile process)
- expand (probably better to use scrum-fall process)
- extract (probably better to use waterfall process)