Republished from the original published on July 19, 2016.
25 March 2016. Because I keep careful notes these days I can identify the precise moment when I asked the question I should have asked twenty years ago: what if those waterfall folks aren’t wrong, what if they are solving a different problem than I’m solving? What problem is that?
The past four months have been fecund beyond belief for me. I have changed how I approach software development but also life in general. Different risk profiles call for different approaches, but I can sometimes choose which risk profile I use in a situation.
Trying to communicate my insight has been frustrating. I feel like a puppy on a hike. I’ve run ahead, found an awesome stick, brought it back, dropped it at my masters’ feet, and now I’m barking madly without anyone paying to attention to just how awesome the stick really is.
I awoke in the middle of the night with a new approach, a new metaphor to go with the new vocabulary I’m using. Here goes.
Product development proceeds in three phases:
- Explore–the risky search for a viable return on a viable investment. Successful exploration is unpredictable, so the highest expected value strategy is to reduce the cost of experimentation and put a little investment into many, uncorrelated experiments. If you’re lucky, one of these experiments turns out to be unexpectedly successful, which leads to:
- Expand–now things are going nuts (think Pokemon Go or Facebook Live Video). Unanticipated bottlenecks appear. All you have time for is to eliminate the next bottleneck just before it derails you. Once growth becomes routine, it’s time to:
- Extract–now the shape of the problem and solution spaces are clear. One euro in equals three euros out. Playbooks emerge: here’s how you roll out the service in a new city. Economies of scale matter: delivering the service at lower cost is more profitable.
There’s hours and hours of cool stuff implied by this model, but that’s the basics.
Lessons from the Triathlon
- Each phases requires different equipment, different technique, different training. Software product development requires different tools, techniques, and value systems in the three phases. (The answer to the ??? in my notebook is “Efficient Extraction”.)
- You can’t mix the phases. Just because biking is the fastest phase in kilometers per hour doesn’t mean you can go faster by taking your bike into the water. (I was dealing with a project prematurely moving from explore to expand just yesterday.)
- The transitions are awkward, but they count. If a project goes from one phase to another and the team doesn’t notice, it’s like trying to swim on a bike. Not so good.
- Only organizations that can execute all three phases can complete a race. If you just don’t feel like running, then it’s not a triathlon.
- Unlike a triathlon, the same people don’t have to complete the phases. I specialize in exploration. As soon as expansion starts, I’m ready to start exploring again. As long as there is someone I can hand off to, this works fine.
- The relative progress of the three phases roughly maps. Exploration (swimming) seems slow. Experiment after experiment fails. False hopes are dashed. Repeatedly. Then comes the “overnight success” of expansion (biking). Progress that would have taken months now happens in days or hours, just like a mile on a bike is way shorter than a mile swimming. Extraction (running) is more of a slog than expansion.
- ??? [hoping for suggestions from actual triathletes or poets]
A few highlights:
- Choose exploration. If you’re extracting and starting to feel hopeless or burned out, deliberately switch to exploration.
- Accelerate experimentation. If you’re following all the rules and your experiments aren’t getting anywhere, break the rules to experiment faster. If experiments aren’t likely to last, quick and easy won’t cost you in the long run.
- Transition. If things aren’t going smoothly, see if you’ve changed phases without noticing. If so, change the rules to match the phase you’re in.
I’m only four months in, so I’m sure there’ll be lots more to come. I hope I’ve convinced you that this really is an awesome awesome stick.