软件数据分析的三重境界
数据分析是软件开发过程中非常重要的实践。在GJB5000A各个成熟度等级中都有数据分析的实践要求,就能说明这一点。GJB5000A中有关数据分析的实践要求如下:
-
在GJB5000A的二级中就有测量与分析过程域,要求对测量数据进行分析,并依据测量和分析结果管理项目;项目监控过程域要求分析与计划的偏离,分析问题;质量保证过程域要求分析不符合项,分析质量趋势。
-
GJB5000A三级的验证和确认过程域要求对验证和确认结果进行分析。
-
GJB5000A四级要求使用统计和定量分析技术。
-
GJB5000A五级要求分析过程改进结果。
尽管GJB5000A标准给出了很多数据分析的要求,但往往只说明了要进行分析,要采用合适的数据分析工具和方法,却并没有说明如何分析。由此导致很多组织的数据分析实践绩效较差,数据分析结果并没有像标准期望的那样,给予项目管理和组织决策以有效的帮助,事实决策还只是一句空话。
所以如此,是这些实施GJB5000A的组织并没有理解数据分析的作用,而GJB5000A中也没有明确这一内容。要理解数据分析的作用,我们应当主动去学习数据分析的知识。其实数据分析有三大作用:现状分析、原因分析和预测分析。我把它称为数据分析的三重境界。
第一重境界:现状分析
现状分析,简单地说就是你发生了什么,用数据来清楚地表示项目的状态、软件的质量。这是一种初级的数据分析,其中最常见的就是对比分析法。这也是我们在实施GJB5000A时至少要完成的数据分析。
比如:
对于不符合项的分析要采用“数据分布图”:不符合项的过程分布和产品分布。过程分析就是将不同过程的不符合项数作对比,产品分布就是将不同产品的不符合项数作对比。
又如:
对于评审缺陷数据和测试BUG数据的分析,通常与一个组织的缺陷数据和BUG数据的标准值来比较,以判定其是否满足组织的质量水平。
第二重境界:原因分析
原因分析,就是分析问题或机会出现的原因。原因分析常见的方法是鱼骨图法、5WHY法等。
在实施GJB5000A的时候,我们会对问题进行原因分析,对超出阈值范围的测量数据进行原因分析,但是效果并不好。这可能有以下两个原因:
-
没有采用有效的分析方法,并没有找到问题的根本原因;
-
原因分析的目的只停留在纠正层面,没有把它作为改进的手段。
如果在实施GJB5000A组织中要达到这一重境界,那么:
对于评审缺陷数据和测试BUG数据的分析,就不能仅停留在是否满足质量水平上,还应进一步分析满足质量水平的原因是什么,在后续的项目中应当坚持同样的做法,甚至将其发扬光大;应进一步分析不满足质量水平的原因是什么,要采取什么样的措施可以避免这样的问题再次出现。
第三重境界:预测分析
预测分析,简单地说,就是告诉你将来要发生什么。预测分析是一种高级的数据分析,常见的方法有相关分析、回归分析、因子分析等。
在GJB5000A的中也有这样的预测分析要求,比如质量保证过程域的质量趋势分析就要求进行质量的预测。但在实际的实施过程中,没有哪个组织能够做好这一实践(那些给出了不符合项随时间的变化趋势并不能真正代表质量趋势)。
要对软件质量进行预测,要综合使用相关分析(和软件质量相关的因素分析)、回归分析(根据现有的质量水平预测未来的质量水平)、因子分析(影响软件质量的不只一种因子)这几种方法才能实现。
以上是软件数据分析的三重境界。目前实施GJB5000A的组织,大多数都停留在第一重境界——现状分析之中。少数进入第二重境界——原因分析,第三重境界的凤毛麟角。
希望本文能够给实施GJB5000A的组织带来一些思考,大家都能早日进入第三重境界,能够用定量的数据分析结果来管理项目、管理组织。
这正是:
分析现状易实现,原因分析难上难
数据分析三重天,预测何时能实现
参考文献:谁说菜鸟不会数据分析(入门篇),张文霖等,电子工业出版社
作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。
《软件数据分析的三重境界》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/1839.html