本过程域要实现以下目标:
1)标识并分析造成缺陷和问题的根本原因;
2)采取措施,消除这些造成缺陷和问题的根本原因。
本过程域不应在测试发现缺陷之后,再进行,而应在每个项目阶段都应进行。因为,后者更为有效。
本项目发生的问题及其原因分析、纠正措施,都是宝贵的资源,可以被各项目所参考。
原因分析还可用作其他用途。比如,用于改进质量属性,用于过程改进等。
专用实践1.1 选择要分析的缺陷数据
本实践要求依据成本与质量、周期间的回报关系选择要进行原因分析的缺陷和问题。
要收集的缺陷数据,包括:
1)顾客报告的缺陷。
2)最终用户报告的缺陷。
3)同行评审中发现的缺陷。
4)测试中发现的缺陷。
要收集的问题数据,包括:
1)需要采取纠正措施的项目管理问题报告。
2)过程能力问题。
3)过程持续时间的测量值。
4)依据过程的挣值测量值(如,成本绩效指标-CPI)。
5)资源吞吐量、利用率或响应时间的测量值。
原因分析方法,包括:
1)Pareto分析。
2)直方图。
3)过程能力分析。
专用实践1.2 分析原因
本实践要求在合适的时机使用合适的方法对所选择的缺陷或问题进行原因分析,并找出消除引发问题根本原因的措施。
进行原因分析的时机,包括:
1)当稳定的过程不满足所指定的质量和过程绩效目标时。
2)在任务期间,若有正当理由需举行原因分析会时。
3)当工作产品非预期地偏离其需求时。
原因分析的参与者一定包括问题或缺陷所涉及的具体的任务的执行人。
进行原因分析的方法有:因果图(鱼骨图)、检查表。
因果图示例
因果图是以图解方式进行因果分析的一种简易实用的方法。具体来说,因果图怎么使用呢?
使用因果图的基本流程如下,
(1)选定问题,困扰你的任何问题,并写下来。
(2)“向上”追踪,弄清业务后果,即你的问题所造成的“可见损坏:
(3)“向下”追踪,找到根本原因。
(4)确定并标出恶性循环(循环路径)
(5)将这些步骤重复几次调整并理清因果图。
(6)决定要解决哪些根本原因,以及如何解决(即要实施哪些对策)之后进行跟进。如果实施的对策起作用,那么值得祝贺!如果不起作用,别气馁。分析一下为什么不起作用,根据分析得来的经验教训更新因果图,然后尝试其他对策。
要弄清业务后果,通常使用“那又怎么样”来提问;要弄清根本原因,通常使用“五个为什么”来提问。
下面用一个具体的实例来说明因果图的使用。
项目组遇到了“版本发布推迟”这一情况。首先提问这一情况会产生什么后果,之后再通过“那又怎么样”来追踪。
版本发布推迟会有什么后果?
发布周期长。
那又怎么样?
营业收入延迟、客户流失(这才是问题)。
找到问题的时候还需要考虑以下3个方面:
是否有其它问题造成客户流失或者收入延迟?如果有,版本发本发布延迟是主因吗?
能把问题量化吗?流失了多少收入多少客户?这些数据可以评评估花多少精力来解决问题。
问题如果解决,如何能够知道问题得到解决?
接下来用“为什么”找原因。
版本发布为什么延迟?
因为范围不断增加。
为什么?
客户在增加新功能的同时,又不同意移除优先级低的功能。
为什么不同意那些功能延迟到下一版本?
因为版本发布周期太长。
我们的目标是确定问题的根本原因,这样就能花最少的精力达到最大的效果,所以我们需要多问几个为什么。
版本发布周期为什么太长?版本发布延迟是唯一的原因吗?
实际上,就算发布不延迟,我们原先计划的版本发布周期也相当长,原先计划的版本发布周期有多长?
1季度。
为什么那么长?
因为版本发布成本很高而且很复杂。
为什么?
因为每个版本都有太多工作要做,而且都是手工的。
最终因果图
恶性循环用粗箭头突出显示,重复发生的问题几乎无一例外都有这样的循环问题,找到这种循环问题,就大大提高切实而永久解决问题的可能性。
对标出的两个根本原因,制定对策:
版本发布靠手工:实施版本发布自动化。
优先级较低的功能未移除:与客户谈判,约定只有在移除相应大小的优先级较低的功能,才允许他们增加新功能。
如果没有这种因果分析,我们就可能会草率得出结论,并实施无效的甚至是适得其反的措施。例如,增加更多人手,或者改变激励模式(按时发布,则予以奖励;若延迟发布,则予以惩罚)。
因果图具有以下优势:
建立共识:以团队为基础解决问题极为有效,但需要团队所有人员对问题拥有共识,因果图是B非常实用的协作技术
发现问题对业务的影响:了解这些能让大家首先专注于最重要的问题,并作出知情决策
找到根本原因:这有助于强化变更效果,
消除恶性循环:打破恶性循环或将其转变为积极的增强回路,
因果图虽然有用,关键却是解决问题的方法本身:提问的角度、由此展开的讨论以及调查发现,你甚至不需要真的把图画出来,只要在谈话的过程中在脑中想象一下就足够。
小技巧
在确定哪个小问题是根本原因上,可以参考下面这此指标:
(1)某个小问题只有输出没有输入方向的箭头。
(2)从这里开始继续往下挖,已经没有什么意义。
(3)这个小问题是我们能够解决的,而且对我们希望解决跳问题可能会有积极作用。
解决的措施,通常有以下几种,如更改:
1)有问题的过程。
2)培训。
3)工具。
4)方法。
5)交流。
6)工作产品。
有时需要采取一些特定的措施,如:
1)就共同的问题和技术,进行培训,以防止问题重现。
2)更改某个过程,消除容易出错的步骤。
3)自动化整个过程或过程的一个部分。
4)将过程活动重新排序。
5)增加防止缺陷的过程步骤,例如,增加任务启动会议,以评审共同的缺陷和防止此类缺陷的措施。
专用实践2.1 实施行动建议书
本实践要求确保SP1.2分析得来的缺陷纠正措施得到有效实施。
在实施这些措施之前,首先要对它们排个优先级。优先级的确定准则,包括:
1)影响:不处理这些缺陷会有什么影响。
2)成本:为防止这类缺陷而实施过程改进的成本。
3)质量:对质量的预期影响。
具体的实施过程,必须完成如下任务:
- 分配工作。
- 协调从事该工作的相关人员。
- 评审结果。
- 跟踪措施项,直到结束。
对于特别复杂的更改,要先进行试验。如:
1)使用临时修改过的过程。
2)使用新工具。
专用实践2.2 评价更改的效果
本实践要求对缺陷采取纠正措施的效果进行评价。
这个评价不仅仅局限于缺陷本身,也包括对过程绩效影响评价——“确定所选的更改是否对过程绩效造成了正面的影响,以及所造成的影响有多大”;以及对过程改进影响的评价——“确定所选的更改对该过程满足由利益相关方确定的质量和过程绩效目标的能力是否产生正面影响”。
专用实践2.3 记录数据
本实践要求记录下本过程域的有用数据,丰富组织资产,以供项目组使用。
记录的内容,包括:
1)关于所分析的缺陷和其他问题的数据。
2)决策的理由。
3)原因分析会议所提出的行动建议书。
4)由行动建议书所产生的措施项。
5)原因分析和决定活动的成本。
6)由解决方案所产生的已定义过程绩效变化的测量值。