在开发项目过程中,用户随时会提出一些新的需求,要求开发人员解决,这些需求的提出,有时在开发阶段中有时在开发阶段后。这种在需求分析的两个相邻子阶段中,或者在迭代周期的需求分析中,后一段或周期的需求分析结果与前一次不一致, 我们把这种不一致称为需求变更。产生需求变更的原因主要有以下几个方面:

(1)在需求分析阶段,开发人员与用户的沟通不够。在需求分析阶段,开发方与用户没有很好的交流,开发方就根据用户提供的大概信息,自己推导出用户的需求。通过这种需求分析得出的需求往往会和用户的实际需求相差甚远,导致用户提出更改需求。

(2)项目的实施周期过长。随着时间的推移,用户对整个系统的了解也越来越深入。他们会对模块的界面、功能和性能方面提出更高更多的要求。

(3)技术更新过快。由于技术的快速更新, 企业可能引进一些新的设备, 而这些设备可能就会与我们的目标系统有直接的关系, 由于这一变化可能发生在解决用户原先问题之前或者之中, 那么开发人员不得不加入这一新的需求。

解决频繁变更的方法

1、不管商务情况如何,前期的技术协议一定要明确描述可以做到的功能;

2、凡是与客户沟通确认的变更要严格按照文档备案流程操作;

3、随时和技术协议核对,客户的变更是否在协议范围内;

4、有了资料,客户不合理变更提出或是次数过多时,可以就此和客户交涉,讨论追加费用还是不作如此变更还是引导此变更移至二期工程;

5、既然有商务因素导致频繁变更,也可以利用商务因素减少频繁的变更,就看项目经理如何利用资源;

6、实施中对客户的需求引导非常重要,要求现场实施人员发挥相应作用;

很多项目经理实在项目准备实施时参与进来,基本以技术性人员为主,应该对于项目的整体情况和相关资源尽量多了解,利用多方资源早早进行合理运用。

软件开发过程中如何避免需求变更

为了尽可能地避免发生需求变更,以及保证需求分析的高稳定性,可以采用以下方法:

(1)对开发人员进行专业培训。因为,开发人员对所开发系统的领域不一定了解,为了开发人员能更好理解用户的需求,在做需求分析的初始阶段对开发人员进行该领域相关知识的培训。

(2)开发方与用户进行协作和交流。在用户提出需求变更时开发人员应该认真听取用户的要求并加以整理和分析。分析需求变更的原因并提出可行的替代方案;同时向用户说明这些需求变更会对整个项目的开发带来的不良后果。

(3)合同约束。由于需求变更可能会对整个项目产生影响,所以,开发方和用户在签定项目合同时,可以对需求变更增加一些相关的合同条款。

(4)建立需求文档并进行版本控制。需求分析的最终成果是一份客户和开发人员对所开发的产品达成共识的文档。有了这份文档,即使开发人员的角色有所变动,也不会对需求分析的前期工作有所影响。对每次的需求变更都用一个新的版本来标识。

(5)需求评审和设立需求基线。为了让开发方详细了解用户的需求,让不同人员从不同的角度对需求进行验证,作为需求的提出者,在需求评审过程中,用户往往能提出许多有价值的意见。同时,也是用户对需求进行最后确认的机会,可以有效减少需求变更的发生。需求在通过正式评审和批准之后,应该确定需求基线,进一步的需求变更将在此基线的基础上,依照项目定义的变更过程进行。设置需求基线可以将变更引起的麻烦减至最小。

如何管理软件开发项目中,需求频繁的变更。相关推荐

  1. 浅析软件开发项目中的需求分析

    [摘要]在软件开发项目中,需求分析是关乎软件项目开发成败的重要因素.现在的软件项目中返工开销占了总开销很大比例,而导致返工的主要原因是需求分析不明确.针对这一情况,文章阐述了软件开发中需求分析任务.需 ...

  2. 声光报警器 | 在软件开发项目中加入声光告警、语音通知方案

    在IT软件开发项目中,有的客户有这样的需求,希望在公司的生产环境中安装硬件设备,比如声光报警灯.语音通知设备等.当软件中的某些重要信息或者异常事件发生时,向设备发送消息,通过警示音.灯光.语音三个维度 ...

  3. 如何管理软件开发项目?

    方法概要 管理软件开发项目,是一个非常复杂的问题.本方法虽只涉及非常粗浅的步骤和概念,相信正是因为其精简性,会给初学者带来指导性的效果.应该有一些用处吧. 1 将目标具体化 无论是为内部用户开发,还是 ...

  4. 项目管理进阶--软件开发项目中的团队组成

    #项目管理进阶–软件开发项目中的团队组成 ##项目经理 项目经理负责分配资源,确定优先级,协调与客户和用户之间的交往.总而言之,就是尽量使项目团队一直集中于正确的目标.项目经理还要建立一套工作方法,以 ...

  5. 软件开发项目中的成本比例

    我以前说过一段话:"花费6/7的工作量,去保证那1/7的,有价值的工作.这不是太浪费了吗?" 结果 纯粹思维居然不同意:"老大,你真的是孤陋寡闻了.人均900行/月,已经 ...

  6. 在一个软件开发项目中进行实际日程安排的十二点提示(转)

    Laura Rose , QE Manager, Rational<?XML:NAMESPACE PREFIX = O /> <?XML:NAMESPACE PREFIX = ST1 ...

  7. 软件开发项目中进行实际日程安排

    转自:http://www.ibm.com/developerworks/cn/rational/rationaledge/content/sep05/rose/ 你是否有足够的能力领导一个软件开发项 ...

  8. 在一个软件开发项目中进行实际日程安排的十二点提示

    Laura Rose , QE Manager, Rational 2005 年 10 月 19 日 来自 Rational Edge:软件开发团队依赖于严谨的计划日程安排.但除了使用基本的日程安排工 ...

  9. 软件测试中最复杂的业务_复杂软件开发项目中的有效测试

    软件测试中最复杂的业务 手动还是自动测试? 该软件总是由人创建,经过人测试并且在大多数情况下是由人使用的. 任何负责任的测试人员最糟糕的梦想是错过一个严重的错误. 测试人员尝试仔细检查需求并编写测试用 ...

最新文章

  1. Azure上的VM代理及可扩展程序
  2. 04_05_06:设置线型风格(设置线型风格)、区域着色 (Shading Regions)、设置Spines
  3. java运行时参数_运行时的Java 8参数名称
  4. 论文浅尝 - ACL2022 | 基于多语言语义解耦表示的跨语言迁移方法实现多语言阅读理解...
  5. python读取大文件的坑_如何在Python中读取大文件的特定部分
  6. Java中对查出的数据计数_基础算法7:从数据库某个字段中取出现次数最多的几条数据形成“热门xxx”...
  7. _InputArray 和 outputArray在ORBslam中的使用
  8. 面向对象和面向过程思想 oc
  9. 《How to bake LightMap》
  10. 基于DEMATEL-ISM法的民航飞行员综合安全能力结构模型研究
  11. 清明上河图对计算机技术的启发,风俗画的定义与《清明上河图》的启示
  12. intel wifi 5100agn linux驱动,intel5100agn网卡驱动下载
  13. Java 敏感词过滤工具类及文本
  14. 甲骨文裁员,N+6 赔偿……部分员工不满
  15. HDU 4966 GGS-DDU [最小树形图]
  16. 数据集下载(OTB2015、VOT2018、UAV123、DET、VID、COCO、Youtube-BB、LaSOT、GOT-10k)
  17. IT战略规划项目方法论(德勤 埃森哲 IBM 凯捷)
  18. c语言零基础自学,c语言零基础入门 该如何学习
  19. iphone刷基带_基带有什么用?iPhone手机基带查询方法
  20. 广州先达MES系统在冲压行业的应用

热门文章

  1. 2022计划(尽量实现一半吧哈哈哈)
  2. 【调度】操作系统中调度算法(FCFS、RR、SPN(SJF)、SRT、HRRN)
  3. 从加密硬件开始,三未信安想在云时代转型云加密服务商
  4. PHP开发支付宝微信个人免签支付接口实例
  5. hdoj 1225 football sorce(尝试了50次的水题)
  6. Linux系统重装U盘启动出现“Failed to load ldlinux.c32解决办法
  7. 矢量模长计算(C++)
  8. 用计算机用u盘怎么切换,U盘一插进电脑提示需要格式化怎么办?
  9. 微信tinker导致冷启动变慢的问题优化
  10. 我在阿里第一年375晋升的心得