概述
质量成本分为两类:
- 一类是事前防止失败的一致性成本;
- 一类是事后处理失败的非一致性成本。
事后检查处理的代价其实是最高的。
实际上,质量是规划、设计、建造出来的,不是检查出来的。
预防高于检查,预防错误的成本通常比在检查中发现并纠正错误的成本低得多。
作为项目管理人员,你该如何更好地规划质量管理活动呢?
质量规划,明确标准
规划质量,是识别项目及产品的质量要求和标准,并确定用哪些保障方法、改进措施来达到这些标准的过程。
需要注意的是, 在业务生命周期的不同阶段,质量标准应该是动态变化的。
定义好了质量标准,你要思考的是,在整个项目的进程中,需要规划好哪些质量保障活动,以很好地达到这个标准。
其中,需要特别关注研发过程中的质量保障手段,制定适当的编码规范、提交规范和分支规范,同时设计代码准入标准,确保代码 Review、单元测试、接口验证和 UI 验证等手段与你的项目质量要求相匹配。
项目经理的视角始终聚焦在项目的整体目标上。在项目经理看来,质量作为目标的一部分,达到要求是最重要的,不需要追求质量的无止境提升。因为,质量终究也是有代价的,是否够用则取决于项目目标和要求。
质量分析,追根溯源
质量分析,是指识别项目运行期间,整体质量上遇到的问题和制约因素,分析根本原因,并制定相应的预防措施和解决方案。
定位完问题,我们就可以采取相应的措施进行改进或预防了。
质量出现问题,经过深入分析,我们对频发的质量问题有了以下认识:
- 1.团队扩张得很快,在相当长的时间内,测试人员的配比都非常低,8 个开发对应 0.5 个
测试。测试基本上只是给开发打工,只能保证最最基本的功能,其他更深度的测试类型
根本无所涉猎; - 2.团队没有从用户的视角来检验产品,上层模块的应用场景、运维的应用场景与测试的视
角相差较大,测试效果很难保障; - 3.约有五分之一的线上 Bug,是来自社区,用户侧出现问题以后才去社区找,再把这个补
丁合进来,没有主动应对。
同时,我也做了用户调研,最终的结果显示,用户对底层核心模块的期望更多的是稳定,至于新功能,用户普遍表示暂时没有需要。因此,盲目增加复杂功能其实并不明智,保持产品简单可靠才是王道。
定位完问题,我们就可以采取相应的措施进行改进或预防了。
1.新功能适当放慢:在基本功能已经成型的情况下,进一步控制新功能开发在迭代中的占比与优先级。当时我们定义的是不超过 70%,在一定时期内,核心功能不再做大的变动。
团队没有从用户的视角来检验产品,上层模块的应用场景、运维的应用场景与测试的视角相差较大,测试效果很难保障;
2.回顾总结:将线上 Bug 分析作为周会的一项固定内容,集体讨论出整体层面上的改进措施,并跟进实施到位。
3.查漏补缺:对已有的测试用例进行全面梳理,与相关的开发、测试、运维一起集体review,花大力气补充测试代码(增加异常、并发、稳定性测试等)。考虑到这是一项长期工作,要确保将其分解到各个迭代中,分批实施。
4.走到前面:紧密跟进社区 Bug,分析重现并评估影响,定期总结梳理,并组织讨论应对措施,主动引入必要的补丁。
5.以终为始:新功能需求确定后,测试用例同步设计并进行 review,然后开放冒烟测试标准,让开发人员在明确“什么是完成”的前提下,进行开发。
在坚持了两个月之后,整体的质量状况好了很多。总体来说,质量分析最重要的是要追根溯源,找到问题症结。我们给你推荐几种简单实用的方法:
- 1.每月坚持开线上 Bug 分析会。你可以召集产品、研发、测试,一起对过去一个月的线上问题,进行深入的根因分析,制定策略并推进落实。
- 2.持续进行内部 Bug 分类。从不同维度分析 Bug 原因,你可以按照具体引入阶段给 Bug分类,比如需求不清、设计缺陷、逻辑错误、测试遗漏、变更引发的覆盖升级、历史遗留等,也可以按照 Bug 类别分为功能问题、性能问题、界面问题、兼容性问题等。从数据统计上,你就可以准确地知道,自己项目的质量问题主要出在哪个环节,下一步是要先规范代码准入标准,还是加强需求评审,以及哪些保障措施会更有效。
- 3.建立质量大盘,拉通不同业务线或模块的每月 Bug 趋势,对齐千行代码 Bug 率、Bug数 / 需求数的比率、Reopen Bug 率等,对低于平均线下的业务线或模块进行有针对性的原因分析。
质量控制,层层卡点
如果说质量分析的要点重在追根溯源,那么质量控制,就是将一些明确下来的质量规范和做法,真正落地到各个环节。我给你分享一张样例图,它展示的是从需求到发布的整个过程中的质量活动概览。
想要推动质量改进措施的落地,与之相匹配的工具是必不可少的。
使用 PMO自主设计开发的企业效能平台 Overmind,来完成持续集成和持续交付,并在需求到发布
的整个链条中,层层设置相应的质量卡点。你可以根据实际需要,逐步为自己的应用定制合适的持续集成方案,指定代码准入的阈值,比如静态扫描、单元测试、覆盖率测试、冲突检测、Jar 包版本检测的通过条件等。
需要注意的是, 质量控制及卡点行为,是要结合项目的质量要求和团队的质量成熟度,一层一层地加强质量把关和收口。即便是在同个项目的不同应用中,也会因为线上要求的不同,而对质量卡点有不同的侧重。通过质量卡点的在线工具化,才能做到真正有效的质量保障。
比如,某些团队在特定阶段,会按照静态代码扫描问题的级别来分级计算缺陷值,提交测试申请时,如果系统检测到缺陷值有升高,就不能够成功提交。
总结
今天,我们分享了项目经理在质量管理过程中的工作,可以从三个方面入手,分别是:
- 质量规划,明确项目的质量标准;
- 质量分析,追根溯源,找到质量差距的根本症结;
- 质量控制,在需求到发布的过程中,设置层层卡点来控制质量。
要想一次把事情做对,你首先得明确什么是对,然后要分析差距,找到相应的质量保障方法,并不断迭代。这三个方面是个螺旋式循环上升的过程,你需要不断地根据质量分析的结果,设置合适的质量卡点,直到达到规划中的质量标准。