PDCA循环又叫戴明环,是美国质量管理专家戴明博士首先提出的,它是企业全面质量管理所应遵循的科学程序。质量管理活动的全部过程,是质量计划的制订和组织实现的过程,这个过程是按照PDCA循环,不停顿地周而复始地运转的。
ISO9001:2000标准指出, PDCA方法可适用于所有过程。其模式可简述如下:
P--策划:根据顾客的要求和组织的方针,为提供结果建立必要的目标和过程;
D--实施:实施过程;
C--检查:根据方针、目标和产品要求,对过程和产品进行监视和测量,并报告结果;
A--处置:采取措施,以持续改进过程业绩。
PDCA循环可通过以下八个主要步骤实现:①分析和评价现状,以识别改进的区域; ②确定改进的目标;③寻找可能的解决办法,以实现这些目标;④评价这些解决办法并作出选择; ⑤实施选定的解决办法;⑥测量、验证、分析和评价实施的结果,以确定这些目标已经实现;⑦正式采纳更改;⑧必要时,对结果进行评审,以确定进一步改进的机会。
PDCA是使用资源将输入转化为输出的活动或一组活动的一个过程,必须形成闭环管理,四个阶段缺一不可。
在PDCA循环的四个阶段中,每个阶段都有自己小的PDCA循环。比如,ISO 9001:2000标准的管理职责(5)和资源管理(6)是PDCA循环的P阶段,产品实现(7)是D阶段,测量、分析(8)是C阶段,改进(8)是A阶段。而"改进"中的"纠正措施"则是该标准大的PDCA循环中A阶段的小PDCA循环。这样,大环套小环,一环扣一环,小环保大环,推动大循环(图1)。
若按照PDCA循环前进,能达到一个新的水平;在新的水平上再进行 PDCA循环,便能达到一个更高的水平(图2)。
在质量管理体系中,PDCA循环是一个动态的循环,它可以在组织的每一个过程中层开,也可以在整个过程的系统中展开。它与产品实现过程及质量管理体系其他过程的策划、实施、控制和持续改进有密切的关系。
在软件开发生命周期模型中,我们的先辈参照建筑业的管理模式创建了软件业的PDCA循环,这是需求分析-设计-实现-测试-发布的瀑布模型。我们很容易将瀑布模型与PDCA循环进行对应。但这种模型只是对PDCA循环的形而上的应用,并没有揭示软件研发过程的特点。软件研发是一种采用团队协作解决问题的过程,而不是任务完全分隔的方式,可以使开发更有效率并得到一个改良的产品。当团队在解决问题的时候他们参与四项活动:
研究:确保他们完全理解问题; 设计:开发一种方法以解决问题; 实施:执行设计; 验证:确认设计方案是否真正解决预定方案。
把这些理解为活动而不是阶段是重要的。活动是指你做一些事而达到某种结果;阶段是指生命周期中标志项目过程的步骤。活动是交叉开展的,而不是线性的或是完全依赖性的。这点很重要。
受控的迭代模型,将软件研发过程划分为初始阶段、细化阶段、构造阶段及交付阶段
初始阶段:对产品定义取得初步的理解并达成一致,即知道将要交付的是什么? 细化阶段:对产品的详细设计取得初步理解并达成一致,即知道应该如何去构造。 构造阶段:完成初始完成整的功能产品构造。 交付阶段:交付满足初始目标的产品。
而研究、设计、实施、验证则作为一系列的活动分散在四个阶段中,在软件研发过程表现为用例分析、架构设计、详细设计、编码、测试等过程。
PDCA在软件研发的四个阶段并非变得模糊,而是显得更加细致。初始阶段应是对软件研发进行策划的阶段,系统分析师通过用例分析、架构设计、初始模型的建立,实现对软件研发过程的计划。而细化阶段可以既有初始阶段PDCA小循环的具体实施,也有作为构造阶段PDCA小循环的计划,其实现的过程包括对所进行的户级用例的细化与分解、架构实现方案的进一步确立、类及关系模型的建立,在构造阶段,则包含了D阶段的编码实现,也包含了C阶段的测试。而在交付阶段,实施计划、实施执行、实施过程检查及实施总结则直接表现为PDCA循环中的应用。如果理解了分析、设计、编码、测试、交付是作为活动而不是阶段我们对PDCA在软件研发中的应用不难理解了。我相信,在软件研发过程中,我们通过细致的PDCA循环,一定会使软件质量得到持不断的提高。