So if “the exploration that cannot fail is not an exploration”, then how are you supposed to manage high-risk, high-consequence projects? I strive to propose, not complain [ed: post to follow]. Here’s my proposal.
First, let me say that when I say “high consequence”, I don’t mean human life. Taking responsibility for human life in programming projects requires some of the same principles, but turned all the way up. I’ve done it, but it’s not the norm. Here I’m speaking of business consequences.
Structure of Expand
Back to 3X: Explore/Expand/Extract basics, Expand is the phase of the project/company/industry where you have explored & found a new growth engine. Expand is powered by a reinforcing feedback cycle where the more you grow, the easier it is to grow more.
This “hypergrowth” will be threatened by a series of near-catastrophes, each of which you must avoid to realize the potential of the growth loop you have so fortuitously discovered. And it isn’t hyperbole to call them catastrophes. As
puts it, “irreversibility absorbs future gains”.When you are truly in Expand, each near-catastrophe will come at you like a sharp curve on a foggy mountain road at night. You need to survive each one to experience the next. Attempts to solve all future problems through careful & thorough engineering will backfire. The extra effort & delay increase the chances of an irreversible disaster. Expand is the time for duct tape & zip ties.
Rate Limiting Resource
Each crisis is brought about by the intersection of the supply of some critical resource & the (rapidly rising) demand for that resource.
There was some resource—network bandwidth, CPUs, trucks, programmers, insurance—that was plentiful enough not to worry about. Demand for it has skyrocketed because you’ve been zipping around that growth loop (love those exponentials). Some day in the future (you hope it’s the future), you’re going to need more of the resource than is available. That is going to be a terrible, horrible, very bad, no good day.
In Theory
Your job in Expand is to put that day off into the indefinite future. Not “solve” the problem. Not beautifully & elegantly finesse it. Nor yet ignore it. Put it off so you can be ready for the next looming catastrophic curve crossing.
You do this by some combination of bending the supply curve up & bending the demand curve down.
No more imminent death!
How? Increase supply by:
Throwing money at the problem. You’ve been frugal while exploring. Relax that constraint for the moment. Capital sniffs out expansion. Spend some of it.
Quick engineering. Since you haven’t been focused on this resource, perhaps there’s some quick way to supply more of it.
Decrease demand by:
Limiting growth. Think of all the “invitation only” projects. It’s good marketing but it’s also good engineering. If you know what your safe growth curve looks like, don’t take on more customers than that.
Load shedding. Delete features that aren’t critical to the growth curve. Some of your pet features may need to be shelved. Boo hoo.
Optimizing. Use less of the resource per user. Delay kills, though, so be tactical.
Structure
We’re almost ready to discuss the alternative to “can’t fail explorations”. The conceptual leap comes from observing that Explore/Expand/Extract curves are fractal. What looks like a smooth line in a macro view is made up of a bunch of little S-curves.
The overall Explore/Expand/Extract curve:
Let’s, um, expand the Expand segment, showing that it is made up of little 3X curves:
Now we can expand one of those curves to see the whole structure:
And the Explore portion of that Expand sub-project looks like any exploration any where. We try a bunch of things. Most we abandon. The one that works surprisingly well we expand on:
High-Risk Management
That is “managing substantial risks”, not “managing so as to increase risk”.
Panic is your nemesis while expanding. The temptation is to see a looming resource supply/demand cross-over & try to “solve” it. As your initial solution encounters problems, sunk cost fallacy breeds with terror to produce insane hours, little progress, & compounding risk of irreversible failure.
Acknowledge the situation. The price of success is seemingly insurmountable problems. That you don’t know how to solve the problem is a good sign. It means fewer competitors. But the nature of risk doesn’t change just because it scares you. The way forward is by acting appropriately for the 3X phase you’re in.
You’re in Expand overall, but for this particular looming resource shortage you start in Explore. If you’ve been reading along with 3X you know the rules for Explore:
Creativity & diversity. You don’t want your project to die just because you didn’t look around.
Small experiments, quickly discarded.
Experiment in parallel. Why not? You have the money.
Collaborate closely. The team should still be small at this point, which makes this easier. (Hey, if it was easy easy then regular people could do it.)
Once you’ve found a promising idea to increase supply and/or reduce demand, focus on that idea alone (Expand & then Extract) until this crisis has been averted. Then keep your eyes open for the next looming catastrophe.
Oh, and once there’s only hard work ahead, no catastrophes, then you’re ready to shift into Extract mode. Extract is its own deal. For another day.
Conclusion
When stakes are high & the consequences for failure expand, that is exactly the time to use good project hygiene. It’s not heroics. It’s smart engineering in an environment with strange & unpredictable constraints.
Some day the limitations to growth will kick in. Not today, Satan.
RE: Cut features. You may not be able to cut some features or even whole platforms due to contractual obligations. Just saying, gotta consider the reality when choosing what to cut and what to keep. Also, there will be some fallout to deal with. All depends on the situation of course. How do you know when to pull the trigger and when to continue supporting a feature besides current usage and $? More importantly, how do you convince the business leaders (or other decision makers) that it's the right thing to do?