三、质量

这里我们要学习的是,如何将质量融入过程和可交付物中,保证一开始就把质量做好。

质量是一个量词,是衡量产品、服务或交付成果(以下并称“交付物”)的某些特征满足需求的程度。包含客户描述的显性能力,以及隐含的一些要求。这些显性或隐性的要求,可以通过对交付物的测量,来验证符合验收标准并适合使用的质量。

质量融入的目标:

(1)项目质量要求符合项目或产品的需求,并达成干系人的期望。

(2)质量管理聚焦交付物达成验收标准。

(3)确保项目过程的质量管理更适合、有效。

我们这里提到的质量融入,更多的是从交付物质量的角度提出的。这个交付物包括文档性质的、应用系统的、特定机制的(隐私保护机制、数据备份机制等),是否符合项目的裁剪,能达成项目目标。同时,也能满足各相关干系人提出的要求、应用场景,并满足验收。

(一)了解质量的维度

可以通过以下几个维度了解质量:

绩效:针对交付的功能是否符合项目团队和相关干系人的预期;

一致性:交付物符合需求,适合应用;

可靠性:一般指应用系统类交付物在一定时间内重复执行或运行,达到一致的效果或度量指标;

韧性:更多地体现为容错能力或者易于恢复,能更好地应对意外故障并快速恢复;

统一性:按照类型划分的交付物,同类型的交付标准要保持统一;

可持续性:是针对交付物的收益来说,要能产生持续的、积极的效果。对于社会、经济和项目所处的环境产生正向价值;

满意度:交付物需要及时获取到相应的客户或最终用户的积极反馈,包括用户应用的场景、习惯和体验;

效率:也可以理解为投入产出的效率。保持良好的、稳定的交付速率,以较少的输入和投入产生最大的交付成果。

一个项目的质量标准首先来自提出的需求,根据需求的验收标准作为基础来建立度量指标。需求包含交付物要满足的能力或达到的交付目标,这些内容可能来自合同、行业政策、业界标准、监管规定或相关干系人的期望。所以,交付物的质量首先要达到需求描述的验收标准,并且跟随实际的项目开展会有调整或者优先级的变化,建议在过程中要频繁地与相关干系人沟通成果,并得到有效的反馈。确保验收的标准和交付质量保持一致。

在项目过程的各个活动中,交付物的质量多数情况下是通过审查和审计的方式进行持续评估的。但涉及应用系统类的交付物,则需要进行与相关干系人的演示和反馈在过程中进行评估。这些活动都是侧重尽早发现问题,尽早评估质量风险,预防较大的错误偏差和缺陷。

进行质量管理及相关活动的目标是在资源投入较小的情况下,并最大化确保以明确、快速的方式达到期望质量的交付成果。质量管理的结果,总的来说就是初期明确交付质量的要求,确保“Do Right Thing(做正确的事)”,进而较快达到验收标准。同时,尽早识别缺陷或风险,并有针对性地制定预防或改进的措施,避免和减少返工和废除的浪费。

质量要求不会随着项目生命周期、开发方式和交付频率等变化而不同,即质量活动和质量目标应该是跟随项目目标和需求标准的,不会因为形式的变化而降低标准。

(二)质量管理过程的作用

质量管理过程及实践是有利于交付物和成果的,更有利于最大化达成组织和相关干系人的期望、符合需求的用途和验收标准。同时,积极促进项目过程产生更好的成果,以及可能包括以下方面:

图1-12 质量管理过程的作用

(1)符合验收标准所定义的目标。例如,满足客户隐私保护规定的“菜多多”A pp,在目标是App,但验收标准中需要满足对于使用“菜多多”的客户能保证隐私信息或数据得到明确的保护机制。

(2)达到相关干系人的期望,以及项目的商业目标。例如,“禅道”刚开始是要先满足一些干系人期望的项目全周期的管理,再扩展多种研发模式、多维度的度量数据,能更好地实现客户使用率的商业目标。

(3)通过过程质量管控,尽可能减少缺陷或无缺陷。例如,在开发编码结束后,通过应用自动化单元测试、自动化构建、自动代码扫描等质量技术的应用,确保在较早阶段就尽早发现编码问题,及时补救和完善,能直接提高交付质量,做到低缺陷或“无缺陷”。

(4)确保尽快交付,并提高交付的效率和生产力。例如“菜多多”通过混合模式的目的,就是让大家从靠后交付的瀑布模式,通过混合模式尽快转变为敏捷,通过频繁的迭代交付提高交付效率,保证生产力。

(5)能加强成本的管控,尽可能规避或减少浪费,即减少返工和报废。例如,业界一些To C的产品,通过建立质量门禁,避免一些严重缺陷等风险问题因人为因素而进入下一环节,导致迭代的版本带着质量问题进行投产,既影响客户对产品的满意度,导致客户流失,又导致团队的返工解决问题而造成的浪费。

(6)最大化提高交付质量。例如,通过建立质量内建,强化全体项目团队都有意识地进行质量管控,减少返工和浪费的同时,促进过程交付质量的提高,进而在项目范围内最大化提交交付质量。

(7)减少客户投诉。简单来说,质量提高,减少客户使用的错误和问题,提高了客户使用的流畅度和体验,自然就减少了客户使用中的困扰和投诉。

(8)促进供应链的良好协作及整合。例如,有些大企业客户需要的系统较多,属于系统集群的情况,需要多个不同的供应商相互协作才能完成整个系统集群的交付。这样质量管控就非常重要了,否则一个质量问题可能会导致多个供应商产品的系统集群问题,而且相互推诿会导致问题解决周期更长,浪费更多。像这样的大规模项目,非常依赖质量管控,才能提高供应链间的协作效率,促进资源的整合。

(9)提高团队的士气和满意度。例如,“菜多多”在第一个迭代的时候,因为大家对迭代短周期交付节奏不熟悉,相互之间交付的结果总是出错,就导致团队内部产生了间隙,大家都相互抵触配合,进而导致相互的职责。为了避免这种情况发生,就要时刻确保工作中具有质量意识和质量标准,以交付效率和质量标准为共同目标。

(10)可靠的服务交付质量。例如,业界有些非常知名的App应用,对于大家来说就是质量的保证。他们的产品团队通过质量内建和提高质量管控能力,直接体现在交付结果上,让客户、用户非常信赖App的使用和更新,具备可靠的品质,大家也深度信赖这样的App或背后的产品团队。

(11)提高决策的参考依据。过程质量就能一定意义上反映结果的质量,我们在过程中监控质量的数据或者交付质量,就可以在关键里程碑进行更加有效和准确的决策,例如,业界一些App,在基础功能得到市场认可的同时,就会提高产品更新的频率,来进一步抓住客户的好感度。

(12)促进过程的持续改进等。在过程中体现质量管理,就能时时以质量视角来促使项目团队进行改进。例如,有些To B产品在初期因为选择了优先开发应用功能而放弃了性能质量,导致中期试用时应用卡顿的情况突显,进而被迫停止开发,进行性能优化。所以,质量融入过程,就能促进持续改进。