77 lines
3.0 KiB
Markdown
77 lines
3.0 KiB
Markdown
---
|
||
title: "Five Whys"
|
||
type: concept
|
||
tags: [root-cause-analysis, incident-management, reliability]
|
||
last_updated: 2026-05-01
|
||
---
|
||
|
||
## Definition
|
||
5 问法(Five Whys)是一种迭代式根因分析技术,通过连续追问"为什么"(Why)五层(或更多),穿透表面现象,找到系统性根本原因。最初由丰田汽车的大野耐一在精益制造中提出,现广泛应用于可靠性工程和事故管理。
|
||
|
||
## Core Method
|
||
|
||
从观察到的**问题(症状)**开始,连续追问"为什么",直到找到:
|
||
- 一个可采取行动的**根本原因**(root cause)
|
||
- 或一个**系统性缺口**(systemic gap)
|
||
|
||
### 经典示例
|
||
|
||
> **问题**:网站宕机了。
|
||
|
||
| 层级 | 问法 | 回答 |
|
||
|------|------|------|
|
||
| 1 | 为什么网站宕机了? | 应用服务器无响应 |
|
||
| 2 | 为什么服务器无响应? | 数据库连接池耗尽 |
|
||
| 3 | 为什么连接池耗尽? | 一个慢查询锁住了所有连接 |
|
||
| 4 | 为什么慢查询没有被检测? | 没有查询超时限制和监控 |
|
||
| 5 | **为什么没有超时限制?** | 配置变更流程中没有强制要求 |
|
||
|
||
> **根因**:配置变更流程缺少数据库安全门(超时限制验证)
|
||
|
||
## Application in Incident Post-Mortem
|
||
|
||
在 [[BlamelessPostMortem]] 中的 5 Why 使用:
|
||
1. **保持中立**:避免使用指责性语言
|
||
2. **聚焦系统**:问"系统/流程允许了什么"而非"谁做错了"
|
||
3. **不止五层**:有时需要 6-7 层才能到达系统性根因
|
||
4. **验证**:用 [[FaultTreeAnalysis]] 交叉验证 5 Why 结论
|
||
|
||
## Relationship with Fault Tree Analysis
|
||
|
||
| 维度 | Five Whys | Fault Tree Analysis |
|
||
|------|-----------|---------------------|
|
||
| 方向 | 自下而上(症状→根因) | 自上而下(顶事件→叶事件) |
|
||
| 适用场景 | 已知单一事故 | 复杂、多因故障链 |
|
||
| 协作性 | 团队讨论式 | 结构化图形化 |
|
||
| 互补性 | 可结合使用:FTA 识别多因,5 Why 挖掘每个原因 | |
|
||
|
||
## Key Principles
|
||
|
||
### Do(应该做)
|
||
- 从具体可观察的事实开始
|
||
- 每个回答都基于证据,而非假设
|
||
- 继续追问直到找到**系统层面**的原因
|
||
- 在团队环境中使用(多元视角更有效)
|
||
|
||
### Don't(不应该做)
|
||
- 不停在第一个"合理"答案就停止
|
||
- 归咎于个人("因为某人操作失误")
|
||
- 假设自动化可以解决所有问题
|
||
- 不验证答案是否与数据一致
|
||
|
||
## Anti-Patterns
|
||
|
||
| 错误 | 原因 | 修正 |
|
||
|------|------|------|
|
||
| "因为人员疏忽" | 永远指向根因,但无行动价值 | 追问:系统为什么允许疏忽发生? |
|
||
| "需要更好的监控" | 泛泛而谈,缺乏可落地性 | 具体:哪种监控,触发什么行动? |
|
||
| "因为云厂商问题" | 外部归因,无法控制 | 追问:为什么没有灾备方案? |
|
||
|
||
## Related Concepts
|
||
- [[BlamelessPostMortem]] — 5 Why 是无责复盘的核心根因分析工具
|
||
- [[FaultTreeAnalysis]] — 可与 5 Why 互补使用的结构化分析
|
||
- [[DORA-Metrics]] — 量化事故影响,为复盘提供数据支撑
|
||
|
||
## Sources
|
||
- [[engineering-incident-response-commander]]
|