【IT168 技术文章】
能力成熟度模型集成(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)。
1.获得对需求的理解。需求接收者与需求提供者就需求达成共识。
2.获取项目参与者对需求的承诺。通过书面承诺,建立各方、各项工作的基准。
3.管理需求变更。维护变更历史,为调整与控制提供数据。
4.维护对需求的双向可追溯性。这是从软件的可维护性角度提出的管理要求。
5.标识项目计划和工作产品与需求的不一致性。旨在发现不一致性,并且启动纠正措施。
二、需求管理计划
在组织级建立需求管理计划模板,具体项目则是在此模板的基础上结合项目的特点和具体情况,制定项目的需求管理计划。
需求管理计划(模板)应包括如下内容:
1.需求管理的方针与政策;
2.需求管理需使用的资源(管理人员、计算机资源、使用工具等);
3.角色与责任;
4.培训计划;
5.需求管理的干系人及介入事件的关联矩阵;
6.配合项目节奏或里程碑的事项(如:在哪些阶段点应做“识别项目工作与需求之间的不一致的工作”);
7.判断项目工作与需求不一致的准则和纠正流程;
8.需求溯源性矩阵模板(最好使用工具);
9.需求变更流程;
10.需求管理计划的审批与变更流程;
11.其他流程。
具体项目的需求管理计划一般应在如下几个方面加以具体化:①项目的需求管理角色应分派到具体的人;②可根据项目需求管理人员的实际情况,安排有针对性的培训内容,如应用领域的业务培训、需求管理工具的培训等;③需求管理的干系人及介入事件更加明确。如与需求管理相关的人员(干系人)主要有业务代表(代表业务需求提出部门)、设计人员、开发人员、测试人员等,当需求具有跨系统或接口性质时,相关受影响的部门应列入干系人清单中。介入的事件是评估需求变更的影响、通报双向溯源性情况、识别项目工作与需求之间的不一致。