软件项目的需求变更管理

近年来,国内各级政府部门、企事业单位在信息化建设上取得了长足进步,但由于不少组织整体管理水平相对较低,在信 息系统建设上缺乏系统、长远的战略规划,没有先进、适用、可行的管理实践理论作为指导,因此很多软件项目没有在预定的范围、投资总额、工期内完成,工期延 期、延误成为普遍现象。

需求管理的常见误区

软件项目的范围控制应该是在需求分析阶段就开始的,然而很多项目经理针对需求分析存在不少认识误区。

误区1:开发商和用户仅就软件需求的基本轮廓达成一致即可,具体细节准备日后协商。

从项目管理角度分析,这是非常危险的,许多软件项目失败的最主要原因就是需求分析阶段对问题、流程、细节的描述不够准确,导致后期预算超支或者工期延误。

正确的方法是:在需求分析阶段,双方必须对项目的应用背景、功能需求、性能需求、可靠性需求、可用性需求、操作界面需求、外部接口需求,以及项目评审的方法、标准、过程进行全面、细致地研究讨论,逐一进行明确。

误区2:软件需求是软件必需向用户提供的功能和界面,功能上满足需求就足够了。

从软件需求工程角度分析,这只是认识到了软件系统的功能需求,忽略了软件的非功能需求和设计约束,需求捕获不够全面。软件需求工程理论认为,软件需求包括功能需求、非功能需求和设计约束三方面内容。

正确的方法是:除了要明确软件的功能需求,还需要进一步明确非功能需求(即软件产品所必备的属性和品质,包括可靠性、可用性、安全性、可扩展性、可移植性等)和设计约束(即软件研发必须遵守的特定规约、限制条件、政策标准,如软件必须采用国内自主知识产权的数据库产品)。

误区3:需求调研的对象是用户,用户就是软件产品的最终使用人员。

从项目管理角度分析,该观点缺乏对项目相关人全面、系统的认识,对用户的概念理解不到位。"用户"是一种泛称,它 可细分为客户、最终用户和间接用户三种类型。例如,很多企业的一把手并不直接参与软件的采购和操作,但是其对于软件项目实际上起到了关键意义的决定作用, 属于最重要的间接用户。

正确的方法是:要充分认识用户的多重性、层次性、复杂性,在进行需求调研时应首先对用户进行分析、分类,根据重要 性、优先级、特殊性对各类用户进行排序;其次,是针对不同类别的用户分别制订不同的需求调研计划,全面开展需求调研。需要重点指出的是,对于由多个业务部 门共同参与的软件项目,在确认软件需求时一定要得到全部参与部门的共同认可。

误区4:按照"需求、设计、编程、测试"步骤研发出的软件不必考虑需求跟踪问题。

从软件工程角度分析,这是对于需求变更过程缺乏系统的认识的表现,严格线性顺序的开发模型并不能保证各个开发阶段的工作成果与需求保持一致。实际上,由于需求变更的不可预见性和必然性,各个阶段往往以螺旋的方式渐进。

正确的方法是:需求跟踪应该贯穿于整个软件需求管理阶段,需求跟踪的目标是实现《产品需求规格说明书》和软件产品之间的双向可追溯。

做好需求工程

需求分析是软件工程项目最重要、最基础的起始阶段,为后续的规划设计阶段提供参照依据。在软件研发项目过程中一定 要树立需求工程的意识,将需求视为一项系统工程。为了能够全面做好需求管理,应根据项目实际情况严格划分项目阶段,清晰界定、定义项目阶段的基线,在每个 项目阶段制订、执行阶段性需求管理计划,逐一认真落实。

1.需求工程的结构及目标任务

需求工程是一个包括创建和维护系统需求文档所必需的一切活动的过程。需求工程中的活动可分为两大类,一类属于需求开发,另一类属于需求管理。需求工程结构如图1所示,需求开发与需求管理的流程如图2所示。

需求开发的目的是通过调查与分析,获取用户需求并定义产品需求。需求开发过程有3个主要活动:需求调查、需求分 析、需求定义。需求开发过程可分为两个阶段:用户需求调查阶段和产品需求定义阶段,两个阶段在逻辑上通常是以迭代的形式进行的。需求开发过程产生的主要文 档有《用户需求说明书》、《产品需求规格说明书》(对于软件产品而言就是《软件需求规格说明书》)。

需求管理的目的是在用户与开发商之间建立对需求的共同理解,维护需求与软件工作成果的一致性,并控制需求的变更。需求管理过程有三项主要活动:

(1)需求确认:开发商和用户共同对需求文档进行评审,双方就需求达成共识后做出书面承诺,使需求文档具有商业合同效果。

(2)需求跟踪:通过比较需求文档与后续工作成果之间的对应关系,建立与维护"需求跟踪矩阵",确保产品依据需求文档进行开发。

(3)需求变更控制:依据"变更申请、审批、实施、重新确认"的流程处理需求的变更,防止需求变更失去控制而导致项目发生混乱。

需求管理过程产生的主要文档有《需求评审报告》、《需求跟踪报告》、《需求变更控制报告》等。

2.需求的跟踪

需求跟踪的目的是建立与维护"需求、设计、编程、测试"过程的一致性,确保所有的工作成果符合用户需求。需求跟踪有两种方式:

(1)正向跟踪:检查《产品需求规格说明书》中的每个需求是否都能在后继工作成果中找到对应点。

(2)逆向跟踪:检查设计文档、代码、测试用例等工作成果是否都能在《产品需求规格说明书》中找到出处。

正向跟踪和逆向跟踪合称为"双向跟踪"。不论采用何种跟踪方式,都要建立与维护需求跟踪矩阵。

组建变更控制管理机构

项目变更是指项目实施过程中由于环境或者其他因素的变化而对项目部分或者全部功能、性能、架构、技术指标、集成方案、进度、质量等方面做出改变。

1.变更控制管理的任务及目标

信息系统项目实施过程中变更是无法避免的。变更控制管理的任务是:建立规范、严格、可行、高效的变更控制体系机 制,组建变更控制管理机构,出台变更管理制度;对用户提交的变更请求进行快速的响应、受理;及时分析、研究、评估变更的可行性、成本、代价、范围;对于确 定接受的变更请求制订变更实施计划方案及配套应对措施,实施变更任务,进行变更测试检查,做好变更记录。需求变更控制的最终目标是:通过建立严格规范的变 更控制管理流程,拒绝不切合实际的变更,减少变更带来的风险,防止变更范围扩大、蔓延,杜绝随意的变更申请及受理过程等。

2.变更控制管理机构的建立

组建有效的变更控制管理机构和制订配套的变更控制管理制度,是进行变更控制管理的重要基础和前提保障,否则变更控 制管理将成为一纸空文。变更控制管理机构(形式上可以是"变更控制管理委员会"、"变更控制管理办公室"、"变更控制管理组"等)是一个特殊组织,对项目 负责人直接负责,它不受现存的职能组织结构的束缚,可由来自不同机构、不同部门、不同专业、不同岗位的人员组成,各成员划分权限岗位、明确职责、落实责 任、协同工作。一般情况下,变更控制管理机构内部应至少配备以下四种角色的成员:

项目管理人员(类似于"项目经理"):主要负责制订项目管理制度和项目管理计划,督促、检查、落实、考核项目执行过程,做好项目干系人之间的沟通协调工作。

技术负责人员(类似于"总工程师"):主要负责项目中信息技术平台的分析、建模、设计、测试、实现。

业务管理人员(类似于"业务经理"):主要负责收集整理业务需求、编写需求说明书、验证和评审需求、管理和控制需求变更。

通信联络人员:主要负责项目组织内部成员之间的信息发布。

需求变更控制 管理工作程序

需求变更的目的是希望软件产品更加符合用户的需求,但是变更涉及的人员多、范围广、影响大,在进行变更控制管理时必须建立严格、规范的变更控制管理工作程序,这样才能使项目始终按照预定的方向、模式、进度进行。

需求变更控制过程中最难办的事情不是"满足用户提出的变更请求",而是"在用户认同支持、追加项目投资经费的前提 下尽快完成变更任务"。用户往往认为提出变更需求是基本权利,而软件开发商往往认为只有义务解决在《用户需求说明书》、《产品需求规格说明书》中预先定义 的各类需求,除此以外都应该拒绝或者在用户追加投资的前提下解决。

现实中信息系统项目的目标是具有一定弹性的,这一点尤其重要,用户和软件开发商之间为了达成共同目标不可能针锋相对,项目管理人员需要利用高超的管理艺术、沟通技巧、人格魅力,在对立博弈的关系之中寻求最佳的平衡点

另外,有必要强调的是,在项目实施过程中,变更处理越早,难度越小,损失越小;变更处理越迟,难度越大,损失也越 大。而且,任何变更都必须经过项目建设全部相关方(建设单位、承建单位和监理单位)多方确认后才能计划实施,严禁任何一方擅自变更。对项目变更的范围要有 明确的界定,而且项目建设全部相关方对变更范围的理解上都没有任何异议。

最后,变更对项目质量、成本、进度都会产生影响,需要对变更过程加强监控,实施变更风险管理,不能因为变更而引发新的风险。项目管理人员在做出变更决策时,应及时将变更信息、变更计划方案公布于众,这样才能及时调整项目团队的工作,朝着新的方向努力。

posted @ 2013-07-07 23:55  菜花大盗  阅读(2627)  评论(0编辑  收藏  举报