摘要:PPQA(过程与产品质量保证,Process and Product Quality Assurance)是确保研发标准流程有效落实的重要一环,本文借鉴时下敏捷软件开发的原则与理念,阐述在PPQA工作中的实践平衡之道。
一、敏捷宣言与敏捷软件开发
2001年,17位软件开发领域的领军人物齐集在美国犹他州,以探寻更好的软件开发方法,经过两天的碰撞与讨论,“敏捷”(Agile)这个词为全体聚会者所接受,并起草了如下敏捷宣言以概括敏捷软件开发的价值观:
个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
虽然右项也有价值,但我们认为左项的价值高于右项。
注:原文参见:http://www.agilemanifesto.org/
一言以蔽之:价值导向,平衡左项与右项,以提升整体效率,快速响应交付和变化,这就是敏捷软件开发。
二、PPQA工作中的三大平衡
借鉴敏捷宣言,结合诸多PPQA实践中的难点与困惑,提炼出如下PPQA工作实践中的核心平衡要素:
表1 PPQA实践平衡要素表
(一)平衡在项目中扮演的角色
CMMI模型中,将PPQA的主要作用描述为“为管理层及相关人员提供过程和工作产品的客观洞察以支持高质量产品的交付”,以这个定义而言,PPQA的日常工作应该集中于过程和工作产品审计、审计结果的沟通与汇报,因此“监察”是PPQA角色的基本定位。
Scrum敏捷管理框架中,提出了ScrumMaster的概念,综合而言,这个角色的主要作用是“确保敏捷的原则与方法被正确理解与运用,帮助团队排除障碍与干扰”,兼具“教练”和“护航”的职能。
PPQA在项目中所扮演的角色,应该基于项目的时期、成熟程度、人员构成、规模等因素,在监察、教练、护航三者之间进行平衡:
1)项目初期,教练先行:此时的主要工作包括规范标准选择与裁剪、关键要点讲解、模板样例提供、疑点难点提示等。
2)项目执行,监察跟进:具体的监察审计过程,不再赘述;对于审计过程中发现的不符合问题,则应分类分析并对应,思路如下
表2 PPQA不符合问题症状与对策表
3)适时有度,清障护航:“护航”不是PPQA的本职,但可以提升项目组对PPQA的认同与信任,促进监察与教练工作的有效执行。“护航”的事项基于PPQA人员的精力、能力、权力等可大可小,小到帮助加班的项目人员订车订餐,大到促进项目外部采购延误的解决。在此过程中,需要防止越俎代庖,以免沦为完全的“保姆”和“文案助理”。例如:
PPQA可以承担度量数据采集的工作,但不应该成为数据的唯一使用者。
PPQA可以制作项目的管理类报告,但不应该成为报告的唯一关注者。
PPQA可以承担管理类会议记录的工作,但更应该将记录的要点和技巧传递给项目人员。
PPQA不应该替代项目经理监督任务(沟通效率低,事倍功半),但应该向其提示问题与风险,等等。
(二)平衡过程审计与文档审计
1)文档审计的价值导向
敏捷方法中,对于沟通的效率采用下图进行了展示,强调了面对面沟通的高效性。
图1 沟通方式的效率
但是,文档的作用并不仅限于沟通,且从沟通的持久性来看,其趋势刚好与沟通效率相反。因此对于各类文档,可以采用如下形式平衡审计的严格程度、频度与粒度(该表各列之间无固定的映射顺序):
表3 文档价值平衡表
例如,需求规格说明书,用途是基准,受众是项目组和客户,制定频率是阶段,