Postmortem
When NOT to use: Incident still ongoing (focus on resolution first), looking to assign blame (antithesis of blameless culture), or issue is trivial with no learning value.
Workflow
Copy this checklist and track your progress:
Postmortem Progress:
- [ ] Step 1: Assemble timeline and quantify impact
- [ ] Step 2: Conduct root cause analysis
- [ ] Step 3: Define corrective and preventive actions
- [ ] Step 4: Document and share postmortem
- [ ] Step 5: Track action items to completion
Step 1: Assemble timeline and quantify impact
Gather facts: when detected, when started, key events, when resolved. Quantify impact: users affected, duration, revenue/SLA impact, customer complaints. For straightforward incidents use resources/template.md. For complex incidents with multiple causes or cascading failures, study resources/methodology.md for advanced timeline reconstruction techniques.
Step 2: Conduct root cause analysis
Ask "Why?" 5 times to get from symptom to root cause, or use fishbone diagram for complex incidents with multiple contributing factors. See Root Cause Analysis Techniques for guidance. Focus on system failures (process gaps, missing safeguards) not human errors.
Step 3: Define corrective and preventive actions
For each root cause, identify actions to prevent recurrence. Must be specific (not "improve testing"), owned (named person), and time-bound (deadline). Categorize as immediate fixes vs. long-term improvements. See Corrective Actions for framework.
Step 4: Document and share postmortem
Create postmortem document using template. Include timeline, impact, root cause, actions, what went well. Share widely (engineering, product, leadership) to enable learning. Present in team meeting for discussion. Archive in knowledge base.
Step 5: Track action items to completion
Assign owners, set deadlines, add to project tracker. Review progress in standups or weekly meetings. Close postmortem only when all actions complete. Self-assess quality using resources/evaluators/rubric_postmortem.json. Minimum standard: ≥3.5 average score.
Common Patterns
By Incident Type
Production Outages (system failures, downtime):
- Timeline: Detection → Investigation → Mitigation → Resolution
- Impact: Users affected, duration, SLA breach, revenue loss
- Root cause: Often config errors, deployment issues, infrastructure limits
- Actions: Improve monitoring, runbooks, rollback procedures, capacity planning
Security Incidents (breaches, vulnerabilities):
- Timeline: Breach occurrence → Detection (often delayed) → Containment → Remediation
- Impact: Data exposed, compliance risk, reputation damage
- Root cause: Missing security controls, access management gaps, unpatched vulnerabilities
- Actions: Security audits, access reviews, patch management, training
Product/Project Failures (launches, deadlines):
- Timeline: Planning → Execution → Launch/Deadline → Outcome vs. Expectations
- Impact: Revenue miss, user churn, wasted effort, opportunity cost
- Root cause: Poor requirements, unrealistic estimates, misalignment, inadequate testing
- Actions: Improve discovery, estimation, stakeholder alignment, validation processes
Process Failures (operational, procedural):
- Timeline: Process initiation → Breakdown point → Impact realization
- Impact: Delays, quality issues, rework, team frustration
- Root cause: Unclear process, missing steps, handoff failures, tooling gaps
- Actions: Document processes, automate workflows, improve communication, training
By Root Cause Category
Human Error (surface cause, dig deeper):
- Don't stop at "person made mistake"
- Ask: Why was mistake possible? Why not caught? Why no safeguard?
- Actions: Reduce error likelihood (checklists, automation), increase error detection (testing, reviews), mitigate error impact (rollback, redundancy)
Process Gap (missing or unclear procedures):
- Symptoms: "Didn't know to do X", "Not in runbook", "First time"
- Actions: Document process, create checklist, formalize approval gates, onboarding
Technical Debt (deferred maintenance):
- Symptoms: "Known issue", "Fragile system", "Workaround failed"
- Actions: Prioritize tech debt, allocate 20% capacity, refactor, replace legacy systems
External Dependencies (third-party failures):
- Symptoms: "Vendor down", "API failed", "Partner issue"
- Actions: Add redundancy, circuit breakers, graceful degradation, SLA monitoring, vendor diversification
Systemic Issues (organizational, cultural):
- Symptoms: "Always rushed", "No time to test", "Pressure to ship"
- Actions: Address root organizational issues (unrealistic deadlines, resource constraints, incentive misalignment)
Root Cause Analysis Techniques
5 Whys:
- Start with problem statement
- Ask "Why did this happen?" → Answer
- Ask "Why did that happen?" → Answer
- Repeat 5 times (or until root cause found)
- Root cause: Fixable at organizational/system level
Example: Database outage → Why? Bad config → Why? Wrong value → Why? Template error → Why? New team member unfamiliar → Why? No config review in onboarding
Fishbone Diagram (Ishikawa):
- Categories: People, Process, Technology, Environment
- Brainstorm causes in each category
- Identify most likely root causes for investigation
- Useful for complex incidents with multiple contributing factors
Fault Tree Analysis:
- Top: Failure event (e.g., "System down")
- Gates: AND (all required) vs OR (any sufficient)
- Leaves: Base causes (e.g., "Config error" OR "Network failure")
- Trace path from failure to root causes
Corrective Actions Framework
Types of Actions:
- Immediate Fixes: Deployed within days (hotfix, manual process, workaround)
- Short-term Improvements: Completed within weeks (better monitoring, updated runbook, process change)
- Long-term Investments: Completed within months (architecture changes, new systems, cultural shifts)
SMART Actions:
- Specific: "Add config validation" not "Improve deploys"
- Measurable: "Reduce MTTR from 2hr to 30min" not "Faster response"
- Assignable: Named owner, not "team"
- Realistic: Given capacity and constraints
- Time-bound: Explicit deadline
Prioritization:
- High impact, low effort: Do immediately
- High impact, high effort: Schedule as strategic project
- Low impact, low effort: Do if spare capacity
- Low impact, high effort: Consider skipping (cost > benefit)
Prevention Hierarchy (from most to least effective):
- Eliminate: Remove hazard entirely (e.g., deprecate risky feature)
- Substitute: Replace with safer alternative (e.g., use managed service vs self-host)
- Engineering controls: Add safeguards (e.g., rate limits, circuit breakers, automated testing)
- Administrative controls: Improve processes (e.g., runbooks, checklists, reviews)
- Training: Educate people (least effective alone, combine with others)
Guardrails
Blameless Culture:
- ❌ "Engineer caused outage by deploying bad config" → ✓ "Deployment pipeline allowed bad config to reach production"
- ❌ "PM didn't validate requirements" → ✓ "Requirements validation process missing"
- ❌ "Designer made mistake" → ✓ "Design review process didn't catch issue"
- Focus: What system/process failed? Not who made error.
Root Cause Depth:
- ❌ Stopping at surface: "Bug caused outage" → ✓ Deep analysis: "Bug deployed because testing gap, no staging env, rushed release pressure"
- ❌ Single cause: "Database failure" → ✓ Multiple causes: "Database + no failover + alerting delay + unclear runbook"
- Rule: Keep asking "Why?" until you reach actionable systemic improvements
Actionability:
- ❌ Vague: "Improve testing", "Better communication", "More careful" → ✓ Specific: "Add E2E test suite covering top 10 user flows by Apr 1 (Owner: Alex)"
- ❌ No owner: "Team should document" → ✓ Owned: "Sam documents incident response runbook by Mar 15"
- ❌ No deadline: "Eventually migrate" → ✓ Time-bound: "Complete migration by Q2 end"
Impact Quantification:
- ❌ Qualitative: "Many users affected", "Significant downtime" → ✓ Quantitative: "50K users (20% of base), 2-hour outage, $20K revenue loss"
- ❌ No metrics: "Bad customer experience" → ✓ Metrics: "NPS dropped from 50 to 30, 100 support tickets, 5 churned customers ($50K ARR)"
Timeliness:
- ❌ Wait 2 weeks → Memory fades, urgency lost → ✓ Conduct within 48 hours while fresh
- ❌ Never follow up → Actions forgotten → ✓ Track actions, review weekly, close when complete
Quick Reference
Resources:
- resources/template.md - Postmortem document structure and sections
- resources/methodology.md - Blameless culture, root cause analysis techniques, corrective action frameworks
- resources/evaluators/rubric_postmortem.json - Quality criteria for postmortems
Success Criteria:
- ✓ Timeline clear with timestamps and key events
- ✓ Impact quantified (users, duration, revenue, metrics)
- ✓ Root cause identified (systemic, not individual blame)
- ✓ Corrective actions SMART (specific, measurable, assigned, realistic, time-bound)
- ✓ Blameless tone (focus on systems/processes)
- ✓ Documented and shared within 48 hours
- ✓ Action items tracked to completion
Common Mistakes:
- ❌ Blame individuals → culture of fear, hide future issues
- ❌ Superficial root cause → doesn't prevent recurrence
- ❌ Vague actions → nothing actually improves
- ❌ No follow-through → actions never completed, same incident repeats
- ❌ Delayed postmortem → details forgotten, less useful
- ❌ Not sharing → no organizational learning
- ❌ Defensive tone → misses opportunity to improve
1---2name: postmortem3description: Conducts blameless postmortems that transform failures into learning opportunities by documenting timelines, quantifying impact, performing root cause analysis (5 Whys, fishbone diagrams), and defining corrective actions with owners and deadlines. Use when analyzing failures, outages, incidents, or negative outcomes, conducting blameless postmortems, identifying corrective actions, learning from near-misses, establishing prevention strategies, or when user mentions postmortem, incident review, failure analysis, RCA, lessons learned, or after-action review.4---5# Postmortem
6
7**When NOT to use:** Incident still ongoing (focus on resolution first), looking to assign blame (antithesis of blameless culture), or issue is trivial with no learning value.
8
9## Workflow
10
11Copy this checklist and track your progress:
12
13```
14Postmortem Progress:
15- [ ] Step 1: Assemble timeline and quantify impact
16- [ ] Step 2: Conduct root cause analysis
17- [ ] Step 3: Define corrective and preventive actions
18- [ ] Step 4: Document and share postmortem
19- [ ] Step 5: Track action items to completion
20```
21
22**Step 1: Assemble timeline and quantify impact**
23
24Gather facts: when detected, when started, key events, when resolved. Quantify impact: users affected, duration, revenue/SLA impact, customer complaints. For straightforward incidents use [resources/template.md](resources/template.md). For complex incidents with multiple causes or cascading failures, study [resources/methodology.md](resources/methodology.md) for advanced timeline reconstruction techniques.
25
26**Step 2: Conduct root cause analysis**
27
28Ask "Why?" 5 times to get from symptom to root cause, or use fishbone diagram for complex incidents with multiple contributing factors. See [Root Cause Analysis Techniques](#root-cause-analysis-techniques) for guidance. Focus on system failures (process gaps, missing safeguards) not human errors.
29
30**Step 3: Define corrective and preventive actions**
31
32For each root cause, identify actions to prevent recurrence. Must be specific (not "improve testing"), owned (named person), and time-bound (deadline). Categorize as immediate fixes vs. long-term improvements. See [Corrective Actions](#corrective-actions-framework) for framework.
33
34**Step 4: Document and share postmortem**
35
36Create postmortem document using template. Include timeline, impact, root cause, actions, what went well. Share widely (engineering, product, leadership) to enable learning. Present in team meeting for discussion. Archive in knowledge base.
37
38**Step 5: Track action items to completion**
39
40Assign owners, set deadlines, add to project tracker. Review progress in standups or weekly meetings. Close postmortem only when all actions complete. Self-assess quality using [resources/evaluators/rubric_postmortem.json](resources/evaluators/rubric_postmortem.json). Minimum standard: ≥3.5 average score.
41
42## Common Patterns
43
44### By Incident Type
45
46**Production Outages** (system failures, downtime):
47- Timeline: Detection → Investigation → Mitigation → Resolution
48- Impact: Users affected, duration, SLA breach, revenue loss
49- Root cause: Often config errors, deployment issues, infrastructure limits
50- Actions: Improve monitoring, runbooks, rollback procedures, capacity planning
51
52**Security Incidents** (breaches, vulnerabilities):
53- Timeline: Breach occurrence → Detection (often delayed) → Containment → Remediation
54- Impact: Data exposed, compliance risk, reputation damage
55- Root cause: Missing security controls, access management gaps, unpatched vulnerabilities
56- Actions: Security audits, access reviews, patch management, training
57
58**Product/Project Failures** (launches, deadlines):
59- Timeline: Planning → Execution → Launch/Deadline → Outcome vs. Expectations
60- Impact: Revenue miss, user churn, wasted effort, opportunity cost
61- Root cause: Poor requirements, unrealistic estimates, misalignment, inadequate testing
62- Actions: Improve discovery, estimation, stakeholder alignment, validation processes
63
64**Process Failures** (operational, procedural):
65- Timeline: Process initiation → Breakdown point → Impact realization
66- Impact: Delays, quality issues, rework, team frustration
67- Root cause: Unclear process, missing steps, handoff failures, tooling gaps
68- Actions: Document processes, automate workflows, improve communication, training
69
70### By Root Cause Category
71
72**Human Error** (surface cause, dig deeper):
73- Don't stop at "person made mistake"
74- Ask: Why was mistake possible? Why not caught? Why no safeguard?
75- Actions: Reduce error likelihood (checklists, automation), increase error detection (testing, reviews), mitigate error impact (rollback, redundancy)
76
77**Process Gap** (missing or unclear procedures):
78- Symptoms: "Didn't know to do X", "Not in runbook", "First time"
79- Actions: Document process, create checklist, formalize approval gates, onboarding
80
81**Technical Debt** (deferred maintenance):
82- Symptoms: "Known issue", "Fragile system", "Workaround failed"
83- Actions: Prioritize tech debt, allocate 20% capacity, refactor, replace legacy systems
84
85**External Dependencies** (third-party failures):
86- Symptoms: "Vendor down", "API failed", "Partner issue"
87- Actions: Add redundancy, circuit breakers, graceful degradation, SLA monitoring, vendor diversification
88
89**Systemic Issues** (organizational, cultural):
90- Symptoms: "Always rushed", "No time to test", "Pressure to ship"
91- Actions: Address root organizational issues (unrealistic deadlines, resource constraints, incentive misalignment)
92
93## Root Cause Analysis Techniques
94
95**5 Whys**:
961. Start with problem statement
972. Ask "Why did this happen?" → Answer
983. Ask "Why did that happen?" → Answer
994. Repeat 5 times (or until root cause found)
1005. Root cause: Fixable at organizational/system level
101
102**Example**: Database outage → Why? Bad config → Why? Wrong value → Why? Template error → Why? New team member unfamiliar → Why? No config review in onboarding
103
104**Fishbone Diagram** (Ishikawa):
105- Categories: People, Process, Technology, Environment
106- Brainstorm causes in each category
107- Identify most likely root causes for investigation
108- Useful for complex incidents with multiple contributing factors
109
110**Fault Tree Analysis**:
111- Top: Failure event (e.g., "System down")
112- Gates: AND (all required) vs OR (any sufficient)
113- Leaves: Base causes (e.g., "Config error" OR "Network failure")
114- Trace path from failure to root causes
115
116## Corrective Actions Framework
117
118**Types of Actions**:
119- **Immediate Fixes**: Deployed within days (hotfix, manual process, workaround)
120- **Short-term Improvements**: Completed within weeks (better monitoring, updated runbook, process change)
121- **Long-term Investments**: Completed within months (architecture changes, new systems, cultural shifts)
122
123**SMART Actions**:
124- **Specific**: "Add config validation" not "Improve deploys"
125- **Measurable**: "Reduce MTTR from 2hr to 30min" not "Faster response"
126- **Assignable**: Named owner, not "team"
127- **Realistic**: Given capacity and constraints
128- **Time-bound**: Explicit deadline
129
130**Prioritization**:
1311. **High impact, low effort**: Do immediately
1322. **High impact, high effort**: Schedule as strategic project
1333. **Low impact, low effort**: Do if spare capacity
1344. **Low impact, high effort**: Consider skipping (cost > benefit)
135
136**Prevention Hierarchy** (from most to least effective):
1371. **Eliminate**: Remove hazard entirely (e.g., deprecate risky feature)
1382. **Substitute**: Replace with safer alternative (e.g., use managed service vs self-host)
1393. **Engineering controls**: Add safeguards (e.g., rate limits, circuit breakers, automated testing)
1404. **Administrative controls**: Improve processes (e.g., runbooks, checklists, reviews)
1415. **Training**: Educate people (least effective alone, combine with others)
142
143## Guardrails
144
145**Blameless Culture**:
146- ❌ "Engineer caused outage by deploying bad config" → ✓ "Deployment pipeline allowed bad config to reach production"
147- ❌ "PM didn't validate requirements" → ✓ "Requirements validation process missing"
148- ❌ "Designer made mistake" → ✓ "Design review process didn't catch issue"
149- Focus: What system/process failed? Not who made error.
150
151**Root Cause Depth**:
152- ❌ Stopping at surface: "Bug caused outage" → ✓ Deep analysis: "Bug deployed because testing gap, no staging env, rushed release pressure"
153- ❌ Single cause: "Database failure" → ✓ Multiple causes: "Database + no failover + alerting delay + unclear runbook"
154- Rule: Keep asking "Why?" until you reach actionable systemic improvements
155
156**Actionability**:
157- ❌ Vague: "Improve testing", "Better communication", "More careful" → ✓ Specific: "Add E2E test suite covering top 10 user flows by Apr 1 (Owner: Alex)"
158- ❌ No owner: "Team should document" → ✓ Owned: "Sam documents incident response runbook by Mar 15"
159- ❌ No deadline: "Eventually migrate" → ✓ Time-bound: "Complete migration by Q2 end"
160
161**Impact Quantification**:
162- ❌ Qualitative: "Many users affected", "Significant downtime" → ✓ Quantitative: "50K users (20% of base), 2-hour outage, $20K revenue loss"
163- ❌ No metrics: "Bad customer experience" → ✓ Metrics: "NPS dropped from 50 to 30, 100 support tickets, 5 churned customers ($50K ARR)"
164
165**Timeliness**:
166- ❌ Wait 2 weeks → Memory fades, urgency lost → ✓ Conduct within 48 hours while fresh
167- ❌ Never follow up → Actions forgotten → ✓ Track actions, review weekly, close when complete
168
169## Quick Reference
170
171**Resources**:
172- [resources/template.md](resources/template.md) - Postmortem document structure and sections
173- [resources/methodology.md](resources/methodology.md) - Blameless culture, root cause analysis techniques, corrective action frameworks
174- [resources/evaluators/rubric_postmortem.json](resources/evaluators/rubric_postmortem.json) - Quality criteria for postmortems
175
176**Success Criteria**:
177- ✓ Timeline clear with timestamps and key events
178- ✓ Impact quantified (users, duration, revenue, metrics)
179- ✓ Root cause identified (systemic, not individual blame)
180- ✓ Corrective actions SMART (specific, measurable, assigned, realistic, time-bound)
181- ✓ Blameless tone (focus on systems/processes)
182- ✓ Documented and shared within 48 hours
183- ✓ Action items tracked to completion
184
185**Common Mistakes**:
186- ❌ Blame individuals → culture of fear, hide future issues
187- ❌ Superficial root cause → doesn't prevent recurrence
188- ❌ Vague actions → nothing actually improves
189- ❌ No follow-through → actions never completed, same incident repeats
190- ❌ Delayed postmortem → details forgotten, less useful
191- ❌ Not sharing → no organizational learning
192- ❌ Defensive tone → misses opportunity to improve