畅享博客 > 组织过程改进 > CMMI > 用CMMI指导需求管理
2007-6-10 22:18:41

用CMMI指导需求管理

转自:http://www.chinaopi.com.cn/tiantian/read.asp?vid=235 

  能力成熟度模型集成(CMMICapability Maturity Model Integration)已逐步成为IT业的标准。CMMI定义了5个组织成熟度级别,包含25个过程域(PA,Process Area),这些过程域全面涵盖了软件生命周期的各个领域。特别是在业界普遍感到难以控制的需求方面,它定义了两个过程域:需求管理和需求开发。

  需求管理(REQM,Requirements Management)属于成熟度2级(受管理级)的过程域,是其他许多过程域实施的前提。对于暂未实施CMMI的企业,同样也可以借鉴CMMI的原则,实施和优化需求管理。本文从实际工作的角度,阐述如何用CMMI指导需求管理工作。

 一、需求管理概述

    许多IT企业都有过需求失控的痛苦经历,我们不难体会,没有好的需求管理会给我们带来什么:

    需求以失控的状态进入软件过程,从源头上失去了项目的质量保证;

    需求范围界定不清,使项目缺乏计划性,导致成本、研制周期失控;

    需求变更失控,使组织处于被动反应式的环境中,项目组成为救火队;

    需求管理不当,导致项目延期、士气低落,增加了项目的失败风险;

为了避免上述情况的出现,CMMI对需求管理提出了明确的目的:一是管理项目的产品和产品构件的需求;二是标识哪些需求与项目计划及工作产品之间不一致。通过适当的步骤,确保需求在项目的各个层面上动态地保持一致,一旦出现不一致,则启动相关的处理过程域,使其调整到一致。

需求管理包含5个特定实践(SP,Specific Practice),这5个特定实践的关系如图1所示。

 获得对需求的理解。需求接收者与需求提供者就需求达成共识。

获取项目参与者对需求的承诺。通过书面承诺,建立各方、各项工作的基准。

管理需求变更。维护变更历史,为调整与控制提供数据。

维护对需求的双向可追溯性。这是从软件的可维护性角度提出的管理要求。

标识项目计划和工作产品与需求的不一致性。旨在发现不一致性,并且启动纠正措施。

二、需求管理计划

 在组织级建立需求管理计划模板,具体项目则是在此模板的基础上结合项目的特点和具体情况,制定项目的需求管理计划。

 需求管理计划(模板)应包括如下内容:

 需求管理的方针与政策;

需求管理需使用的资源(管理人员、计算机资源、使用工具等);

角色与责任;

培训计划;

需求管理的干系人及介入事件的关联矩阵;

配合项目节奏或里程碑的事项(如:在哪些阶段点应做&ldquo识别项目工作与需求之间的不一致的工作&rdquo);

判断项目工作与需求不一致的准则和纠正流程;

需求溯源性矩阵模板(最好使用工具);

需求变更流程;

需求管理计划的审批与变更流程;

其他流程。

具体项目的需求管理计划一般应在如下几个方面加以具体化:①项目的需求管理角色应分派到具体的人;②可根据项目需求管理人员的实际情况,安排有针对性的培训内容,如应用领域的业务培训、需求管理工具的培训等;③需求管理的干系人及介入事件更加明确。如与需求管理相关的人员(干系人)主要有业务代表(代表业务需求提出部门)、设计人员、开发人员、测试人员等,当需求具有跨系统或接口性质时,相关受影响的部门应列入干系人清单中。介入的事件是评估需求变更的影响、通报双向溯源性情况、识别项目工作与需求之间的不一致。

 三、需求管理流程

 各企业可根据自己的组织结构制定需求管理流程,但流程必须涵盖上述5个特定实践,对于具体项目一般应用组织级的需求管理流程,项目的特殊事项可以放在需求管理计划中进行描述。

 需求管理流程可以由几个子流程组成,有些子流程可以并行工作,有些子流程还与其他过程域的流程有关。

 首先,&ldquo获得对需求的理解&rdquo和&ldquo获取项目参与者对需求的承诺&rdquo两个特定实践可以放到一个流程中实施。将实际流程图进行简化(见图2),可以看出:

①通过一个综合流程可将多个特定实践包含其中。同时,还可以看出需求管理过程域与其他过程域(配置管理、技术开发、项目策划)相关联。

②&ldquo获得对需求的理解&rdquo要求明确需求的正式来源(总行业务部门)。

③&ldquo获得对需求的理解&rdquo实际上是进行需求分析、确认需求的过程,它的结果是形成&ldquo达成一致&rdquo的需求(《软件需求说明书》)。

④&ldquo获取项目参与者对需求的承诺&rdquo主要包括两个承诺。一是需求方对达成一致的需求(《软件需求说明书》)的正式确认二是开发方以项目目标定义书的方式,对开发计划和成本等作出承诺。

 其次,&ldquo管理需求变更&rdquo中应先进行评估与审批,审批之后应执行&ldquo维护对需求的双向可追溯性&rdquo和&ldquo标识项目计划和工作产品与需求的不一致性&rdquo。这两个看上去好象是附加上去的特定实践,其实很重要(不好的需求管理流程中常缺这两个特定实践),其目的是通过流程维护需求变更的历史和理由、评价需求变更的影响,发现不一致并启动相关的处理过程域(进入其他流程)。例如,当变更对项目产生风险时,需要使用其他流程进行风险防范或进行项目计划变更,这些都可以包含在流程中。&ldquo管理需求变更&rdquo流程需要配置管理过程域的支持(通常是通过配置管理的控制变更来实现对需求变更的控制)。

 再次,两个关系密切的特定实践&ldquo维护对需求的双向可追溯性&rdquo和&ldquo标识项目计划和工作产品与需求的不一致性&rdquo,一般分散在其他相关流程中,并贯穿于整个软件生命周期中。例如,定期或以事件触发方式启动&ldquo标识项目计划和工作产品与需求的不一致性&rdquo,检查是否一致,从而进行相应处理。

 流程的具体编制依赖于组织结构(同时它也影响着组织结构),因此,不同的组织需要制定自己的流程。组织流程一般是跨过程域的综合流程,在制定流程前,应充分了解过程域之间的依赖关系,只有这样,才能将这些关系有机地融合到流程中。这些相关的过程域可能分属于不同的成熟度级别,因此,可能在现有条件下没有实施较高级别的过程域,这时我们可以&ldquo弱化&rdquo这些不能实现的过程域,即只取其必要的功能放到流程中去。如图2中,我们将&ldquo需求开发&rdquo过程域弱化成&ldquo需求分析&rdquo(&ldquo需求管理&rdquo要求&ldquo需求开发&rdquo提供必要的功能)放到流程中。

 

总之,掌握过程域之间的关系,对编制流程很有帮助。这里我们总结出需求管理与其他过程域的主要关系。

 

1)需求管理依赖的过程域

①需求开发:通过需求开发建立和维护客户产品、产品部件和接口需求。

②配置管理:通过配置管理控制需求的变更。

③项目监督和控制:通过监督和控制识别需求与项目计划、工作产品的矛盾。

 

2)依赖于需求管理的过程域

①需求开发:通过需求管理来管理客户和产品需求,获得需求供应者的同意和需求实现者的承诺,并使需求的维护可追溯。

②技术解决方案:通过需求管理为产品和产品部件管理需求。

③产品集成:通过需求管理来管理接口需求的变更。

④项目计划:根据需求管理来制定计划和更改计划。

⑤验证和确认:根据需求管理维护需求。

⑥供应商合同管理:根据需求管理确定能被外部满足的需求并管理可追溯的需求,这些需求来源于供应商已经完成的产品。

 

四、需求管理工具化

 

需求管理的工具包括:①需求及相关文档管理的工具;②流程审批的流转电子化;③溯源性矩阵的维护工具。其中最大的难点是需求溯源性矩阵的维护工具,对此我们作重点分析。

 

需求溯源包括的三个方面,可看作是三个子矩阵,每个子矩阵对某个方面都具有双向溯源性。

 

1.需求向低层分解的双向溯源矩阵

 

需求向低层分解的双向溯源矩阵,如表1所示。

 

2.需求沿生命周期纵向产品溯源矩阵

 

需求沿生命周期纵向产品溯源矩阵,用表2、表3予以说明。

2中的编号均表示文档的版本号,例如,对于软件需求说明书RS.12,对应有两个系统设计规格书(DM121DM122),后一个版本号代表新版本,应作为当前使用版本。该表反映了文档变更历史。

 

3.需求的水平溯源矩阵(跨系统功能间)

 

当需求影响到多个系统时,就应建立关联功能间的水平溯源关系(见表4)。

综上所述,需求管理要求建立和维护需求双向溯源表,而双向溯源表的关联关系非常复杂,因此:

 

1)必须借助工具进行管理。对小的项目,可以用Excel等简单工具进行管理,但对大型项目或组织级的需求管理,则应购买或自行开发专门的需求管理工具。

 

2)必须建立一套编码体系,以便进行标识和检索。

 

3)需求管理工具可以与配置管理工具同时考虑,即综合设计成一个管理系统。

 

五、需求管理实施建议

 

需求管理是基础性的管理,企业必须投入精力,认真实施,并以此作为实施CMMI的起点。在实施中要注意如下几点:

 

1.培训工作。从以上分析可以看出,需求管理是一项技术含量高、参与人员多、持续时间长(从项目前期到项目结束)的管理活动。因此,必须作好相关的培训,通过培训使高层管理人员了解需求管理的意义,取得他们的支持;使需求管理人员学会使用工具;使一般员工有需求管理意识,维护好溯源矩阵中与自己相关的部分,并提高识别项目工作与需求的不一致的能力。

 

2.试点工作。应先选几个项目作为试点,取得经验后再全面实施。

 

3.从制度方面进行实施体系的建立,使之制度化。

 

4.监督与控制。质量保证(QA,Quality Assurance)人员应根据需求管理计划为基准进行监督与控制,例如,根据需求管理的干系人及介入事件的关联矩阵,审查&ldquo通报双向溯源性情况&rdquo是否到位(是否按时通报,是否有人员遗漏)等。

 

5.评价与审查。一方面对过程的活动、状态及结果进行审查,解决相关问题;另一方面对照要求进行评价与检查,总结经验并处理不符合项。

 6.度量。逐步建立度量的指标体系,开始时可只度量完成各项工作的工作量,之后可以作进一步的度量,积累组织的历史数据,供以后进行需求管理的分析、决策等。例如,需求变更比率、因变更造成的延期、需求变更累计数等。

 作者: 出处:《中国金融电脑》


推荐到鲜果: 查阅更多相关主题的帖子: CMMI

评论

您好!

我是美国Soft Tech公司的人事,很冒昧邮件打扰您。

我公司是国内第一家开始CMMI咨询的公司,也是连续3年的综合排名第一的咨询机构。现招聘CMMI咨询师若干,职位信息如下:

工作职责:
从事 CMMI 咨询认证业务,负责公司客户的售前咨询及认证前的咨询培训及预评估的实施,保障客户认证的顺利进行。
职位要求:
1 、具有软件工程相 关专业学士学位以上,同时又有管理学学位的优先考虑;
2 、具有 5-10 年以上软件开发和管理、质量管理、培训和咨询工作经验;
3 、熟悉 CMM 、 CMMI ,并具有实施经验,曾经担任过 SEPG 核心成员者优先;
4 、能独立完成咨询任务,可以适应经常出差;
5 、具有良好的职业素质和职业操守,很强的沟通、协调、交际能力;流利的英语听说,读,能力。

如有合作的可能,欢迎您联系我:010-64846569-214,13810692337,chensen@softtechdev.com; 同时也非常欢迎您推荐CMMI方面的人才。

非常感谢!

Soft Tech 公司 人事行政部

陈森

发布者 匿名用户
2008-7-21 17:54:22


感谢

发布者 bingling
2008-7-23 13:59:10


您正在以 匿名用户 的身份发表评论  快速登录
(不得超过 50 个汉字)
       看不清,换一个
提示消息
(输入完内容可以直接按Ctrl+Enter提交)