在做根因分析时,如何判断是否找到了根本原因,并没有一个明确的定义,我在实践中总结了一个简单的规则,即:最后一个可控原因就是根因!何谓可控原因?即在原因分析的责任主体内可以改变的因素就是可控原因,反之责任主体无法改变的因素就是不可控因素,不可控因素应该做为原因分析的外部条件,前提条件。如果是在测试部门对逃逸的缺陷做原因分析,测试部门就是责任主体,测试部门不可改变的因素就是不可控因素。如果是在整个研发部门范围内做原因分析,研发部门内无法改变的因素就是不可控因素。在识别改进措施时,是在此前提条件,寻找可行的措施!
举例说明如下:
分析路径一:
现象 | 需求变更太多! | |
问题 | 原因分析 | 是否根因 |
1why: 为什么需求变更那么多? | 因为在需求调研时遗漏了某些需求; | |
2why: 为什么遗漏了需求呢? | 因为需求工程师没有掌握需求获取的方法。 | |
3why: 为什么他没有掌握需求获取的方法呢? | 因为他没有经过系统的需求工程的训练! | |
4why: 为什么没有接受过训练呢? | 因为公司没有提供需求工程的培训机会! | 根因在此! 在培训预算有限的前提下,如何对需求工程师进行有效的训练! |
5why: 为什么公司没有提供需求工程的培训机会? | 因为公司的培训预算太少! | 培训预算是公司总体经营环境决定的,是不可改变的因素! |
分析路径二:
现象 | 需求变更太多! | |
问题 | 原因分析 | 是否根因 |
1why: 为什么需求变更那么多? | 因为在需求调研时遗漏了某些需求; | 根因在此! 因为下一层原因是不可控因子,则本层就是根因,措施要在本层次来定义了! |
2why: 为什么遗漏了需求呢? | 因为需求工程师记性不好! | 该原因是不可控因子,是无法改变的,则该原因就是前提条件。 |