5 Whys · 五个为什么 一句话定位: 对一个问题连问「为什么」3-7 次(不是严格 5 次),从症状挖到可改的流程/系统/设计 — 不要在症状层面修补。 何时使用 (TRIGGER) - 事故 / bug 复盘(postmortem) - 同类问题重复出现(不是首次偶发) - 表层修复显然不够(每次都「下不为例」但又复发) - 流程问题诊断 - 用户报告「为什么我们老是 X?」— 信号需要根因分析 何时不要用 (ANTI-PATTERN) - 单次偶发、无规律可循 — 可能是噪声,先观察 - 复杂系统问题(Cynefin Complex 域)— 5 Whys 假设线性因果,复杂系统是多因 + 涌现 - 团队氛围是「找罪人」— 5 Whys 容易变成「Why X 没做好 → 因为 Y 不靠谱」的责备链 - 真正的 unknowable(如 ML 模型某次输出为啥这样)— 用统计方法不是 5 Whys 操作步骤 (STEPS) 1. 准确陈述问题 必须含: 指标 + 时间 + 范围 。不要笼统说「登录有问题」,要说「2026-05-25 14:00-15:00 us-east-1 登录失败率 32%」 2. 问 Why #1,得到答案 A1 A1 必须是事实而非评价 。错:「因为团队不仔细」对:「auth-service 14:05 deploy 引入了 null 检查 bug…