“Early Pain” over “Analysis Paralysis” or “Hurry Up and Wait”
Analysis Paralysis expresses reluctance to proceed
Analysis Paralysis refers to excessive time spent on exploring a problem, and a reluctance, for whatever reason, to proceed to the next stage.
Traditionally, Analysis Paralysis is associated with waterfall processes, but we see an expression of this in iterative, incremental product delivery approaches as well.
As an example, using Spotify’s Think It, Build It, Ship It, Tweak It lifecycle, Analysis Paralysis would be spending too much time on Think It and not proceeding to Build It OR spending too much time on Build It trying to building the ultimate “MVP” and not proceeding to Ship It OR spending too much time at small % rollout exploring in Ship It and not proceeding to scale out to 100% (aka proceed to Tweak It).
NOTE: This does not mean every idea should proceed if it turns out the idea doesn’t work; it means that the go/no go decision should not be extended indefinitely.
To address Analysis Paralysis, you might take an approach of “just ship it”
Because Analysis Paralysis feels slow, a typical approach is to try to rush through and “just ship it”. What actually happens with this rushing approach is a phenomenon I’ll call Hurry Up and Wait.
Hurry Up and Wait occurs when you defer, or even avoid discovery of, difficult, important problems in order to get started quickly, but this leads to stalling and/or chaos when the problems eventually appear and/or can’t be ignored.
As an example, using Spotify’s Think It, Build It, Ship It, Tweak It lifecycle, Hurry up and Wait would be rushing through Think It to start Build It and getting stalled because none of the dependent groups are on board OR having to cycle back to the drawing board repeatedly because of poor reasoning and insight.
Hurry Up and Wait is a common trap because, until that point of stalling occurs, it does actually feel very fast.
Early Pain is the fastest overall approach… but it’s painful.
My preferred, and, I believe, the actual fastest overall approach, is what Martin Fowler called Early Pain.
Instead of, “It doesn’t feel right to have these difficulties this early in the project”, your reflex should be, “Why aren’t we detecting any difficulties this early in the project?”
As an example, using Spotify’s Think It, Build It, Ship It, Tweak It lifecycle, Early Pain means Think It will be structured such that the highest priority product and/or technical risks are explored first. Early Pain also means Think It isn’t just deciding that the product is worth building but also includes getting input and feedback from all the groups that will need to be involved in building and shipping the product. This might involve some fairly difficult conversations and politics. This will influence how Build It and Ship It will be approached.
As you might guess from the name, the reason why Early Pain is not more common is because it’s painful early on. Until you’ve done it enough to form the habit, you need the discipline to overcome the desire to avoid the pain.
See also Conquer and Divide.
How do you know if it’s Early Pain or Analysis Paralysis or Hurry Up and Wait?
How to know whether you’re applying Early Pain, or just engaging in Analysis Paralysis or Hurry Up and Wait, is a complicated thing to describe. Here are some questions that I use to think about this:
- What, if any, are the broader time constraints?
- Will this actually improve end-to-end lead time?
- Is this detail that can be deferred and worked out later?
- Is this something that will cause a lot of unnecessary work if we don’t have a difficult conversation and/or get concrete feedback now?
- Will talking more about this resolve anything or would it be faster to build something to test it?
- What are the highest priority risks?
- Do we have representation from every group who will be involved in getting this done? Are we missing a perspective that might highlight a risk (or opportunity) we’re not aware of?