我说CMMI之七:需求管理过程域

本文深入探讨了CMMI中的需求管理过程域,阐述了需求管理的定义、目标与具体实践,包括理解需求、管理需求变更等方面,强调了需求的一致性和管理的重要性。此外,还解释了组织过程性能的目的,强调了建立过程性能基线和模型对项目管理的支撑作用。
摘要由CSDN通过智能技术生成

先讲讲需求管理的含义。

何谓需求管理?需求管理就是管理需求的一致性。

这里讲的需求指什么?指的产品与产品构件需求,对于软件而言通常就是软件需求规格说明书(SRS)。在CMMI模型中将需求分成了2类:客户需求,产品与产品构件需求。客户需求是采用用户的术语表达的,用户验收的依据,一般是由客户提出需求,由开发人员记录、描述、整理下来。客户需求是平衡了客户的需要、期望、约束和接口需求后的结果。产品与产品构件需求是采用开发人员的属于表达的,是开发方验收的依据。产品与产品构件的需求是基于客户需求派生而得到的,但是又并非仅仅基于客户需求,还可能由开发方附加了一些需求,还可能由于技术路线的实现约束而附件了一些需求。

谁和需求的一致性呢?用户需求、设计文档、代码、测试文档、用户手册、安装手册、项目计划书等文档。

在何时保证和需求的一致性呢?在需求开发的初期,在设计时,在编码时,在编写测试用例时,在编写用户手册时,在需求发生变更时,在设计、编码、测试用例、用户手册发生变更时!

需求管理是CMMI 2级中的唯一的一个工程类过程域,工程类过程域包括需求管理、需求开发、技术解决方案、产品集成、验证、确认,只有将需求管理放在了CMMI2级,为什么呢?无论需求是如何获取的如何描述的,首先要管理需求的变更!这里隐含了一个前提,即需求是文档化的,需求管理的对象是需求,需求不能是虚无飘渺的,要固化下来,固化下来就是需求文档。

 

在此过程域中包含了5条特定实践,翻译如下:

SP1.1 理解需求:与需求的提供者对需求的含义达成一致

SP1.2 获得对需求的承诺:获得项目组成员对需求的承诺

SP1.3 管理需求的变更:在项目进行中,管理需求的变更

SP1.4 维护需求的双向可跟踪性:维护需求和工作产品之间的双向可跟踪性

SP1.5 确定项目工作和需求间的差异:识别项目计划、工作产品和需求之间的不一致

每条实践都有一个编号,以“SP1.3 管理需求的变更:在项目进行中,管理需求的变更”来说明一下,SP代表特定实践,1代表是第1个目标的实践,3代表是第3条实践。每条实践有一个名字,“管理需求的变更”即是这条实践的名字,“在项目进行中,管理需求的变更”是这条实践的正文。编号和名字都是解释性的信息,是帮助记忆的,每条实践的正文是“期望的”。

 

逐条解释每条实践:

 

SP1.1理解需求:与需求的提供者对需求的含义达成一致。

模型的每条实践都是动宾结构的描述方式,是没有主语的,我们在理解时要结合公司的实际情况,加上主语。对于这条实践,是谁与需求的提供者对需求的含义达成一致呢?是需求分析人员,是项目组的开发人员,是乙方。

需求的提供者是谁呢?是甲方,是客户、最终用户与间接用户。客户是出资者,是花钱买系统的人,最终用户是真正使用系统的人,间接用户是既不用系统也不掏钱买系统的,但是对系统是否上市、能否成功起了重要作用的人。举例来讲,你们家小孩需要买个手机,你是出资者、小孩子是最终用户、国家工信部是间接用户,三者的需求是不一样的,关注点是不同的。手机要既满足你的需求、小孩子的需求、政府的要求才可以销售出去。注意三者是and的关系,不是or的关系,缺一不可。

CMMI中将需求分成了4个组成部分:需要,期望,约束条件和接口需求。需要是最基本的、不可裁剪的需求;期望是可以实现也可以不实现,最好能实现的需求,期望是可以妥协的需求;约束条件是对需要和期望的限制条件,是实现需要和期望的环境与障碍;接口需求是系统与其他系统之间的衔接关系,任何一个系统都不是孤立存在的。

何谓“一致”?是需求分析人员认可需求并且需求的提供者也认可了需求。仅仅是需求分析人员认可,需求提供者不认可,这显然是不成的,最终验收时肯定无法通过;仅仅是需求提供者一厢情愿,需求分析人员或者开发方不认可也是无法实现的。需求提供者关注什么?其一是正确性:是否准确表达了自己的需求?其二是完备性:是否遗漏了需求?开发人员关注什么?除了上述的正确性与完备性,还关注无二义性、可测试性、可实现性等等。

如何达成一致呢?通常是需求提供者(客户+最终用户+间接用户)讲解需求,需求提供者提供最初的需求,由需求分析人员整理需求,然后再给需求提供者确认需求,确认后一般是签字认可、邮件确认或体现在会议纪要中。

 

SP1.2 获得对需求的承诺:获得项目组成员对需求的承诺。

这条实践所讲的承诺是指对需求可实现性的承诺,是项目组成员对客户的承诺,承诺什么呢?是承诺需求是可以实现的。注意,这个承诺不是客户对项目组的承诺,不是客户承诺需求不变。

项目的参与人员在了解的需求之后,在和客户对需求的理解达成一致后,在评估了需求的技术可行性之后对客户承诺需求是可以实现的。SP1.1是本条实践的基础,是本条实践的前提。

CMMI模型中主要在3处提到了承诺的管理,(1 REQMSP1.2;(2PP过程域中SP2.3:对需求进行承诺;3IPM过程域中SP2.2管理关键依赖的子实践,管理存在关键依赖关系的人员之间的承诺。这3处分别描述了对需求的承诺、对计划的承诺、对关键依赖关系的承诺,承诺的层次是逐步细化的,从宏观到微观,要求逐步加深。

中国人自古以来讲究一诺千金,这个“诺”是一种口头的承诺,是一种做人的信誉,在模型中提到的承诺要求一定要文档化,有记录,是书面的承诺,可以作为一种官方的依据,不能空口白说。

在实践中可以通过项目组的核心承诺对需求进行了评审、进行了估算、进行技术可行性的确认之后书面签字确认来记录。在SP1.1中要求了客户认可开发方对需求理解,客户需要书面确认,这里开发方也要进行书面承诺,二者都可能表现为书面的签字,签字的含义不同。

 

SP1.3 管理需求的变更

管理这个单词是在CMMI中出现频率很高的一个单词,这个单词的宾语不同含义是不同的,这里所说的管理就同这个PA的名字中的管理的含义是一致的:即保证需求的一致性。

这里所说的管理首先是要确定这个变更是应该变更的,其次要确保变更了所有相关内容,最后要确保修改的正确性,即不多改、不少改、不错改。评价是否需要变更时,需要由客户方与开发方的人员都要参与评价,不能仅仅由一方说了算,需要双方成立决策的小组,对需求的变更进行综合的评估。要考虑需求更变的技术影响、管理影响:

技术影响:

修改需求

修改设计

修改代码

修改测试用例

修改用户操作手册

产生的技术风险

……

管理影响:

变更工期

变更工作量

变更成本

变更计划

变更质量目标

……

需要建立需求变更的控制流程,是否所有的需求变更都走相同的流程呢?未必!

理解CMMI模型要灵活,不要僵化,要根据自己企业的实际情况进行裁剪。

有一家客户将需求的变更划分了高级别与低级别的两种变更,低级别的变更PM批准即可了,高级别的变更需要CCB批准:

高级别的需求变更:

影响其他项目组或者影响项目外部承诺的变更;

单次变更估算规模大于项目总体估算规模5%

单次变更导致工作量成本增加超过1人周;

项目总体累计变更规模大于项目总体估算规模30%后的变更。

低级别的需求变更:

    除上述高级别变更以外的变更。

 

在需求变更的流程中有几个要点需要强调:

(1)       变更的波及范围分析要完备;在进行波及范围分析时要参考需求跟踪矩阵;

(2)       需求的变更要有评审、批准;

(3)       需求变更完成后要验证变更的正确性;

(4)       变更完成后要变更基线,重新发布基线,通知相关人员。

 

SP1.4建立需求跟踪矩阵

需求跟踪矩阵一般简写为RTMRTM可以表达2类跟踪关系:

   横向跟踪关系:需求与需求之间的影响关系;

   纵向跟踪关系:需求到设计、代码、用户文档、测试用例、计划之间的影响关系。

 并非所有的跟踪关系都要建立矩阵,要根据企业的实际情况进行取舍,比如有的企业只建立客户需求到产品需求,产品需求到产品需求,产品需求到设计,产品需求到系统测试用例的跟踪关系。也并非所有的需求都要建立跟踪矩阵,比如有的企业仅对全局性的需求建立了跟踪关系。

这条实践在很多企业中都被忽略了,或者即使做了也只是形式上有了RTM

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值