Post-Release & Learning · master area
Root Cause Analysis (5 Whys)
Five whys, but anchored to chain levels, not individuals. The question is not "why did the developer not see this?" — it is "why did the chain not catch it before this developer?"
Owners: Tech Lead, PO Phase it lives in: After We Build (Volume V) The corpus principle this enacts: Trace to levels, never to people.
Where it lives in the chain
- After We Build · Incidents and Postmortems — the canon
- After We Build · Worked example — the wallet bug — 5 Whys traced to scenario-gap
- After We Build · Worked example — the JWT outage — 5 Whys traced to integration-gap
How to do this
For every critical/high bug or incident, walk the whys with the chain-level answer space:
- Why did the user see X? (Symptom)
- Why did the code produce X? (Operational root cause:
logic-error,data,configuration...) - Why didn't the test catch it? (
scenario-gap?) - Why didn't the design catch it? (
observation-mismatch?) - Why didn't the brief anticipate it? (Discovery gap?)
The chain level the answer lands at is the structural fix's destination. Discovery gap → brief template question added. Scenario gap → amigos template prompt added. Integration gap → contract test added. ADR drift → ADR re-read at every Epic kickoff for that area.
What good practice looks like
The wallet-balance bug walked:
- Why did the user see $0.00? The renderer clamped negatives.
- Why did the renderer clamp? The developer assumed balances are non-negative.
- Why? The story's acceptance criteria had no negative-balance scenario.
- Why? The amigos template had no boundary-value prompt for financial fields.
That's the structural cause. The fix is the new template prompt — not "the developer should have been more careful." The developer's habit improves once; the template's prompt improves every future developer.
A 5-Why that lands at a person — "Esti didn't catch it" — has stopped early. Keep walking. Why didn't Esti's review catch it? What was the chain expecting Esti to read? The trace continues until it lands at an artefact that can be changed.
Related crafts
- Postmortem — where 5-Whys runs formally
- Bug Filing & Triage — where chain-level labels originate
- Psychological Safety — what allows honest 5-Whys