5-Whys 根因穿透分析指南 (Root Cause 5-Whys)
当系统出现 Bug 时,普通开发者只修那一行报错,优秀架构师通过 5-Whys 消除一整类 Bug 的发生可能。
追问示例模版
- 第 1 层(直接原因):为什么报错? ➔ 数据库连接池满了。
- 第 2 层(触发诱因):为什么连接池满了? ➔ 某条 SQL 查询耗时超过 10 秒。
- 第 3 层(技术缺陷):为什么该 SQL 这么慢? ➔ 缺少联合索引导致全表扫描。
- 第 4 层(流程缺失):为什么没有加索引? ➔ 需求上线前未在真实数据量下测试。
- 第 5 层(根本原因):为什么未进行容量评估? ➔ 研发流程缺少自动化慢查询 CI 门禁(这是根因)。