有实体产品的项目一般都有成熟的质量管理体系,成熟通用的标准要求,但软件项目一般偏迭代和敏捷,没找到有成熟的度量体系指标,做为项目经理如何直观的监控到项目的软件产品的开发质量,有哪些好的通用的指标或管理工具。公司正在认证 CMMI4,正在确定项目度量项,暂时制定了工作量 、 偏差 、 缺陷几项指标,感觉无法反映出项目产品实际运行的质量情况。
解决方案
一、项目质量从哪里来
在项目的规划阶段,我们需要确定质量的标准,而质量的标准需要根据项目章程、项目管理计划(成本、时间、范围、干系人)、事业环境因素和组织过程资产等确定。事业环境因素和组织过程资产一般是不随着项目改变的,每个项目有差异的主要是项目章程和项目管理计划。
所以我们要着重研究项目章程和项目管理计划,再辅以事业环境因素和组织过程资产,指导我们制定质量标准。
而对于研发项目来说,质量的终极目标一定是交付物的质量达到要求,并在达到要求的同时保证成本、时间和范围满足项目的要求。
以终为始,我们再去分解如何达到这些要求。
二、项目研发的阶段
首先研发项目一般分为需求设计阶段、代码开发阶段、测试阶段和上线阶段。对于结果的质量要求就分到了每个阶段,这样问题就容易了一些。
需求设计阶段,质量指标主要是变更次数。
代码开发阶段,质量指标主要是自测 bug 数、联调 bug 数、测试 bug 数。测试阶段,质量指标主要是验收 bug 数、线上 bug 数。
上线阶段,质量指标主要是线上 bug 数。
这种阶段划分只要在迭代和瀑布式开发中比较试用,在敏捷开发中不是很试用,但我们要度量的指标基本是相同的。因为不管是什么模式,都逃不开需求、开发、测试、上线这几个阶段。
或许大家有疑问说为什么指标有重复的情况,比如说测试阶段和上线阶段都有
线上 bug 数,如何区分呢?
这就需要我们了解、研究 bug 的根本原因是什么,去确认问题产生的环节。
三、确定具体指标
①参考项目章程、项目管理计划等。当然很多项目是没有项目章程和项目管理计划的,没关系。
②如果是需要在当前项目就应用的,需要我们参考同类项目的指标设定情况,即经验数据。经验数据的来源,可以是公司内部的项目,如果没有,可以参考行业内同类项目的数据。这个阶段可能就要靠大家的信息搜集和辨识能力了。因为找到了指标也要研究下适不适合在你这个项目中使用。
③如果是希望长期应用,则可以只是记录这些数据。在经过一段时间的记录后,我们从数据的角度知道了我们的项目质量的现状,在这个基础上,我们去制定质量要求会更加有把握,达到质量要求所面临的风险、问题也就更清晰了。这个比较适合在公司内部一个比较稳定的项目团队使用。就是说这帮开发、测试产品什么的,一段时间内都在做一个产品或业务。
四、质量的提高也是有成本
质量的测量其实就是对项目人员能力的测量,因为质量的提高也是有成本的。
我们单纯的从数学角度讲,三角形的面积就是质量,质量由范围、成本和时间。
如果质量要求提高,则需要改变三个顶点中至少一个。
也就是说质量的提高或者达标一定是有成本的。当然这个前提是质量要求是高于当前的质量能力,如果是质量要求低于质量能力,那其实就好办很多了。
如何平衡取舍呢?
这个和做产品有点相似,看优先级,那个对你最重要,那个相对不重要,都排排序。
实操中人是最难搞的,所以我们做任何事的出发点,一定要把各位干系人的利害关系梳理清楚再做决定,会从容很多。
五、具体工具推荐
ira:jira 中可以记录需求、bug、任务等,并且灵活性非常高。我们可以根据项目的要求来配置 jira,比如 bug 的分类、WBS 分解、项目阶段等。
这就要求我们一定要记录准确,这个是衡量质量阶段。也就是说如果你不能很
好的描述他,你就不能改变他。
这个对项目团队来说是个负担,负担就是时间成本和资源的占用,这个需要项
目经理作出取舍:信息维护要做到什么完整度和频率。
要填的信息太多,大家就会很烦,记录好之后,过一段时间我们就可以拉出数
据看看质量情况了,如果 jira 比较熟练,可以用 jira 自带的一些图表工具来展示质量情况,如果不行就导出到 Excel。然后我们再看和质量目标的差距,制定方案,然后落地,然后检查,这就是 PDCA 了。