Skip to content

Root cause analysis templates

Use these when a control chart signals, when a tollgate line is unticked, or when the waste log shows the same thing three times. Copy the template into docs/sprints/<sprint>/retrospective.md or into the kaizen issue, fill it in, and link the result.

Rules: - Analyze the process, not the person. "Why did the PR wait" is a valid question; "why is X slow" is not. - Stop when the answer is something the team can change this sprint. - Every analysis ends with at least one countermeasure and an owner, or an explicit "accept the risk".

Template A: 5 Whys

Problem statement (one sentence, with a number):

Why 1:
Why 2:
Why 3:
Why 4:
Why 5:

Root cause (the last "why" that the team controls):
Countermeasure(s):
Owner role:
How we will know it worked (KPI and target):
Kaizen issue #:

Template B: Ishikawa (fishbone)

Categories adapted for this project: People, Process, Tools, Data, Environment, Measurement.

mindmap
  root((Effect: state the problem))
    People
      cause
      cause
    Process
      cause
      cause
    Tools
      cause
      cause
    Data
      cause
      cause
    Environment
      cause
      cause
    Measurement
      cause
      cause

ASCII version if mermaid is unavailable:

People ---------\        Process --------\        Tools ---------\
  cause          \         cause          \         cause         \
  cause           >---------------------------------------------------> EFFECT
  cause          /         cause          /         cause         /
Data -----------/        Environment ----/        Measurement --/

After filling the bones, circle the two or three causes the team believes matter most and run a 5 Whys on each.

Filled example: PR #NN sat unreviewed for 5 days

Problem statement. PR #NN (loader tests) was opened on a Friday and received its first review on the following Wednesday, 5 days later; the target is 48 hours.

5 Whys

Why Answer
Why 1: Why did the PR wait 5 days? Nobody was assigned as reviewer, so nobody felt responsible.
Why 2: Why was nobody assigned? The PR template has a "Reviewer" line but it is optional and the author left it blank.
Why 3: Why was it left blank? The author did not know who had time; there is no reviewer rotation.
Why 4: Why is there no rotation? The charter says "another member reviews" but does not say which one.
Why 5: Why was that not noticed earlier? The first two PRs were reviewed quickly because everyone was watching the repository in week one; the metrics dashboard had not run yet.

Root cause. Review responsibility is undefined; it worked by enthusiasm, which does not scale past week one.

Fishbone summary

Category Causes found
People Author unsure who is free; reviewer duty not explicit
Process Reviewer line optional in template; no SLA; no reminder at check-in
Tools No auto-assignment (CODEOWNERS present but not enforced)
Data Metrics dashboard did not exist yet, so the wait was invisible
Environment PR opened on a Friday before a weekend
Measurement pr_first_review_hours not yet reviewed weekly

Countermeasures

Countermeasure Owner role KPI Target Kaizen #
Reviewer rotation table in TEAM_CHARTER.md; author assigns the next person in rotation at PR open Scrum Master pr_first_review_hours median <= 48 h KZ-02
Thursday check-in agenda item: PRs older than 48 h (dashboard section "Open PRs") Scrum Master same same KZ-02
PR template: reviewer field required (checklist item) Developers first_time_right unaffected KZ-02

How we will know. Two consecutive weekly snapshots with median first-review time under 48 hours.