选用适当的开发模型 采用建立原型的开发模型比较适合需求不明确的开发项目。开发人员先根据用户对需求的说明建立一个系统原型,再与用户沟通。一般用户看到一些实际的东西后,对需求会有更为详细的解释,开发人员可根据用户的说明进一步完善系统原型。这个过程重复几次后,系统原型逐渐向终的用户需求靠拢,从根本上减少需求变更的出现。目前业界较为流行的叠代式开发方法对工期紧迫的项目的需求变更控制很有成效。

  用户参与需求评审 作为需求的提出者,用户理所当然是具权威的发言人之一。实际上,在需求评审过程中,用户往往能提出许多有价值的意见。同时,这也是由用户对需求进行后确认的机会,可以有效减少需求变更的发生。

  变更控制流程如图所示。

  需求变更的代价

  一般来讲,需求的变更通常意味着需求的增加,需求的减少相对很少,而且处理需求减少方面的问题也比较容易。当客户提出新需求的时候,项目开发人员应该分析这些新需求对项目现阶段带来的风险,得出双方实现变更需求的需要的成本,包括时间、人力、资源等等方面。

  变更都是有代价的,应该评估一下变更的代价和对项目的影响,在评估代价并且与客户讨论的过程中,要让客户了解变更的后果,变更之后面临大的问题是项目延期,让客户一起做判断:“我可以修改,但您能接受后果吗?”。现在会出现三种可能:客户接受延期这一后果,开发人员按客户要求做出相应修改,让客户知道为此需要付出延期的代价;如果客户认为代价太大,那开发人员不必修改了,可以记录下需求,待到下一版本再做修改;客户不接受变更的代价,导致项目夭折。 如果客户不知道你为变更付出的代价,对你的辛苦便难以体会,以致没完没了的提出新的变更。