关于 5whys
5whys 是一种结构化分析技能,通过反复追问原因,找出可采取行动的根本原因,并记录因果链、纠正措施和验证方法。
主要功能
- 01逐层追问原因
- 02识别可行动的根因
- 03分析分支原因
- 04规划纠正措施
- 05验证根因假设
适用场景
- 01调查反复出现的软件错误
- 02分析客户流失原因
- 03查找问题背后的流程缺口
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ neurofoo/ agent-skills --skill 5whys安装后在 Claude Code 中输入/5whys确认已加载。
详细介绍
五问分析
通过反复追问“为什么”,逐步分析根本原因,直到找到根源。
说明
从陈述的问题开始,追问它“为什么”会发生。对每个答案,再次追问“为什么”。持续追问,直到找到满足以下条件的根本原因:
- 可采取行动(你能针对它采取措施)
- 足够根本(继续追问“为什么”只会得到抽象或无用的答案)
- 能解释因果链条
通常需要追问 5 次,但也可能更少或更多。
输出格式
问题陈述 清晰、具体地重述问题。
追问链条
| 层级 | 问题 | 答案 |
|---|---|---|
| 1 | [问题] 为什么会发生? | [答案 1] |
| 2 | [答案 1] 为什么会发生? | [答案 2] |
| 3 | [答案 2] 为什么会发生? | [答案 3] |
| 4 | [答案 3] 为什么会发生? | [答案 4] |
| 5 | [答案 4] 为什么会发生? | [根本原因] |
根本原因 指出发现的根本问题。解释为什么这是根本原因,而不只是另一个症状。
分支(如适用) 如果某一层级存在多个合理答案,请展示分支分析。
纠正措施
- 立即措施:现在采取什么措施来解决症状
- 系统性措施:需要改变什么来防止问题再次发生
验证 如何确认根本原因正确?(验证假设)
指南
- 每个答案都应基于事实且可验证
- 避免归咎于个人(“John 没有做 X”)——关注系统和流程
- 如果是在猜测,请注明这是待验证的假设
- 留意循环论证
- 如果存在多个合理原因,可以进行分支分析
- 当继续追问“为什么”变得哲学化或无益时,就停止追问
示例
软件 Bug
问题:用户在结账页面遇到 500 错误
| 层级 | 问题 | 答案 |
|---|---|---|
| 1 | 用户为什么会遇到 500 错误? | 支付服务超时 |
| 2 | 支付服务为什么会超时? | 数据库查询耗时超过 30 秒 |
| 3 | 数据库查询为什么很慢? | orders 表有 50M 行,且 customer_id 列没有索引 |
| 4 | 为什么没有索引? | 创建该表时,我们还没有这种查询模式 |
| 5 | 添加查询时为什么没有添加索引? | 缺少针对新查询的数据库审查流程 |
根本原因:添加新的查询模式时,缺少数据库审查流程。
纠正措施:
- 立即措施:为 customer_id 添加索引
- 系统性措施:在 PR 模板中加入数据库审查清单
客户流失
问题:企业客户在使用 6 个月后取消了服务
| 层级 | 问题 | 答案 |
|---|---|---|
| 1 | 客户为什么取消服务? | 他们表示产品没有带来价值 |
| 2 | 产品为什么没有带来价值? | 他们只采用了 12% 的功能 |
| 3 | 功能采用率为什么这么低? | 用户没有接受关键工作流的培训 |
| 4 | 用户为什么没有接受培训? | 新手引导在完成技术设置后就结束了 |
| 5 | 新手引导为什么只到设置阶段? | 客户成功团队人手不足,优先处理新销售 |
根本原因:客户成功团队人手不足,导致他们不得不提前结束新手引导。
纠正措施:
- 立即措施:联系有流失风险的客户并提供培训
- 系统性措施:扩充客户成功团队;重新定义新手引导,使其涵盖功能采用这一里程碑
$ARGUMENTS
评论
支持 Markdown