极客时间已完结课程限时免费阅读

26 | 5W根因分析法:怎么找准问题源头才能治标又治本?

26 | 5W根因分析法:怎么找准问题源头才能治标又治本?-极客时间

26 | 5W根因分析法:怎么找准问题源头才能治标又治本?

讲述:安晓辉

时长12:06大小11.05M

你好,我是华仔。
上一讲我介绍了 PDCA 执行法,它把执行过程分为四个环节。其中在检查(Check)环节,最容易出现的问题就是,分析原因的时候,只看到表层的原因,而没有去深挖深层的根本原因
这就会导致我们给出的解决方案治标不治本,虽然短时间内做了应急处理,但是按下葫芦浮起瓢,相关的问题之后还会接连不断地冒出来。

5W 根因分析法

怎么解决呢?这就要靠 5W 根因分析法了。它又叫 5Why 分析法或者丰田五问法,最初是由丰田集团创始人丰田佐吉提出的,后来成为丰田汽车公司获得成功的重要方法。(老板提出来的,应用也是自然的 ^_^)
那么,5W 根因分析法到底是什么做的呢?根据丰田汽车公司前副社长大野耐一的描述,就是重复问五次“为什么”,问题的本质和解决办法就会变得显而易见。
大野耐一曾经举过这样一个例子:
问题 1:为什么机器停了?
答:因为机器超载,保险丝烧断了。
 
问题 2:为什么机器会超载?
答:因为轴承的润滑不足。
 
问题 3:为什么轴承会润滑不足?
答:因为润滑泵失灵了。
 
问题 4:为什么润滑泵会失灵?
答:因为它的轮轴耗损了。
 
问题 5:为什么润滑泵的轮轴会耗损?
答:因为杂质跑到里面去了。
如果到了问题 1 就停止追问,那么工人的措施就是更换保险丝,一段时间后保险丝肯定还会烧断。
如果到了问题 4 就停止追问,那么工人的措施就是更换轮轴,一段时间后轮轴又会很快坏了。
只有当追问到了问题 5,才能找出停机的根本原因,这时工人的措施就是给润滑泵加上防杂质的滤网,从而彻底解决问题。
现在,5W 根因分析法在其他很多企业已经得到了广泛应用,并且融入到了各种管理方法中,比如持续改善法(日本持续改善之父今井正明提出)、精益生产法(美国学者研究丰田后提出的管理哲学)和六西格玛法(摩托罗拉提出的管理策略,杰克·韦尔奇推广到通用公司)等。
虽然它起源于生产过程中问题分析,但是作为一种思维方式,可以应用到很多场景,比如业务分析、技术学习和管理改进等。
接下来,我就针对这三类应用场景分别举例说明,这些都是我亲身经历的例子。

业务分析

第一个场景是业务分析。
在某交易平台的业务规划目标讨论会上,我通过 3 个为什么,了解到了业务目标背后的深层考虑。
问题 1:为什么今年的业务目标是成交金额翻番?
答:因为只有成交金额翻番我们才能达到盈亏平衡点。
 
问题 2:为什么今年要求达到盈亏平衡点?
答:因为集团要求我们的业务能够自负盈亏。
 
问题 3:我们本质上还属于创新业务,为什么集团要求我们的业务能够自负盈亏?
答:因为疫情的影响,集团需要开源节流,减少非盈利业务的持续投入。
你可能觉得有些奇怪:怎么这个例子只问了 3 个为什么就结束了呢?
因为 5 个为什么只是一个形象的说法,实际操作中可以是 3 个,也可以是 7 个,关键在于通过追问找到根本原因。
虽然在这个例子中,我们还可以继续问下去,比如:“集团为什么要开源节流,创新业务难道不重要吗?”
但这样的问题,业务团队很难得到确切答案,因为集团的决策背景和讨论信息只有高层才知道,而且就算知道答案,也不会对业务规划目标的理解有更多的帮助。

技术学习

第二个场景是技术学习。
在某次 Netty 培训课上,我通过 5 个为什么,来验证大家是否真的深入理解了 Netty 网络高性能的核心原理。
问题 1:为什么 Netty 网络处理性能高?
答:因为 Netty 采用了 Reactor 模式
 
问题 2:为什么用了 Reactor 模式性能就高?
答:因为 Reactor 模式是基于 IO 多路复用的事件驱动模式。
 
问题 3:为什么 IO 多路复用性能高?
答:因为 IO 多路复用既不会像阻塞 IO 那样没有数据的时候挂起工作线程,也不需要像非阻塞 IO 那样轮询判断是否有数据。
 
问题 4:为什么 IO 多路复用既不需要挂起工作线程,也不需要轮询?
答:因为 IO 多路复用可以在一个监控线程里面监控很多的连接,没有 IO 操作的时候只要挂起监控线程;只要其中有连接可以进行 IO 操作的时候,操作系统就会唤起监控线程进行处理。
 
问题 5:那还是会挂起监控线程啊,为什么这样做就性能高呢?
答:首先,如果采取阻塞工作线程的方式,对于 Web 这样的系统,并发的连接可能几万十几万,如果每个连接开一个线程的话,系统性能支撑不了;而如果用线程池的话,因为线程被阻塞的时候是不能用来处理其他连接,会出现等待线程的问题。
其次,线上单个系统的工作线程数配置可以达到几百上千,这样数量的线程频繁切换会有性能问题,而单个监控线程切换的性能影响可以忽略不计。
第三,工作线程没有 IO 操作的时候可以做其他事情,能够大大提升系统的整体性能。
这种场景在晋升答辩的时候也会经常发生。评委在考察申请者能力的时候,很喜欢用“夺命连环问”,连续追问为什么。如果平时没有训练和积累,你很可能被问到哑口无言的地步。
对于方案选择相关的问题,你可以用第 24 讲介绍的 3C 方案设计法,让自己的思考更加全面,选择更加有理有据。
而对于技术深度相关的问题,你可以先按照第 19 讲介绍的链式学习法学习某项技术,然后再搭配 5W 根因分析法来训练自己,多问自己一些为什么,把深层逻辑吃透。
这样在晋升答辩的时候,你就能从容应对,不用再害怕评委针对技术深度展开“夺命连环问”了。

管理改进

在某次项目延迟问题的讨论会上,我通过 6 个为什么,把项目延迟的核心原因找了出来。
问题 1:为什么项目延迟了?
答:因为要等测试环境进行测试。
 
问题 2:为什么要等测试环境?
答:我们只有 2 套测试环境,2 套都已经用于另外两个项目了。
 
问题 3:为什么只有 2 套测试环境,不能搭建多套吗?
答:现在没有机器用来搭测试环境了,而且我们有将近 20 个子系统,搭建一套可用的测试环境耗时可能要一周。
 
问题 4:为什么会没有机器,直接申请机器不就可以了?
答:运维今年的预算用完了,不能购买新机器了。
 
问题 5:为什么一定要用新机器,测试环境对机器性能要求高吗?
答:测试环境对机器性能要求不高,基本能跑就行。
 
问题 6:那为什么不找运维申请过保机器(使用超过 3 年的机器,即使没坏也要换掉)用来搭建测试环境?
答:之前没想过这个方案。
所以解决方案很简单,直接找运维借几台过保的机器用来搭建测试环境。
不过这还只是短期的解决方案,实际上在问题 3 的回答中,我们还可以发现另外一个问题:搭建一套环境太耗时了。
于是测试开发部启动了一个基于 Docker 的快速搭建环境的项目,项目完成后,任何一个开发或者测试同学花 5 分钟就能生成一套全新可用的环境。

注意事项

通过这 3 个例子,我想你已经理解了 5W 根因分析法的使用技巧。在实际应用的时候,我们还需要注意以下 3 点:
1. 问题数量不是关键,找到根本原因才是关键
在介绍业务分析这个例子的时候,我已经提到,5W 或者说 5 个为什么只是一个形象的说法,3 个也可以,7 个也可以,关键在于找到根本原因。
所以一个最简单的提问方法就是:下一个问题是对上一个回答的进一步深入
虽然数量可多可少,但我建议不要少于 3 个,因为凭借 3 个以下的为什么,大概率找不出根本原因;但是也不要多于 7 个,因为如果问了 7 个以上的为什么还没找到根本原因,那就要审视一下问题本身是不是有问题了,比如关注的焦点偏移,前面问的是 A,后面变成了问 B 了。
2. 首先要明确问题本身
5W 根因分析法起源于生产过程,通常情况下问题都是比较明显的,比如机器停机了或者次品率升高了。但是,还有很多情况下问题本身其实是不明确的,每个人的理解可能都不太一样。
如果没有明确问题就开始问为什么,无论问题多么精彩都没有意义,甚至越精彩离题越远。
比如“成交量大幅下降”,这个问题就不明确,到底下降 10%、30% 还是 50% 才算“大幅”?是同比下降还是环比下降?是某一个子业务下降很多,还是所有子业务都在下降?
如果这些问题都不明确就开始进行根因分析,就很可能得出一大堆似是而非的原因和改进措施。
3. 避免变成大型“撕逼”现场
在连续追问“为什么”的时候,如果双方没有对这个方法充分达成认识,被问的人很可能觉得你在挑战和质疑他,讨论的现场就会变成大型“撕逼”现场,最后闹得不欢而散。
所以在一开始的时候,就要先解释清楚,待会儿将采用 5W 根因分析法来探讨根本原因,避免挑起情绪对立,引发“撕逼”。

小结

现在,我们回顾一下这一讲的重点内容。
5W 根因分析法就是通过追问 5 个为什么来分析问题的根本原因,从而得到彻底的解决方案。
5W 根因分析法起源于生产过程的问题原因分析,但也可以应用于业务分析、技术学习和管理改进等场景。
使用 5W 根因分析法时要注意:首先要明确问题本身;问题数量不是关键,找到根本原因才是关键;避免变成大型“撕逼”现场。

思考题

这就是今天的全部内容,留一道课后思考题给你吧。
你是否经历过让自己印象深刻的挫折?试试用 5W 根因分析法自我分析一下原因,也许这次得出的答案会超出你原有的认知。
欢迎你把答案写到留言区,和我一起讨论。相信经过深度思考的回答,也会让你对知识的理解更加深刻。
分享给需要的人,Ta购买本课程,你将得20
生成海报并分享

赞 22

提建议

上一篇
25 | PDCA执行法:怎么推动落地才能“步步为赢”?
下一篇
27 | 5S问题处理法:怎么应对问题才能转危为机?
unpreview
 写留言

精选留言(18)

  • 吴科🍀
    2021-01-29
    让我想起了,领导的灵魂拷问,一般是连续问3到5个问题,直到找到问题的本质。 这个方法适合上下级,或者自我审查。平级之间还真有可能,成了撕逼现场。 一定要对事不对人,否则真会不欢而散。

    作者回复: 是的,这个技能是管理者的基础技能,用来处理问题、挖掘根因、考察下属是比较好的

    30
  • Harvey
    2021-01-29
    你好,华仔: 1.明确问题需要量化,我认为这个确实是个坑。好比别人让你做一件事情,说的很模糊,问多了你又担心别人认为你不聪明,导致信息不对称 。所以对这种问题需要自己整理一个处理问题的框架 问题的分类及解决方案。 2.问题的源头一般情况下都能看到,比如项目延期,需求完成进度等。这些都有一些指标或者结果,适用复盘或者总结。 3.如何终止提问也学到了一点,你或者团队不能掌控的事情,就可以终止了。 4.请教一个问题?当5w的原因偏离了实际,又应该怎么解决呢?比如拿项目延期来说,有可能原因是个人能力不行,那么下一个问题就是为什么个人能力不行,因为加班没时间学习。这个问题链就全然不同。
    展开

    作者回复: 第2点:恰恰相反,很多时候源头并不容易看出来,需要去挖。 第4点:对于项目延期来说,问到个人能力不行已经够了;原因和你说的第3点收获是一样的,因为项目经理或者TL为了解决项目延期的问题,要做的要么就是加人,要么就是换人,不可能说培养这个能力不行的员工来避免项目延期,因为培养的时间和效果都是不确定的,对当前项目延期这个问题没有帮助。 至于某个成员能力不行这个问题,可以使用5W继续深挖,但深挖的目的不是为了解决项目延期的问题,而是解决成员能力不行这个问题,可能是招聘有问题、也可能是培养有问题、也可能是工作态度有问题,不同原因的对应措施不同。

    共 2 条评论
    12
  • Geek_a2e439
    2021-02-15
    用5w根因法,很担心会被认为一直质问别人。

    作者回复: 是有这个风险,所以说话要委婉一些,例如把“为什么”三个字前面加上“我想了解一下”。

    共 2 条评论
    11
  • 阿男
    2021-01-29
    感觉面试也能用的着,可以针对一个技术点,一层一层的问,每一级都对应着一个技术深度

    作者回复: 完全可以,面试的时候考察技术深度和思考深度就是用这个方法。

    5
  • 缪文
    2021-02-27
    这个可能真要看人,上级问下级可以,产品问开发,开发问产品,还真可能变成撕逼现场。

    作者回复: 是的,所以说话要委婉一些,或者有个比较厉害的大佬坐镇现场。

    3
  • 王同学
    2021-01-30
    两个问题 1.用5w在分析线上bug时,如果发现是其他部门基础支撑平台提供的下载服务有问题,是不是就算找到核心问题了? 2.学习技术时,用5w确实可以深入理解某一项技术,但是理解到什么程度就可以终止?这个技术深度的度怎么去把握?

    作者回复: 1. 可以再多问1个w,但不需要继续深入了,这样做的目的是当其它人问起来的时候,如果你完全不知道基础平台的情况,可能会给人一种事不关己的感觉。 2. 参考19讲的链式学习法,一般来说领域深度3~5层差不多了,这一讲的netty就是5层,其实你直接按照5W来问,只要是逐步深入的,5个问题基本就够了。

    2
  • sgb
    2021-01-29
    想到今年刚做的一个项目,没有按计划时间发布, 1.为什么没有按计划完成发布? 因为时间计划安排太紧,产品一直没达到老板要求,一再修改调整导致延期。 2.为什么时间计划安排不准确? 这是个技术产品,需求由团队内部提出,做成什么样也是内部决定,项目开始时没有明确好产品需求范围,没有明确好产品要做成什么样,自己做为负责人,把产品想简单了,很多隐形需求没评估到,所以时间没估准。 3.为什么把产品想简单了? 因为没有做好产品方案的调研,对于产品做成什么样没想清楚。另外老板心里其实有产品的样子,但是没领会他的想法。
    展开

    作者回复: 非常赞的案例👍 到了第3个问题后还可以继续问下去:为什么没有领会老板的想法?老板的想法为什么没有明确的表达出来?

    共 2 条评论
    2
  • 怀揣梦想的学渣
    2022-07-06
    5W方法对我来说,难度在于不跑偏,我使用该方法时,就会出现问题跑偏的情况。比较尴尬。

    作者回复: 多练习练习

    1
  • 花儿少年
    2021-08-05
    这个方法我也在网上专门找过,在工作刚开始几个月左右,因为自己写技术方案,和别人对接考虑不充分,老是有遗漏的地方,所以就专门找了找如何思考的更深入,就是这个方法,哈哈,后来就尝试用了,多问几个为什么,刨根问底,慢慢地考虑方案越来越全面,少了疏漏。 方法很简单,重要的是实践,我当时就给自己做了个定时提醒,每天都提醒一下,哈哈 希望大家都能实践起来
    展开

    作者回复: 确实是很简单但是很有效的方法 :)

    1
  • 李日煌
    2021-03-19
    打破沙锅问到底!
    1
  • 周平
    2021-03-03
    这个方法论真好,直击灵魂的三问。 问:为什么 我要等到自己 欠工资那么久,自己借款导致生活撑不下去了以后,才离开? 答:因为我想把扫地机器人做成,坚持到最后。 问:如果扫地机器人做不成了,你会主动离职么? 答:不会。 我还想坚持到最后。想见识一下公司最后能成什么样。公司这个算法运行的硬件平台,也不好找到。还有成长空间。 问:为什么没有意识到,一个好的成长环境的公司,比如,现在的新公司这里,会促使你成长的更快? 答:关注圈=0导致的(大圈小圈方法论,影响圈,关注圈)。 那好,有一点结论了。 1.想见识一下公司最后成什么样,这回长见识了。 有专门坑人的领导,刷新了我对领导的认识。也重新认识了公司这个物种,也算是一个收获。也算长了见识。 2.以后也要扩大关注圈。埋头工作是影响圈,抬头看天,关注外面的世界也要做。
    展开

    作者回复: 哈哈,活学活用,非常生动的案例 :)

    共 2 条评论
    1
  • 贝贝
    2021-02-26
    自我审查,以免自我麻痹甩锅给客观原因
    1
  • Nights
    2023-02-11 来自北京
    之前出了一个故障,使用5W法 1、为什么会出故障? 答:因为多传了一个字段。 2、问后端:为什么要传这个字段? 答:新需求开发 2.1 、问前端:为什么传了这个字段就会有故障? 3、为什么新需求要加这个字段? 答:解决新需求通用型问题。 4、不能通过别的方式解决吗? 答:可以,但是别的方式成本高 问题:从第 2 个问题开始有分支,最后可能得到两个根本原因,这个正常嘛?
    展开

    作者回复: 正常的,很多问题背后的原因不止一个,可以画出一个5W的分支图出来

  • 毛成方
    2023-01-04 来自浙江
    为什么 XX项目延期了? 因为上游SDK延期了 为什么 上游SDK延期了 上游SDK 依赖主工程业务模块,需要彻底解耦 上游解耦花了多久 4天 那咱们在原来评估基础上增加4天 如果原定交付的时间不变,那就加人加班冲一冲。 最后解决方案就是增加4天工期 外加一开发参与攻坚交付里程碑项目。
    展开
  • xing.org1^
    2022-10-12 来自广东
    这个是不是也可以用来情绪调节和管理啊?当自己陷入认知或思维困境是不是都可以用它来剖析自我

    作者回复: 完全可以的

  • dog_brother
    2021-12-03
    压力面试的好方法

    作者回复: 有的人会以为是在刁难 :)

  • 1242079399
    2021-10-23
    打破砂锅问到底,哈哈哈

    作者回复: 精神类似,但是这个更有指导意义

  • 起而行
    2021-04-04
    没有开发完就提测然后被打回,为什么? 因为项目已经延期不想拖进度,为什么? 因为开发不熟练效率不高,为什么? 没有做好计划做任务分解,为什么? 没有及时同步进度和延期风险

    作者回复: 第5个why跟第4个对不上,第5个应该是问为什么没做好任务分解,答案可能是迫于PM压力,也可能是对系统不熟悉等等