在解决一个问题时,需要搞清楚真实的问题是什么,程序的运行环境以及业务目标,然后才能制定相应的解决方案,不然就可能是在以最高的效率做一件错误的事。
要获得清晰的问题,需要通过与产品经理,开发团队的充分讨论,并达成一致。
清晰的问题定义:
- Specific,具体的
- Measurable,可衡量的
- Attainable,可达成的
举个例子,比如一个研发团队开发经常延期,Bug频出,你觉得会是哪里出了问题?
老板的第一反应可能是开发团队的技术不过关,需要培训。如果你接到了这样的要求,给开发团队进行了一系列的技术培训,却发现问题并没有得到改善,这就是无用功了。
如果你能够深入了解问题的所在,可能会发现问题的根本原因是在需求上,产品给的需求不明确,技术也没有深入了解业务,又或者是需求经常变动,这些都可能导致开发质量下降。
我们可以看到定义问题非常重要,如果问题在开始的时候就定义错了,那怎么可能解决问题呢?
在正确定义出需要解决的问题之后,如何分析出问题的根本原因(根因分析),这里就需要用到我们常说的5W分析法了,多问几个为什么,直到找到Root Cause,这也是我们在解决一个Bug的时候常用的手段。不然可能只是在表面上暂时解决了问题,根本性的问题并没有解决。