内容简介:需求变更是软件开发人员心中永远的痛。每次需求变更,软件开发人员就无条件接收,实施软件更改,频繁的变更绝对会让软件开发人员欲生欲死。难道就没有什么办法来控制需求变更吗?降低变更对软件项目的影响,减少变更,甚至杜绝变更,这些美好的愿望有可能实现吗?需求变更控制,不仅在于变更发生之后怎么应对,更重要的是做好需求分析和管理,在项目早期做好需求开发,将需求变更的源头尽可能地消灭,才是解决需求变更问题之道。
需求变更是软件开发人员心中永远的痛。
每次需求变更,软件开发人员就无条件接收,实施软件更改,频繁的变更绝对会让软件开发人员欲生欲死。难道就没有什么办法来控制需求变更吗?降低变更对软件项目的影响,减少变更,甚至杜绝变更,这些美好的愿望有可能实现吗?
需求变更控制,不仅在于变更发生之后怎么应对,更重要的是做好需求分析和管理,在项目早期做好需求开发,将需求变更的源头尽可能地消灭,才是解决需求变更问题之道。
下面的一些优秀实践有可能帮助你达成愿望:
-
使用联合应用设计来收集最初需求
联合应用设计可以让用户更早地接触到将来交付的软件产品,因此可以帮助用户确定自己想要的软件使用需求,如果前期收集的所有需求都是用户真正想要的,那么用户就不会在软件开发过程中提出需求变更了。
-
对质量需求,使用质量功能展开
质量需求是很难定量地描述。不能定量地描述就无法有效地设计和测试。QFD也许是一个有益的帮助手段。通过质量功能展开,可以把用户的质量需求转化为设计要求。鉴于它在健壮设计体系中发挥的巨大作用,相信它也会给软件质量需求的分析和确认带来帮助。
-
对于安全性分析和安全漏洞预防使用安全专家
除了质量需求,安全性需求也不是很好表述清楚。如果在分析安全性需求时有安全专家在场,可能会更容易把需求定义清楚。
-
对于新软件的主要功能使用原型开发
有些软件功能只是用户的奇思妙想,这类功能用户和开发人员都没有类似的实物,这种情况下最好要先开发出软件原型,软件开发人员通过原型不断和用户确认,这样可以帮助用户尽快确定原本停留在想象中的功能需求。
-
通过挖掘遗留应用,以获取新项目的需求和业务规则
对于有些用户不能说清楚的需求,可以通过分析遗留的类似软件的功能,帮助用户确认新的需求。
-
让用户参与敏捷项目开发
采用敏捷的开发方式,让用户更多地参与到项目中来,完成一部分需求,就让用户确认一部分需求,也会大大减少后期需求的变更。
-
确保需求被清楚地表示,并且很容易理解
需求的描述要满足可读性、准确性的要求,这有助于软件开发人员与用户对需求达成一致理解,避免因歧义而产生的需求变更。
-
用户和供应商双方都是用正规的需求审查
用户和开发方应采取正规的需求评审对需求进行确认。
-
创建一个客户供应商联合变更控制委员会
用户要理解,需求变更未必都是对用户有利的。有些变更,虽然会给用户使用上带来些许便利,但可能同时影响软件的稳定性。所以,每次需求变更,用户应当征求开发者的意见,通过用户和开发方的联合评审。
-
为特定功能的变更,选择对应领域里的专家
一些专业性很强的功能,它的需求分析和变更都需要有对应领域的专家的加入,以免出现南辕北辙的事情。
-
确保需求的可跟踪性
需求管理非常重要的实践——需求跟踪。通过需求跟踪,可以确定需求的状态,辅助控制需求的变更。
-
需求变更的多版本分割
需求的变更必须要做好版本控制。也许变更之后的结果证明还是原来的方案更合适,如果没有版本控制,就悔之晚矣。
-
使用自动化需求分析工具
借助自动化需求分析工具,可以避免一些不该出现的人工错误的发生,可以缩短变更的工期。
总之,使用联合应用设计,仔细需求分析,需求审查以及圆形可以使需求过程在技术和管理控制之下。
参考书目:《软件工程最佳实践》
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何在需求变更时修改CSS?
- 控制需求变更的3种解决方案
- 控制需求变更的 3 种解决方案
- PyMiner 开源协议变更为 LGPL,技术变更为 PySide2
- 使用JGit获取变更细节
- 每日获取变更的CVE漏洞
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。