能力成熟度模型集成(CMMI,Capability Maturity Model Integration)已逐步成为IT业的标准。CMMI定义了5个组织成熟度级别,包含25个过程域(PA,Process Area),这些过程域全面涵盖了软件生命周期的各个领域。特别是在业界普遍感到难以控制的需求方面,它定义了两个过程域:需求管理和需求开发。
需求管理(REQM,Requirements Management)属于成熟度2级(受管理级)的过程域,是其他许多过程域实施的前提。对于暂未实施CMMI的企业,同样也可以借鉴CMMI的原则,实施和优化需求管理。本文从实际工作的角度,阐述如何用CMMI指导需求管理工作。
一、需求管理概述
许多IT企业都有过需求失控的痛苦经历,我们不难体会,没有好的需求管理会给我们带来什么:
需求以失控的状态进入软件过程,从源头上失去了项目的质量保证;
需求范围界定不清,使项目缺乏计划性,导致成本、研制周期失控;
需求变更失控,使组织处于被动反应式的环境中,项目组成为救火队;
需求管理不当,导致项目延期、士气低落,增加了项目的失败风险;
……
为了避免上述情况的出现,CMMI对需求管理提出了明确的目的:一是管理项目的产品和产品构件的需求;二是标识哪些需求与项目计划及工作产品之间不一致。通过适当的步骤,确保需求在项目的各个层面上动态地保持一致,一旦出现不一致,则启动相关的处理过程域,使其调整到一致。
需求管理包含5个特定实践(SP,Specific Practice),这5个特定实践的关系。
获得对需求的理解。需求接收者与需求提供者就需求达成共识。
获取项目参与者对需求的承诺。通过书面承诺,建立各方、各项工作的基准。
管理需求变更。维护变更历史,为调整与控制提供数据。