搜档网
当前位置:搜档网 › 软件需求变更管理七步法

软件需求变更管理七步法

软件需求变更管理七步法
软件需求变更管理七步法

软件需求变更管理七步法

曹济1王宁2

典型场景:最近比较烦,烦客户!我们现在正在给长江市政府做一个电子政务项目,其中有一项功能是网上婚姻申请登记功能。因为前一段国家政策取消了强制性体检这个环节,所以我们的工作流程也相应的变更。

没想到客户从中得到启发:我们的许多工作流程做好后改动的可能性很大(例如政策调整、部门变动、领导班子重组等),干脆给我们做成可定制的功能,我们提一个最大的功能集合,你们做好了我们自己就可以随需而变,嗯,这样好!

可是对项目组来说这可是个灾难啊!因为可定制的功能往往意味着工作量的倍增!

分析:先说说大家对于这种现象的应对方法吧。最典型的是通过与客户的沟通来解决问题。怎么样沟通呢?因为尤其是对于软件项目的合同很难在签订之初就能够精确定义的每项功能,所以靠合同是帮不上忙的。

我和许多IT公司的老总们作交流,我开玩笑说我们IT公司都是清政府。为什么是清政府?清政府的特点之一就是丧权辱国的条约太多。大家往往只有苦笑:有什么办法呀,客户着急了就是一句潜台词:做不做,不想做滚蛋!想做的公司多着呢。

所以你看合同是没用的,那怎么办呢?通常都是通过感情联络争1曹济,独立管理顾问,国际软件标杆组织顾问、中国区联络人,PMI/IEEE/SPIN会员,caoji@https://www.sodocs.net/doc/696520568.html, 2王宁,教授,北京邮电大学经济管理学院邮编100876 wangning_bupt@https://www.sodocs.net/doc/696520568.html,

取客户的同情。就像上面的场景中谈到的一样,明明是不合理的要求,可是客户也会狡辩呀,“凭什么不给我们做,这可是合同范围内的工作!”。因为原来只说要实现工作流,而没有谈到定制的工作流算不算。问题出来了,看看怎么办吧。

当然了,如果现在遇到类似的问题,您的组织都可以举重若轻的化解,那您就不用往下看了。我们常听到一句话就是“合情合理”,大家说这有什么好希奇的呀,老生常谈!不过这句话在软件项目的变更管理中却有独特的表现形式。从感情上与客户去沟通很重要,但是您注意到它只做了一半工作,还有一半工作需要去讲理。大家会反驳我说:讲什么理!我们的客户就是上帝,让你做你就做!哪儿那么多废话呀你。

我注意到一个社会现象:客户方的直接项目负责人从年龄上来看往往有年轻化的趋势——三四十岁居多。这些人有什么特点呢?首先从教育程度上讲他们往往都接受过正规教育,所以还比较讲理——或者是因为现在职位还不够高(开玩笑)?其次这些人是真正希望在工作上出成绩的。当项目真遇到负面的风险时,他们愿意去说服自己的领导而不是不作为。

正是基于以上两点分析,我们先来介绍需求变更管理方法——变更管理七步法。七步法印证了我经常鼓吹的项目管理三部曲:细化、量化、图形化,七步法主要验证了细化和量化的必要性和好处。我们先来看看下面这幅图:

图一:项目管理三角形

大家一看就明白了:噢,原来是项目管理三角形,扯上它干吗呀。范围可以理解为一个项目需要完成的内容的多少,而时间质量和成本则意味着完成这么多内容的工作必须投入的时间成本以及对应的质量水平。我们再看下面这幅图:

图二:项目管理三角形变形

这幅图一看就不得劲,为什么?第一副图中三角形内切于圆,而第二副图则完全破坏了这种内切关系,所以显得不伦不类。为什么应该内切?工作任务与投入应该相适应,这么一个常识性的东西在我们的IT行业中竟然被破坏得极为彻底!好,下面我们就一起来看看怎么样这样一幅项目三角形的图形来讲理!

正如我们从变形的项目管理三角形所得到启示:项目范围变了,对应的时间、质量和成本也应该发生变化!我们首先来看下面这张变更表

表一:变更表

所以一看这个表您就明白了,其实这个表反映了一个最朴实的道理:就是项目三角形在发生变形时需要保持的对应关系。大家会说,我看明白了,可是这张表应该怎么去使用?谁去填表?什么时候填表?如果有人不愿意填,那该怎么办?下面我们分七个步骤来讨论操作中可能会遇到的问题

第一步

首先得说到变更流程的事情。不管什么样的变更,首先都有第一步:变更申请。有人就不乐意听了:我们的客户都是“变更命令”!这个回头再说。只要有人提出变更,我们就称之为变更申请。我们来看第一节变更内容描述:大家会说哎呀,这个首先行不通!我们的客户从来都是口述,打电话或当面交流。这个我们不怕,客户只要说出来,我们是不是就可以记录下来(有人又不高兴了:凭什么他说我记呀?别急,这样做对项目组有好处)?

除非客户不做任何表示让我们猜哑谜,我们是一定能够把客户的需求变更转成文字记录。大家可能又会说,我们可以帮他们记录,可是他们不愿意签字那怎么办?签字不是关键,此处我们关心的是把变

更描述记下来,我们能不能把纪录的描述给客户看,客户会不会翻脸不认账:“不是我说的!”?不会的,果真这样我们就不做了!第一个问题是不是解决了?

往后看这可有点悬,什么叫对业务的影响呀?客户要改需求还需要理由吗?您说需要不需要?有人可能会说那是客户的事情,我们干涉不了。这个说法可是大谬不然也!业务上不需要的功能我们为什么要做?有人会说:客户不需要的功能他们会提出来给我们做吗?老大,您可是真糊涂了!你还以为客户每提一个需求都那么深思熟虑吗?所以得先让客户想一想!又有人说了,您搞形式主义!客户直接就写“如果做,对业务是极大促进;反之会对业务造成负面冲击”,你有什么办法?如果有人竟然有这样的想法,我真是替你们的领导难过:什么叫斗智斗勇?你要动脑筋呀!你能不能从客户的谈话中间去捕获信息?!你能不能去了解客户的业务了解变更的必要性?!!当然可以,要不还做什么项目!彻底成了客户的跟班了!怎么样?这个问题是不是也解决了?

第二步

我们再看第二步:技术评审。技术评审评什么?就是我们能不能做得了?比如说有这么一个糊涂客户提出说他们要求订单的最大处理时间是0.1秒,你应该做什么?直接告诉别人做不了。当然,大部分情况下技术还是可以满足新需求的。好,第二步问题也解决了吧?

第三步

好,接着来看第三步。第三步评价对工期的影响,有人可能马上

会反驳说,工期评价没用,反正是自己消化掉。其实此处将工期、成本、质量都要量化的重要目的之一就是强迫我们的项目组先要想清楚,一个变更意味着什么。一定要把它落实到具体的数据上?为什么?我们在项目中、甚至工作和生活中,因为没有确切量化数据的情况比比皆是,而结果就是导致不必要的矛盾和摩擦。这也就是为什么细化、量化、图形化,在细化的基础上去量化才有意义。先看对具体活动工期的影响,可能是7天也可能是5天或其他;再看对于整体工期的影响,大家应该对关键路径的概念应该比较熟悉了。一个额外活动的工期需要10天,但是体现在整体工期却不一定是10天,还有可能是5天或者是0天,因为它有可能正好是一项非关键路径上的活动。所以这两种情况我们都要了解,简单吧?好,第三步就这么简单。

第四步

来看第四步,第四步也不会有什么歧义。因为一项变更有可能导致项目中需要添加新的人手(可能因为独特的技术背景),而现有的人员怎么样加班也是无济于事的,所以项目组人员可能会增加。在看对应的工作量增加,这个应该相对容易,估算需要几个人(很多情况会是一个人)、多长时间(天或小时),自然工作量就出来了。

小时工资率是什么?我们国内企业发工资一般会是基于工作天数的月薪,而许多外企则是基于工作小时数的月薪,所以这里有一个区别:一天可以是8个小时也可以是18个小时,难怪我们国内企业加班是家常便饭:没有请你周六周日来啊,不就是每天多那么几个小时嘛!而外企加班相对少许多:额外的工作时间要付加班费的(或许是

工商局对它们看得比较严,而对我们国内的企业则网开一面的缘故吧)。说远了,小时工资率的设定与计算可依据组织的特点设定,自己搞不定请财务部门帮你出个数吧。

人时乘以小时工资率不就是人员工作量对应的成本嘛!其他的有时候可能涉及到材料费用、软硬件的采购费用、差旅费用等,我们统一将它归结为非人力成本好了。这样我们将这两部分相加就得到需求变更对应的成本增加情况。第四步也是这么一目了然,没有问题吧。

第五步

要说第五步还真不太容易给一个统一的建议,这得取决于项目组的情况。如果项目组没有量化的历史数据参考,只能以定性的方式去描述需求变更对于项目不同阶段的影响。例如我们在测试阶段的后期实施一项大的变更,那么它对测试阶段的质量影响是可以想见的:因为引入新功能或更改功能,一定导致更多的缺陷,而在回归过程中如发现新的问题需要修改的话又可能带来更多的问题。所以对于测试阶段的质量是负面的。对于产品运行阶段的质量影响也是显然的:系统的稳定性、可靠性、安全性可能都会受到波及。

当然,如果项目所在的组织有些历史数据作参考,那判断起来就容易多了。如果变更的需求是30个功能点,又假定测试阶段缺陷密度是0.4/FP到0.8/FP之间,我们容易推测变更将导致增加的缺陷个数介于12到18个之间;而如果残余缺陷密度是0.02/FP到0.05/FP之间,则上线后暴露给客户的问题数目为0.6个到1.5个之间,也即一到两个。

我们将对质量的影响是不是也可做相应的分析?当然喽!

第六步

这个小节关注的是风险,变更往往意味着更多的功能,更多的功能意味着更多的工作要做,因而面临更多的变数,也即我们就常所说的风险。比如说变更往往伴随着工期的延长,而对于在外地开发的项目此种情形尤其有可能导致项目组成员普遍的厌倦情绪,对应的风险表述就是项目组士气低下,导致工作效率下降,甚至会引起人员的流失,对于项目组来说不得不预见这种类型的风险,所以变更分析应该做出对应的风险分析。

第七步

这一步就很简单了,主要是根据前面的给定的各方面信息权衡以后做出是否变更的决定。有人又说了:才不是呢,如果是需求变更,那一定得客户签字,客户如果不签字,我们一点招数都没有!我们再一次退而求其次:能不能把客户的名字写上,表明他(她)知晓这件事情?应该是可以的吧

至于表头信息,我想应该没什么问题,所提供的相关信息主要是供以后做统计分析之用。

好,到此为止,我们介绍了软件需求变更管理七步法。

软件需求管理之需求变更的原因

软件需求管理之需求变更的原因 需求变更的原因 需求包括业务需求、用户需求和功能需求。业务需求(Business Requirement )反 映了组织机构或客户对系统、产品高层次的目标要求,用户需求(User Requirement ) 描述了用户使用产品必须完成的任务,功能需求(Functional Requirement )定义了开 发人员必须实现的软件功能。 会导致需求变更的原因会有很多,如老板临时改变想法、项目预算增加或减少、客户 对功能的需求改变等。在IT项目中,变更可能来自方案服务商、客户或产品供应商等,也可能来源于项目组内部。在软件系统开发过程中,有很多问题都是由于在需求分析阶段没 有正确地收集、编写、协商、修改产品真实需求而产生的,造成这样的状况有以下几方面 的基本原因: (1)对需求的理解分歧 当客户向需求分析人员提出需求的时候往往是通过自己的想法用自然语言来表达的, 这样的表达结果对于真实的需求来说是一种描述(甚至只是某个角度的描述),远远不能 保证这样的描述可以得到百分之百的正确理解,也许在同客户交流的第一时刻就埋下了理 解分歧的种子,打一个比方说客户说我要的是大象,身子象一堵墙,耳朵象扇子,四条腿 象四根柱子,尾巴象绳子,分析人员想,哦,墙、扇子、柱子、绳子这些我都知道,但是 真的画出来的时候客户当然会跳起来了!这是理解分歧的问题,一般跟分析员的知识、背景,还有客户表述的标准程度、双方的交流情况有关。 (2)系统实施时间过长 一个大中型系统的建设可能要延续一段时间,当客户提出要求之后,他当时并不能看 到系统的运行情况,当双方认为理解大概没有分歧的时候(事实上还会有个Deadline ),开发方就开始工作了。当客户拿到差不多可以试用的产品时他可以实际操作,这时候他就 会对系统的界面、操作、功能、性能等有一些切身的体会,有可能提出需求变更要求。 (3)用户业务需求改变 当前客户的运营情况不确定,有可能客户行业的竞争度高,需要随时作出调整和反应,那么他们自然会经常提出需求变更的要求;也有可能客户所在的行业操作不规范,本身存 在很多人为因素,这时候开发方更是需要随时准备应变。 (4)系统正常升级 有可能是来自开发方自身版本升级或性能改进、设计修正的要求出现需求变更,这时 更是无法绕开这个问题的了! 所以说就算分析人员和客户之间不存在理解分歧,客户对于实际的系统还是会提出一 些个人意见,就算没有个人意见,他们自己的业务会变化或环境发生变化,这些都是无法 避免的,所以不要梦想那么理想的需求分析,当你开始一个项目的时候就应该意识到,客 户需求变更一定会有的,那么对于这样的现状,我们该怎么办呢?客户是上帝,难道我们

软件需求变更控制流程

需求变更控制流程 文档名称: 文档编号:___________________________ 归档日期:___________________________ 编写者: ________________ 孙_____________ 审核者:_______________________________ 批准者:_______________________________ *The information contained in this message is confidential and should not be disclosed to any third party whether or not you are the intended addressee indicated in the message. *本文件所含内容为保密信息,未经授权请勿随意复制、编改和泄露给任何第三方。 Copyright ?2009 xxx (Sha nghai) Ltd . All Rights Reserved 1.目的 指导项目部、软件部、质量部、测试部对产品的软件变更需求(简称CR进行控制和 管理,规范相应的作业流程,详细地定义了各流程环节中状态、角色和动作。 1.1明确流程中各角色的职责

1.2规范软件缺陷的变更过程 2.适用范围 所有项目的软件变更需求控制管理。 3.定义 CCB Cha ng Con trol Board 的缩写,指变更控制小组,由项目经理、产品经理、软件 开发小组长、软件部经理、测试部主管组成。 SCM Software Configuration Management 的缩写,软件配置管理员。 SQA软件质量保证 产品部门:简称PD 项目部门:简称PM 软件部门:简称SW 测试部门:简称TEST 质量部门:简称SQA 4.参考资料无 5.部门职责 5.1产品部 5.1.1制定产品战略规划,产品定位和定义。 5.1.2客户技术支持,需求分析与管理。 5.1.3提出需求变更申请到到质量部。 5.2质量部 5.2.1接收产品部提出的变更需求。 5.2.2成立项目需求变更评审(CCB小组,召集小组成员对需求变更进行评审。5.3项目部 5.3.1参与需求变更评审,确定需求变更的可行性。 5.3.2将评审通过的需求变更单以通知单的方式发到软件部和测试部。 5.4软件部 5.4.1对需求变更进行技术可行性评估,编写系统需求规格与可行性分析报告,包括技术实现方法、进度要求和风险分析结果以及建议等。 5.4.2确定需求变更信息,制定开发计划,安排代码设计,更新需求规格说明书。 5.5测试部 5.5.1参与需求变更评审工作。 5.5.2确定需求变更信息,制定测试计划,安排对新需求的功能测试。 5.6 CCB 负责对软件相关的变更需求(新需求、 bug修改、建议)进行审核,确定处理的方案。 6.作业流程

软件开发项目需求变更管理及应对之

软件开发工程需求变更经管及应对之道研究 变化并不是人们最害怕的,最怕的是跟不上变化的步伐。同样,在软件开发过程中需求的变更会给开发带来不确定性,但只要把需求变更作为重点、难点小心加以控制,软件开发的进度、成本和质量也就有了"安全"的基础。 需求变更经管的需求 需求变更是因为需求发生变化。根据软件工程思想,需求说明书一般要经过论证,如果在需求说明书经过论证以后,需要在原有需求基础上追加和补充新的需求或对原有需求进行修改和削减,均属于需求变更。 需求变更的出现主要是因为在工程的需求确定阶段,用户往往不能确切地定义自己需要什么。用户常常以为自己清楚,但实际上他们提出的需求只是依据当前的工作所需,而采用的新设备、新技术通常会改变他们的工作方式。或者要开发的系统对用户来说也是个未知数,他们以前没有过相关的使用经验。 随着开发工作的不断进展,系统开始展现功能的雏形,用户对系统的了解也逐步深入。于是,他们可能会想

到各种新的功能和特色,或对以前提出的要求进行改动。他们了解得越多,新的要求也就越多,需求变更因此不可避免地一次又一次出现。 这时,如果开发团队缺少明确的需求变更控制过程或采用的变更控制机制无效,抑或不按变更控制流程来经管需求变更,那么很可能造成工程进度拖延、成本不足、人力紧缺,甚至导致整个工程失败。当然,即使按照需求变更控制流程进行经管,由于受进度、成本等因素的制约,软件质量还是会受到不同程度的影响。但实施严格的软件需求经管会最大限度地控制需求变更给软件质量造成的负面影响,这也正是我们进行需求变更经管的目的所在。 六大原则 实施需求变更经管需要遵循如下原则: 1.建立需求基线。需求基线是需求变更的依据。在开发过程中,需求确定并经过评审后(用户参与评审),可以建立第一个需求基线。此后每次变更并经过评审后,都要重新确定新的需求基线。

软件需求变更控制流程

文档名称: 需求变更控制流程 文档编号: 归档日期: 编写者:孙 审核者: 批准者: *The information contained in this message is confidential and should not be disclosed to any third party whether or not you are the intended addressee indicated in the message. *本文件所含内容为保密信息,未经授权请勿随意复制、编改和泄露给任何第三方。 Copyright ?2009 xxx (Shanghai) Ltd . All Rights Reserved

1.目的 指导项目部、软件部、质量部、测试部对产品的软件变更需求(简称CR)进行控制和管理,规范相应的作业流程, 详细地定义了各流程环节中状态、角色和动作。 1.1明确流程中各角色的职责 1.2规范软件缺陷的变更过程 2.适用范围 所有项目的软件变更需求控制管理。 3.定义 CCB:Chang Control Board的缩写,指变更控制小组,由项目经理、产品经理、软件开发小组长、软件部经理、测试部主管组成。 SCM:Software Configuration Management的缩写,软件配置管理员。 SQA:软件质量保证 产品部门:简称PD 项目部门:简称PM 软件部门:简称SW 测试部门:简称TEST 质量部门:简称SQA 4.参考资料 无 5.部门职责 产品部 5.1.1制定产品战略规划,产品定位和定义。 5.1.2客户技术支持,需求分析与管理。 5.1.3提出需求变更申请到到质量部。 5.2 质量部 5.2.1接收产品部提出的变更需求。 5.2.2成立项目需求变更评审(CCB)小组,召集小组成员对需求变更进行评审。 5.3 项目部 5.3.1参与需求变更评审,确定需求变更的可行性。 5.3.2将评审通过的需求变更单以通知单的方式发到软件部和测试部。 5.4 软件部 5.4.1对需求变更进行技术可行性评估,编写系统需求规格与可行性分析报告,包括技术实现方法、进度要求和风险分析结果以及建议等。 5.4.2确定需求变更信息,制定开发计划,安排代码设计,更新需求规格说明书。 5.5 测试部 5.5.1参与需求变更评审工作。 5.5.2确定需求变更信息,制定测试计划,安排对新需求的功能测试。 5.6 CCB 负责对软件相关的变更需求(新需求、bug修改、建议)进行审核,确定处理的方案。 6.作业流程

需求变更

编者按: 作为软件开发人员或者软件系统客户,相信都遭遇过因为需求变更而需要修改系统的情况,一般说来客户会要求改变界面,改变操作方式,甚至改变业务,客户甚至会说:“当时我是那样要求的,不过现在我们的业务调整了”…这时需要中断正在进行的工作,需要查证以往的资料,需要修正计划,需要…… 在本期的月刊中,我们将围绕着“需求变更”这个主题展开讨论,希望对各位开发能有所帮助。让我们先来看一个需求变更的典型案例: Steven刚出任项目经理,并承接了一个中型软件项目。公司再三叮咛他一定要尊重客户,充分满足客户需求。项目开始比较顺利,但进入到后期,客户频繁的需求变更带来很多额外工作。Steven动员大家加班,保持了项目的正常进度,客户相当满意。 但需求变更却越来越多。为了节省时间,客户的业务人员不再向Steven申请变更,而是直接找程序员商量。程序员疲于应付,往往直接改程序而不做任何记录,很多相关文档也忘记修改。很快Steven就发现:需求、设计和代码无法保持一致,甚至没有人能说清楚现在系统“到底改成什么样了”。版本管理也出现了混乱,很多人违反配置管理规定,直接在测试环境中修改和编译程序。但在进度压力下,他也只能佯装不知此事。但因频繁出现“改好的错误又重新出现”的问题,客户已经明确表示“失去了耐心”。 而这还只是噩梦的开始。一个程序员未经许可擅自修改了核心模块,造成系统运行异常缓慢,大量应用程序超时退出。虽然最终花费了整整3天的时间解决了这个问题,但客户却投诉了,表示“无法容忍这种低下的项目管理水平”。更糟糕的是,因为担心系统中还隐含着其他类似的错误,客户高层对项目的质量也疑虑重重。 随后发生的事情让Steven更加为难:客户的两个负责人对界面风格的看法不一致,并为此发生了激烈争执。Steven知道如果发表意见可能会得罪其中一方,于是保持了沉默。最终客户决定调整所有界面,Steven只好立刻动员大家抓紧时间修改。可后来当听说因修改界面而造成了项目一周的延误后,客户方原来发生争执的两人这次却非常一致,同时气愤地质问Steven:“为什么你不早点告诉我们要延期!早知这样才不会让你改呢!”Steven很无耐,疑惑自己到底错在哪里了。

如何应对软件开发中的需求变更

如何应对软件开发中的需求变更 【摘要】在软件项目开发的过程中,软件的需求变更是一个回避不了的问题,它的处理的好坏,更是决定软件开发项目是否能够顺利、完美、高效率得到实现的关键。本文针对STS8000测试系统在软件项目开发过程中出现的常见问题,探讨了如何应用项目需求变更管理、项目目标管理、版本更新管理与软件测试管理,从而帮助并促进软件开发人员开发出更加完美、高效、稳定、有质量的软件产品。 【关键词】需求变更管理;软件项目目标管理;版本更新管理;软件测试管理 随着软件系统的规模、复杂度日益上升,软件开发过程中的各种质量管理已经成为保证软件系统开发效率、质量、成本的关键性因素。软件行业在现在的众多行业里是一个极具挑战性和创造性的行业,体现了软件开发者的智慧和汗水,同时软件开发是一项复杂的系统工程,牵涉到许多方面的因素,在实际工作中,经常会出现各种各样的问题。如何总结、分析并解决软件开发过程中各种问题,对于项目开发人员与管理人员来说,是在今后的项目中取得成功的关键。 目前,STS8000系统在软件方面出现的问题主要有下面几方面: 1、客户不断提出新的需求。软件开发人员不断地陷于满足用户需求的过程中。似 乎,我们在需求上无能为力,我们永远在追赶客户的需求,满足他们的现状, 把N多家的客户需求都加进软件中,只要能实现的,我们尽量咬牙实现了。最 后,我们发现,我们的软件无比复杂,谁也不知道这个需求当时为什么是这样 的。因为无比复杂,所以稳定性更成了问题。代码互相交叉,根本无法理清有 多少交叉影响点。 2、改正了旧问题,又冒出更多新问题,问题层出不穷;维护的工程师都快崩溃了, 天天在祈求,千万别接到客户电话。对于修改现有代码适应新客户新项目,这 种情况出现的非常多。客户打电话说了一个需求,能技术达到就答应下来修改, 修改完就给客户覆盖,根本没有需求变更管理、版本更新管理。而这样的代码, 还不是一个特定客户一套特定定制化代码,是要给其他客户也更新的。很可能 这个客户好使,那个客户使用其他功能的时候就出了错。按下葫芦起了瓢,是 很常见的现象。 3、由于长期陷于满足用户需求的过程中,天长日久,软件工程师就会木然、倦怠, 会形成做一天和尚撞一天钟。有问题就打补丁,客户不嚷嚷就懒的修改,代码 不优化、不封装,界面不友好,架构更是没架构。模块难度、工期质量考核无 法量化,更无法与个人收入挂钩。 以上三个问题,其实归纳起来就一个关键点:如何处理好需求这个问题,从而使客户、公司、研发人员多方达到共赢。下面,就这个关键点,谈谈我的一些看法。 一、必须进行需求变更管理 软件,尤其项目型软件,不修改是不太可能的。但是,在修改软件时,不能进行就事论事的修改。否则很容易陷入到某一家客户具体的需求中,而不会考虑其他客户的需求兼容,

软件需求变更管理七步法

软件需求变更管理七步法 曹济1王宁2 典型场景:最近比较烦,烦客户!我们现在正在给长江市政府做一个电子政务项目,其中有一项功能是网上婚姻申请登记功能。因为前一段国家政策取消了强制性体检这个环节,所以我们的工作流程也相应的变更。 没想到客户从中得到启发:我们的许多工作流程做好后改动的可能性很大(例如政策调整、部门变动、领导班子重组等),干脆给我们做成可定制的功能,我们提一个最大的功能集合,你们做好了我们自己就可以随需而变,嗯,这样好! 可是对项目组来说这可是个灾难啊!因为可定制的功能往往意味着工作量的倍增! 分析:先说说大家对于这种现象的应对方法吧。最典型的是通过与客户的沟通来解决问题。怎么样沟通呢?因为尤其是对于软件项目的合同很难在签订之初就能够精确定义的每项功能,所以靠合同是帮不上忙的。 我和许多IT公司的老总们作交流,我开玩笑说我们IT公司都是清政府。为什么是清政府?清政府的特点之一就是丧权辱国的条约太多。大家往往只有苦笑:有什么办法呀,客户着急了就是一句潜台词:做不做,不想做滚蛋!想做的公司多着呢。 所以你看合同是没用的,那怎么办呢?通常都是通过感情联络争1曹济,独立管理顾问,国际软件标杆组织顾问、中国区联络人,PMI/IEEE/SPIN会员,caoji@https://www.sodocs.net/doc/696520568.html, 2王宁,教授,北京邮电大学经济管理学院邮编100876 wangning_bupt@https://www.sodocs.net/doc/696520568.html,

取客户的同情。就像上面的场景中谈到的一样,明明是不合理的要求,可是客户也会狡辩呀,“凭什么不给我们做,这可是合同范围内的工作!”。因为原来只说要实现工作流,而没有谈到定制的工作流算不算。问题出来了,看看怎么办吧。 当然了,如果现在遇到类似的问题,您的组织都可以举重若轻的化解,那您就不用往下看了。我们常听到一句话就是“合情合理”,大家说这有什么好希奇的呀,老生常谈!不过这句话在软件项目的变更管理中却有独特的表现形式。从感情上与客户去沟通很重要,但是您注意到它只做了一半工作,还有一半工作需要去讲理。大家会反驳我说:讲什么理!我们的客户就是上帝,让你做你就做!哪儿那么多废话呀你。 我注意到一个社会现象:客户方的直接项目负责人从年龄上来看往往有年轻化的趋势——三四十岁居多。这些人有什么特点呢?首先从教育程度上讲他们往往都接受过正规教育,所以还比较讲理——或者是因为现在职位还不够高(开玩笑)?其次这些人是真正希望在工作上出成绩的。当项目真遇到负面的风险时,他们愿意去说服自己的领导而不是不作为。 正是基于以上两点分析,我们先来介绍需求变更管理方法——变更管理七步法。七步法印证了我经常鼓吹的项目管理三部曲:细化、量化、图形化,七步法主要验证了细化和量化的必要性和好处。我们先来看看下面这幅图:

软件需求变更

编号:XZ174 软件需求(变更)通知书 委托方项目责任人签字:受托方项目责任人签字:___年__月__日___年__月__日说明:该变更通知书一式两份,委托方、受托方各执一份。

附件: 清欠车辆录入模块: 录入界面 1、其中,基本情况栏中的内容为自动获取,清欠情况为手工录入且非空。 2、清欠情况中,清欠方式为单选项。 3、当选择为开元汽车清欠时,清欠单位显示为:风险部,当选择为省公司清欠时,通过录 入该信息的账号获取其所属省公司,当选择为异地协助清欠、本单位清欠时,获取录入该信息的账号所属的单位。 此处添加确定、取消按钮。 清欠车辆确认模块: 该模块以列表形式显示,显示内容为: 清欠车辆审核模块: 该模块以列表形式显示,显示内容为: 1、只显示已经确认过的信息,未确认信息不显示。 2、可通过清欠单位、车辆所属单位、清欠方式、清欠时间段、风险等级、是否放车、车辆 处置结果进行查询。 3、可导出查询后的结果,或导出所有明细。 4、列表显示规则为以时间排序,以降序排列。 该模块点击查看后,显示内容为:

就地全面销售管理

自清欠之日(确认后)起10日内未完成销售(未审核),自第11日,该车辆资料自动转到车辆就地全面销售模块,同时增加销售价格项及车辆处置方式。 所属省公司销售管理 自清欠之日(确认后)起30日内未完成销售(未处置),自第31日,该车辆资料自动转到车辆省公司销售模块,同时增加销售价格项及车辆处置方式。 移交车辆 自清欠之日(确认后)起90日内未完成销售(未处置),自第91日,该车辆资料自动转到移交车辆模块,该模块可使用目前ERP中的移交车辆管理模块。 中心销售管理 待移交车辆审核确认后,该车辆信息转到中心销售管理模块下。 统计汇总模块 以省公司为单位,统计各阶段车辆数量,并允许导出所有车辆明细(清欠阶段为已确认车辆)具体显示表格如下:

软件开发项目管理实施方案

项目管理实施方案 作为一个项目管理者,如何要成功的做好项目管理;首先必须先要明白的是在特定的 领域中赋予这个角色所要实现的目标、承担的职责、以及项目管理者的具体工作内容是什么? 从我个人的浅见和角度以及我们所从事的IT领域来分析回答以上三个问题。 第一:目标 作为一个项目的管理者,必须要明确的知道自己的工作目标;我个人认为项目管理者 的目标无非就是以下两点: 1、就是清晰明确地了解项目利害关系者的需求和期望,努力做到满足项目利害关系者的不同需求;项目利害关系者包括:项目团队成员和项目团队外成员(比如各部门的部门负 责人和市场人员,客户等)。 2、就是保证开发项目按需按时保质的完成。 第二:职责 作为项目的管理者,首先要端正态度,要明确知道自己的工作职责,认识到这份工作 职责的本质。项目管理者不是来管人的,而是来支持人的,是来协调资源的,是来营造一 个适合团队成员比较认同的工作环境和氛围的,是来为一个共同的目标和大家一起战斗共 同成长的。可以大概概括成以下几点: 1、建立有效的工作流程保证项目的顺利进行。 2、制定详细周密的项目计划。 3、跟踪,推动项目按计划进行。 4、积极解决项目过程中出现的问题和冲突。 5、调动开发团队的积极性,创造力,推动团队成员在项目过程中不断成长。 6、项目风险识别、风险评估、风险解决和风险管理策略以及做好突发风险的应急预案。 7、实现目标 第三:项目管理者的具体工作内容 最后一个是项目管理者的具体工作内容,作为项目管理者必须清晰的知道自己的工作 范围和所要做的工作内容以及工作重心,分为以下六点: 1、项目前期阶段 对项目进行技术可行性分析、技术评估、成本评估以及风险评估。与需求提出方

【项目管理知识】软件研发项目需求变更的管理

软件研发项目需求变更的管理 变化并不是人们害怕的,怕的是跟不上变化的步伐。同样,在软件研发过程中需求的变更会给研发带来不确定性,但只要把需求变更作为重点、难点小心加以控制,软件研发的进度、成本和质量也就有了"安全"的基础。 需求变更管理的需求 需求变更是因为需求发生变化。根据软件工程思想,需求说明书一般要经过论证,如果在需求说明书经过论证以后,需要在原有需求基础上追加和补充新的需求或对原有需求进行修改和削减,均属于需求变更。 需求变更的出现主要是因为在项目的需求确定阶段,用户往往不能确切地定义自己需要什么。用户常常以为自己清晰,但实际上他们提出的需求只是依据当前的工作所需,而采用的新设备、新技术通常会改动他们的工作方式;或要研发的系统对用户来说也是个未知数,他们以前没有过相关的使用经验。随着研发工作的不断进展,系统开始展现功能的雏形,用户对系统的了解也逐步深入。于是,他们可能会想到各种新的功能和特色,或对以前提出的需求进行改动。他们了解得越多,新的需求也就越多,需求变更因此不可避免地一次又一次出现。 这时,如果研发团队缺少明确的需求变更控制过程或采用的变更控制机制无效,抑或不按变更控制流程来管理需求变更,那么非常可能造成项目进度拖延、成本不足、人力紧缺,甚至导致整个项目失败。当然,即使按照需求变更控制流程进行管理,由于受进度、成本等因素的制约,软件质量还是会受到不同程度的影响。但实施严格的软件需求管理会限度地控制需求变更给软件质量造成的负面影响,这也正是我们进行需求变更管理的目的所在。 六大原则

实施需求变更管理需要遵循如下原则: 1.建立需求基线。需求基线是需求变更的依据。在研发过程中,需求确定并经过评审后(用户参和评审),能建立个需求基线。此后每次变更并经过评审后,都要重新确定新的需求基线。 2.制订简单、有效的变更控制流程,并形成文件。在建立了需求基线后提出的所有变更都必须遵循这个控制流程进行控制。同时,这个流程具有一定的普遍性,对以后的项目研发和其他项目都有借鉴作用。 3.成立项目变更控制委员会(CCB)或相关职能的类似组织,负责裁定接受哪些变更。CCB由项目所涉及的多方人员一起组成,应该包括用户方和研发方的决策人员在内。 4.需求变更一定要先申请然后再评估,后经过和变更大小相当级别的评审确认。 5.需求变更后,受影响的软件计划、产品、活动都要进行相应的变更,以保持和更新的需求一致。 6.妥善保存变更产生的相关文件。 应对之道 需求变更控制一般要经过变更申请、变更评估、决策、回复这四大步骤。如果变更被接受,还要增加实施变更和验证两个步骤,有时还会有取消变更的步骤。变更控制流程如图所示。针对变更控制流程,在实际工作中总结出了软件研发人员在需求变更管理实践中的几点对策:

软件开发项目的需求变更管理

软件开发项目的需求变更管理 摘要:本文讨论了软件开发项目的需求变更管理的知识,指出了需求变更管理在项目实施管理中的重要作用,并根据作者的项目实施经验,探讨了软件开发中需求变更管理的一些方法和经验。 关键词:软件开发项目需求变更管理 不是我不明白,这世界变化太快。计划赶不上变化,变化不可怕,可怕的是跟不上变化的步伐。在项目的实施中,客户的需求变化是常有的事,通过对项目范围的管理,可以有效地控制项目范围的蔓延,防止项目工期与成本、质量的增加。而在软件开发项目的实施中,用户的需求变化更是家常便饭,处理不好就会对项目造成极大的影响。 我在这几年所管理的软件开发项目的实施中,通过不断的实践和摸索,获得了一定的经验,我体会到,虽然在软件开发过程中需求的变更会给项目的实施带来不确定性,但只要把需求变更作为重点、难点小心加以控制、管理,软件开发项目的进度、成本和质量也能在我们的掌控之中。 去年,通过政府采购招标,我公司中标了我市的房产管理信息系统的软件开发项目,我作为该项目的项目经理,参与了该项目的分析、设计以及测试的工作。在项目实施的过程中,随着项目实施的不断推进,客户的需求也不断变化,让我们有点疲于奔命,不知所措,幸好我及时调整了项目实施的策略,注重了需求变更的管理,才使得项目最终能按期完成。 下面我就结合我在该房产管理软件开发项目的经历来说一下在软件开发项目中对需求变更的管理。 一、需求变更管理的需求 需求变更是因为需求发生变化。根据软件工程思想,需求说明书一般要经过论证,如果在需求说明书经过论证以后,需要在原有需求基础上追加和补充新的需求或对原有需求进行修改和削减,均属于需求变更。 需求变更的出现主要是因为在项目的需求确定阶段,用户往往不能确切地定义自己需要什么。在国内,这很正常,很多用户都不是专业人士,他们对自己的

软件项目需求变更六大原则及应对之道

软件项目需求变更六大原则及应对之道 变化并不是人们最害怕的,最怕的是跟不上变化的步伐。同样,在软件开发过程中需求的变更会给开发带来不确定性,但只要把需求变更作为重点、难点小心加以控制,软件开发的进度、成本和质量也就有了"安全"的基础。 需求变更管理的需求 需求变更是因为需求发生变化。根据软件工程思想,需求说明书一般要经过论证,如果在需求说明书经过论证以后,需要在原有需求基础上追加和补充新的需求或对原有需求进行修改和削减,均属于需求变更。 需求变更的出现主要是因为在项目的需求确定阶段,用户往往不能确切地定义自己需要什么。用户常常以为自己清楚,但实际上他们提出的需求只是依据当前的工作所需,而采用的新设备、新技术通常会改变他们的工作方式;或者要开发的系统对用户来说也是个未知数,他们以前没有过相关的使用经验。随着开发工作的不断进展,系统开始展现功能的雏形,用户对系统的了解也逐步深入。 于是,他们可能会想到各种新的功能和特色,或对以前提出的要求进行改动。他们了解得越多,新的要求也就越多,需求变更因此不可避免地一次又一次出现。

这时,如果开发团队缺少明确的需求变更控制过程或采用的变更控制机制无效,抑或不按变更控制流程来管理需求变更,那么很可能造成项目进度拖延、成本不足、人力紧缺,甚至导致整个项目失败。 当然,即使按照需求变更控制流程进行管理,由于受进度、成本等因素的制约,软件质量还是会受到不同程度的影响。但实施严格的软件需求管理会最大限度地控制需求变更给软件质量造成的负面影响,这也正是我们进行需求变更管理的目的所在。 六大原则 实施需求变更管理需要遵循如下原则: 1.建立需求基线。需求基线是需求变更的依据。在开发过程中,需求确定并经过评审后(用户参与评审),可以建立第一个需求基线。此后每次变更并经过评审后,都要重新确定新的

需求变更的控制及管理

需求变更的控制及管理 1、需求变更的原因分析 需求变更的表现形式是多方面的,如老板临时改变想法、项目预算增加或减少、客户对功能的需求改变等。在IT项目中,变更可能来自方案服务商、客户或产品供应商等,也可能来源于项目组内部。虽然需求变更的表现形式千差万别,但究其根本不外乎以下几种原因:(1)、范围没有圈定就开始细化 细化工作是由需求分析人员完成的,一般是根据用户提出的描述性的、总结性的短短几句话去细化的,提取其中的一个个功能,并给出描述(正常执行时的描述和意外发生时的描述)。当细化到一定程度后并开始系统设计时,范围会发生变化,那细节用例的描述可能就有很多要改动。如原来是手工添人的数据,要改成根据信息系统计算出来,而原来的一个属性的描述要变成描述一个实体等。 (2)、没有指定需求的基线 需求的基线是指是否容许需求变更的分界线。随着项目的进展,需求的基线也在变化。是否容许变更的依据是合同以及对成本的影响,比如软件整体结构已经设计出来是不容许改变需求范围的,因为整体结构会对整个项目的进度和成本有初步预算。随着项目的进展,基线将越定越高(容许的变更将越少) (3)、没有良好的软件结构适应变化 组件式的软件结构就是提供了快速适应需求变化的体系结构,数据层封装了数据访间逻辑,业务层封装了业务逻辑,表示层展现用户表示逻辑。但适应变化必须遵循一些松祸合原则,各层之间还是存在一些联系的,设计要力求减少会对接口入口参数产生变化。如果业务逻辑封装好了,则表示层界面上的一些排列或减少信息的要求是很容易适应的。如果接口定义得合理,那么即使业务流程有变化,也能够快速适应变化。因此,在成本影响的容许范围内可以降低需求的基线,提高客户的满意度。 2、如何控制需求变更 按照现代项目管理的概念,一个项目的生命周期分为启动、实施、收尾三个过程。需求变更的控制不应该只是项目实施过程考虑的事情,而是要分布在整个项目生命周期的全过程。为了将项目变更的影响降低到最小,就需要采用综合变更控制方法。综合变更控制主要内容有找出影响项目变更的因素、判断项目变更范围是否已经发生等。 进行综合变更控制的主要依据是项目计划、变更请求和提供了项目执行状况信息的绩效报告。为保证项目变更的规范和有效实施,通常项目实施组织会有一 (1)、项目启动阶段的变更预防 对于任何项目,变更都无可避免,也无从逃避,只能积极应对,这个应对应该是从项目启动的需求分析阶段就开始了。对一个需求分析做得很好的项目来说,基准文件定义的范围越详细清晰,用户跟项目经理扯皮的幌子就越少。如果需求没做好,基准文件里的范围含糊不清,被客户抓住空子,往往要付出许多无谓的牺牲。如果需求做得好,文档清晰且又有客户签字,那么后期客户提出的变更就超出了合同范围,需要另外收费。这个时候千万不能手软,这并非要刻意赚取客户的钱财,而是不能让客户养成经常变更的习惯,否则后患无穷。相对于需求来

软件开发项目管理实施方案.

项目管理实施方案 作为一个项目管理者,如何要成功的做好项目管理;首先必须先要明白的是在特定的领域中赋予这个角色所要实现的目标、承担的职责、以及项目管理者的具体工作内容是什么? 从我个人的浅见和角度以及我们所从事的IT领域来分析回答以上三个问题。 第一:目标 作为一个项目的管理者,必须要明确的知道自己的工作目标;我个人认为项目管理者的目标无非就是以下两点: 1、就是清晰明确地了解项目利害关系者的需求和期望,努力做到满足项目利害关系者的不同需求;项目利害关系者包括:项目团队成员和项目团队外成员(比如各部门的部门负责人和市场人员,客户等。 2、就是保证开发项目按需按时保质的完成。 第二:职责 作为项目的管理者,首先要端正态度,要明确知道自己的工作职责,认识到这份工作职责的本质。项目管理者不是来管人的,而是来支持人的,是来协调资源的,是来营造一个适合团队成员比较认同的工作环境和氛围的,是来为一个共同的目标和大家一起战斗共同成长的。可以大概概括成以下几点: 1、建立有效的工作流程保证项目的顺利进行。 2、制定详细周密的项目计划。 3、跟踪,推动项目按计划进行。 4、积极解决项目过程中出现的问题和冲突。

5、调动开发团队的积极性,创造力,推动团队成员在项目过程中不断成长。 6、项目风险识别、风险评估、风险解决和风险管理策略以及做好突发风险的应急预案。 7、实现目标 第三:项目管理者的具体工作内容 最后一个是项目管理者的具体工作内容,作为项目管理者必须清晰的知道自己的工作范围和所要做的工作内容以及工作重心,分为以下六点: 1、项目前期阶段 对项目进行技术可行性分析、技术评估、成本评估以及风险评估。与需求提出方的代表进行需求讨论,明确项目的目标、价值;确定项目范围、功能及优先级。组建项目团队,特别要搞清楚项目的key person(对产品有决定权的人。项目启动会议,相关的 利害关系人员都必须参加。 该阶段完成后的成果:确认后的最终软件需求规格说明书文档。 2、分析设计阶段 根据确认后的软件需求规格说明书,制定项目进度计划,工作任务分解(WBS;资源申请,项目涉及到的开发资源、测试资源、设计资源(包括人员和软硬件资源;数据库设计;系统设计;文档(包括Use Case、Demo系统原型、Test Case等;评审会议。 该阶段完成后的成果: A、User Case(系统用例;

软件需求管理之利用优先级处理需求变更

软件需求管理之利用优先级处理需求变更 需求变更这件事,每个开发人员都遇到过,每个产品经理也都遇到过。 以前,我们会追求需求不变更,但无论是产品型团队还是项目型团队,需求不变更都 是天方夜谈,不可能实现的。即使把需求变更的成本提得很高,流程搞得很复杂,又要填 变更单,又要几级经理审批,又要需求评审,依然无法避免。 于是,团队的目标变成了少变更,希望尽量少的变更既能满足业务的需要,又能减少 开发团队的反感。但‘少’是个相对的概念,我们无法在数量上区分什么情况是少。 现在,在敏捷开发模式下,团队要拥抱变化,响应变化,甚至要积极变化。需求是在 不停的变,但麻烦也来了,开发团队因为需求变更有了额外的支出,与产品经理的矛盾也 在加深,变还是不变,成为产品团队与开发团队PK的永恒话题。 显然,有效的变更是所有人员都不否认的,也是对用户有利、对公司有利的双赢结果。那么在变来变去之间,如何减少变更的成本,提高变更的收益呢? 在这里我想谈的就是发挥需求优先级的作用。 在软件需求管理中,有关于需求优先级管理的必要性、定义、识别方式等很多相关的 内容,这里不再赘述。我们还是来看一个迭代过程当中比较典型的情况,随着迭代的进行,开发出来的交付物的增多,产品经理提出某个需求要变更,这个时候如何来做? 如果这个变更是一个删除行为,即该需求不在本迭代做了,那通常容易解决,开发团 队也乐于处理,但做为管理者要注意的是这里有开发成本的浪费。即使该需求没有投入开发,那也经过了需求评审、技术方案设计、测试用例撰写、交互设计输出等工作。不过这 个既然不是与开发人员的矛盾之处,就不再多说了。 如果这个变更是一个修改行为,即对正在开发中的某个需求进行修改,产品经理需要 将变更交给开发团队进行可行性和工作量评估,如果工作量比原来启动会上的要少或相当,也问题不大,至少不影响迭代计划,大家都可以接受。如果工作量在增多,那就与新增需 求的处理方式相同了。 如果这个变更是一个新增的需求,需要投入更多的工作量,那么要想在有限资源的前 提下满足迭代产出,就必须进行优先级调整,产品经理要明确这个变更是必须的、有条件的、还是可选的,开发团队用这个优先级来决定开发顺序。如果是必须的,且已经没有资 源支持,那么就要重新评估未开发的需求优先级,对其他的部分进行降级等调整。同时, 优先级的定义过程,也是产品和开发团队深入思考需求的又一个契机,会促进整个团队对 需求、成本、目标方面的一致性理解。 当然,这也为产品经理提了更高的要求,那些10个需求使用了10个优先级的产品经理,你这样的优先级定义你们Boss造吗? 总之,需求变更不可避免,敏捷开发拥抱变更,但变更是有成本的,也是易于产生矛 盾的,优先级定义就是缓解矛盾的工具之一,利用优先级,把好钢用在刀刃上。

软件开发项目需求变更的管理

软件开发项目需求变更的管理 变化并不是人们最害怕的,最怕的是跟不上变化的步伐。同样,在软件开发过程中需求的变更会给开发带来不确定性,但只要把需求变更作为重点、难点小心加以控制,软件开发的进度、成本和质量也就有了"安全"的基础。 需求变更管理的需求 需求变更是因为需求发生变化。根据软件工程思想,需求说明书一般要经过论证,如果在需求说明书经过论证以后,需要在原有需求基础上追加和补充新的需求或对原有需求进行修改和削减,均属于需求变更。 需求变更的出现主要是因为在项目的需求确定阶段,用户往往不能确切地定义自己需要什么。用户常常以为自己清楚,但实际上他们提出的需求只是依据当前的工作所需,而采用的新设备、新技术通常会改变他们的工作方式;或者要开发的系统对用户来说也是个未知数,他们以前没有过相关的使用经验。随着开发工作的不断进展,系统开始展现功能的雏形,用户对系统的了解也逐步深入。于是,他们可能会想到各种新的功能和特色,或对以前提出的要求进行改动。他们了解得越多,新的要求也就越多,需求变更因此不可避免地一次又一次出现。 这时,如果开发团队缺少明确的需求变更控制过程或采用的变更控制机制无效,抑或不按变更控制流程来管理需求变更,那么很可能造成项目进度拖延、成本不足、人力紧缺,甚

至导致整个项目失败。当然,即使按照需求变更控制流程进行管理,由于受进度、成本等因素的制约,软件质量还是会受到不同程度的影响。但实施严格的软件需求管理会最大限度地控制需求变更给软件质量造成的负面影响,这也正是我们进行需求变更管理的目的所在。 六大原则 实施需求变更管理需要遵循如下原则: 1.建立需求基线。需求基线是需求变更的依据。在开发过程中,需求确定并经过评审后(用户参与评审),可以建立第一个需求基线。此后每次变更并经过评审后,都要重新确定新的需求基线。 2.制订简单、有效的变更控制流程,并形成文档。在建立了需求基线后提出的所有变更都必须遵循这个控制流程进行控制。同时,这个流程具有一定的普遍性,对以后的项目开发和其他项目都有借鉴作用。 3.成立项目变更控制委员会(CCB)或相关职能的类似组织,负责裁定接受哪些变更。CCB 由项目所涉及的多方人员共同组成,应该包括用户方和开发方的决策人员在内。 4.需求变更一定要先申请然后再评估,最后经过与变更大小相当级别的评审确认。 5.需求变更后,受影响的软件计划、产品、活动都要进行相应的变更,以保持和更新的需求一致。 6.妥善保存变更产生的相关文档。 应对之道 需求变更控制一般要经过变更申请、变更评估、决策、回复这四大步骤。如果变更被接受,还要增加实施变更和验证两个步骤,有时还会有取消变更的步骤。变更控制流程如图所示。针对变更控制流程,笔者在实际工作中总结出了软件开发人员在需求变更管理实践中的几点对策: 相互协作很难想像遭到用户抵制的项目能够成功。在讨论需求时,开发人员与用户应该尽量采取相互理解、相互协作的态度,对能解决的问题尽量解决。即使用户提出了在开发人员看来"过分"的要求,也应该仔细分析原因,积极提出可行的替代方案。 充分交流需求变更管理的过程很大程度上就是用户与开发人员的交流过程。软件开发人员必须学会认真听取用户的要求、考虑和设想,并加以分析和整理。同时,软件开发人员应该向用户说明,进入设计阶段以后,再提出需求变更会给整个开发工作带来什么样的冲击和不良后果。 安排专职人员负责需求变更管理有时开发任务较重,开发人员容易陷入开发工作中而忽略了与用户的随时沟通,因此需要一名专职的需求变更管理人员负责与用户及时交流。 合同约束需求变更给软件开发带来的影响有目共睹,所以在与用户签订合同时,可以增加一些相关条款,如限定用户提出需求变更的时间,规定何种情况的变更可以接受、拒绝接受或部分接受,还可以规定发生需求变更时必须执行变更控制流程。 区别对待随着开发进展,有些用户会不断提出一些在项目组看来确实无法实现或工作量比较大、对项目进度有重大影响的需求。遇到这种情况,开发人员可以向用户说明,项目的启动是以最初的基本需求作为开发前提的,如果大量增加新的需求(虽然用户认为是细化需求,但实际上是增加了工作量的新需求),会使项目不能按时完成。如果用户坚持实施新需求,可以建议用户将新需求按重要和紧迫程度划分档次,作为需求变更评估的一项依据。同时,还要注意控制新需求提出的频率。 选用适当的开发模型采用建立原型的开发模型比较适合需求不明确的开发项目。开发人员先根据用户对需求的说明建立一个系统原型,再与用户沟通。一般用户看到一些实际的东西后,对需求会有更为详细的解释,开发人员可根据用户的说明进一步完善系统原型。这个过程重复几次后,系统原型逐渐向最终的用户需求靠拢,从根本上减少需求变更的出现。

中小企业软件系统需求变更及应对策略

文章编号:100622475(2006)022******* 收稿日期:2005205215 作者简介:潘国庆(19792),男,上海人,上海理工大学计算机学院硕士研究生,研究方向:数据库与网络;肖仰华(19802),男,江苏人,硕士研究生,研究方向:网络数据库、软件工程;曹渠江(19472),男,上海人,教授,数据库学科带头人,研究方向:网络数据库。 中小企业软件系统需求变更及应对策略 潘国庆,肖仰华,曹渠江 (上海理工大学计算机学院,上海 200093) 摘要:从目前中小企业信息化过程中软件系统开发的需求变更出发,分析了中小企业软件系统开发的特点,需求变更产生的原因,需求变更对软件系统开发的影响,进一步从如何应对需求变更以及控制风险两个角度进行论述,对软件分析和设计方面给出了一些策略和建议,以达到降低由于需求变更引起的项目风险和维护代价的目的。关键词:需求变更;需求管理 中图分类号:TP311.52 文献标识码:A Softw are R equirement Change of Softw are System for Middle Small E nterprise and Corresponding Solution PAN G uo 2qing ,XI AO Y ang 2hua ,C AO Qu 2jiang (C ollege of C om puter ,University of Shanghai for Science and T echnology ,Shanghai 200093,China ) Abstract :The paper focus on the s oftware requirement change of the in formatization of middle and small enterprise ,and discusses the feature of the s oftware development of the middle 2small enterprise ,the cause of the requirement change ,and the in fluence of the require 2ment change on the s oftware development.The paper puts m ore attention on the method of how to deal with the requirement change ,and how to obtain the s oftware requirement.In order to reduce the risk of requirement change and the cost of s oftware maintainance ,s ome suggestions about team w ork and s oftware analysis and design are proposed.K ey w ords :requirement change ;s oftware requirement management 0 引 言 随着市场竞争的日益激烈,企业对如何提升自我竞争力以及管理水平越来越重视,信息化可以帮助中小企业积极地响应市场的变化,协助中小企业强化核心竞争力,缩短企业工作流程,减低营运成本及投资风险,改善服务品质,提高整体效率,使企业信息运作机能最佳化,并得以稳定、快速地成长。然而,在开展中小企业软件系统开发的同时,由于中小企业自身的特点,在软件项目实施过程中,会出现很多的需求变 更,这样就会对开发造成很大的影响。本文从如何应对软件需求变更以及如何预防不必要的需求变更两个角度对需求变更展开论述,并给出了一些策略和建议,以便通过对需求变更的控制与预防,有效地降低需求变更引起的项目风险,提高开发效率。 1 需求变更的定义 软件需求是用户为了解决问题、达到目标需要的软件的能力,它是整个软件项目的最关键的一个输入,和传统的生产企业相比较,软件的需求具有模糊性、不确定性、变化性和主观性的特点,它是软件项目最难把握的问题,同时又是关系项目成败的关键因素,因此对于需求变更的处理十分重要。 中小企业处于发展中,其最大特点是不稳定性,在开展信息化的过程中,需求会随时间变化而变化,长期项目更是如此,这就造成了潜在的需求变更的可能性。软件需求变更会给项目带来很大的风险,会导致项目的成本费用增加、开发周期延长、产品质量下降及团队工作效率下降等不良后果,它是系统不稳定的潜在的因素,目前需求变更一般的定义为:在需求 计算机与现代化  2006年第2期 J IS UAN J I Y U XI ANDAIH UA 总第126期

相关主题