应对需求变更的完整攻略

佛说:世事无常,但无常便是有常。这句话的意思是既然无常已经成为了一种存在的事实,那么无常也就变成了有常。

对于软件开发人员来说,需求变更就是无常,但既然难以避免需求变更,无常必须成为有常,那就应该坦然接受变更,把心思放在如何应对需求变更上面。

如何应对需求的变更?

如果我们在需求获取和需求定义阶段,和用户对需求达成一致理解,做好需求确认,那么后续的需求变更的几率会大大地降低。即便再出现一些意料之外的事情引发需求变更,只要做好变更影响分析,做好需求跟踪和变更控制,也不会对项目造成多大的影响。下面从多个维度谈谈如何应对需求变更:

  1. 商务层面

有些用户在合同/技术协议签订之后,经常不顾协议中的规定,肆意增加或改变需求,面对这种情况,有必要在商务层面对其进行约束。比如:

  • 在合同/协议中要清楚地定义项目的范围,必要时应将满足要求的软件任务书或需求规格说明书作为合同附件;

  • 在合同/协议中要明确软件验收标准。而且这个验收标准应该是针对每个需求项的,如果有某个需求项无法明确验收标准,就应明确此需求缓做或不做;

  • 在合同中约定需求变更的决策机构与流程。决策机构应有用户和开发方共同参与,流程中要明确变更影响分析、申请以及审批等要求;

  • 在合同中约定需求变更的成本如何分担。比如,甲方追加的需求,变更成本应由甲方承担;由于需求理解不一致造成的变更由甲乙双方共同承担。

  1. 技术层面

在技术层面,要采取各种技术手段,以确保需求定义准确、无误、无歧义、可实现、可测试,并且做好需求跟踪、需求确认。这些技术手段可能包括:

  • 用户访谈

  • 调查问卷

  • 原型模型

  • 演示

  • 形式化审查

  • 需求跟踪矩阵

  • 需求复用

有兴趣的同学可以延伸阅读之前的文章:《需求变更控制有哪些先进技术?》

  1. 沟通层面

导致需求变更还有一个原因是在对需求传导的过程中,由于信息衰减带来的后续环节的开发人员没有正确理解需求所造成的。因此,要在整个软件开发过程中做好对需求的沟通。需求的沟通包括以下几个方面:

  • 需求分析人员与用户的沟通。需求分析人员与用户的沟通要注意识别正确的需求提供者,要按照不同层次的需求与不同的需求提供者沟通;需求分析人员在需求获取时要引导客户发现其真正的需求;需求分析人员要采用合适的方法与用户进行沟通,比如原型法、功能演示等;需求分析人员与用户沟通的成果——用户需求必须经过需求确认后文档化;

  • 需求分析人员与开发人员和测试人员的沟通。用户需求和软件需求都需要通过有开发人员和测试人员参与的评审。需求分析人员也要能够及时向开发人员和测试人员解答需求问题,确保开发人员和测试人员对需求的正确理解;

  • 要有专人进行需求跟踪,及时发现各工作产品中需求的不一致。

  1. 管理层面

最后,做好需求变更控制还要在管理层面建立规章制度,严格管控。比如采取以下措施:

  • 需求变更必须经过严格的审批流程;

  • 对于存在大量需求明确的项目,组织应定义适合的迭代的生命周期模型供项目组使用;

  • 建立标准需求变更的流程,所有的变更都按流程处理;

  • 强化使用需求跟踪矩阵应对需求变更时识别变更对设计、实现和测试的影响,确保变更的完备性、正确性。

这正是:

需求变更不轻松,类比系统一工程

变更管控靠技术,商务管理和沟通

参考书目:术以载道:软件过程改进实践指南,作者:任甲林,出版社:人民邮电出版社

作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。

应对需求变更的完整攻略》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.hashtobe.com/3311.html