掌握“五个为什么”方法,帮助开发人员解决问题
方法起源和目的
尝试一下!
编程本质上是解决问题,无论规模大小。解决问题的最佳方法是找出问题的根本原因。考虑到调试在工作流程中占了很大一部分,你需要使用足够可靠的分析方法。
我在一家Java 开发公司工作的经历让我体会到,构建解决方案的方法至关重要。无论是时间效率还是最终产品的质量,结果都是可以清晰衡量的。
话虽如此,五个为什么方法是深入进行根本原因分析 (RCA) 最有用的工具之一。
方法起源和目的
该方法的起源源于丰田的科学方法。更具体地说,其目标是找出问题的根源并精准定位。通过重复五次“为什么”,问题的本质和解决方案都变得清晰起来。
后面每个“为什么”都对应着前一个“为什么”的答案。眼见为实,所以这里,我来给你举一个实际的例子:
从背景和问题定义开始
你可以运用该方法分析遇到的任何问题。你需要了解具体情况,才能充分利用“五个为什么”方法。在作为开发人员或质量保证人员的工作中,利用现有文档,你将掌握开始提出“为什么”所需的所有信息。
先说一下当时的情景:
我第一次来巴黎。我以前从未用过电动滑板车,所以租了一辆——Lime。我花了5到10分钟适应了一下,然后开始在自行车道和公交车道上骑,因为我打算用它作为回酒店的交通工具。骑车时,我左手拿着手机,以便用谷歌地图避免迷路。
我正站在红绿灯前,现在是红色。灯变绿了,然后……
问题定义:
我把手机掉在左边的车道上。它被车碾了两次。现在根本没法用。
这款手机有硅胶后盖,但没有屏幕保护膜。轮胎直接碾过后盖,玻璃碎成了小块。为了确定问题的根本原因——手机掉落——我运用了“五个为什么”法:
我为什么把手机掉在地上?
因为绿灯亮后刹车踩得太猛,为了控制车把,手机掉了,掉在了中间车道上。
我为什么突然踩刹车?
因为当绿灯亮起时我加速太快,有可能失去对 Lime 的控制并伤到自己。
我为什么加速太快了?
因为我是一次性把启动器推到底的,而不是逐渐加速的。
我为什么把启动器推得太用力了?
因为我对电动滑板车的工作原理不太熟悉。我以前从未在全速状态下骑过。我不知道一下子把开关完全按下去就能让车子立即达到最高速度,而不是慢慢加速。
为什么我对电动滑板车的机制不太熟悉?
因为在将手机用作 GPS 之前,我没有花时间测试它的所有功能。
根本原因——“五个为什么”方法的启示
我太没耐心了。还没来得及完全适应 Lime,就引入了新的干扰。由于一次性添加了太多新元素,我最终为了安全牺牲了手机。
替代结论:
由于 Limes 的目标是与移动设备和 GPS 结合使用,因此应该配备手机支架,以满足目标用户将手机安全放置在可以看到并使用导航的地方的需求。
然而,作为极端所有权的信徒,我选择利用这次经历来学习。
通过分析,我发现了我的 Lime 骑行心态的一些潜在升级:
- 不要在 Lime 上加速太快
- 尝试新交通工具时,先习惯控制它,然后再添加干扰和额外的挑战
- 我的手机要么放在口袋里,要么放在合适的支架上戴在手腕上,这样我的双手就可以自由活动。
丰田的技术示例
如果您想了解有关此示例的更多信息,请单击此处:
“机器人为什么停下来了?”
电路过载,导致保险丝熔断
“为什么电路会过载?”
轴承润滑不足,因此轴承锁住了。
“为什么轴承润滑不足?”
机器人上的油泵没有循环足够的油。
为什么泵循环的油不够?
泵的入口被金属屑堵塞。
为什么进气口会被金属屑堵塞?
因为泵上没有过滤器。
尝试一下!
如你所见,你可以将此方法应用于任何情况,从旅行趣事到技术故障。不妨亲自尝试一下。记住,答案要具体,并不断询问“为什么”。务必将问题与上一个问题的答案联系起来——积极地锁定真正的原因。
如果你想查看更多示例,这里还有更多!对于英雄联盟玩家来说,这里有一个特定游戏的示例。如果你想了解更多,请点击这里。
请务必参与讨论,告诉我们你用这个方法解决了什么问题?你觉得它有用且易用吗?
文章来源:https://dev.to/danilapetrova/master-the- Five-whys-method-for-problem-solving-as-a-developer-3hi9