实在太频繁,如果每次变更都走变更流程,也会大大影响项目进展。按照变更控制流程,需要对变更做影响分析等等。既然变更在所难免,不可能只要有变更就执行严格的变更控制程序,这个过程也是有成本的,所以,和项目组成员讨论的结果,只有重大变更时,才执行变更控制程序。比如影响了项目里程碑的达到,工作量超出了原先估计的30%等等。
这样一来,既保证了变更的有序性,又保证了项目进展。除此之外,我还对需求的稳定度做了一个度量,度量了原始需求的个数,增加、删除、更改的需求个数;并分散在项目各个阶段,如需求分析、概要设计、详细设计、编码阶段、测试阶段等等的需求数,并将每次需求变更的提出人、变更原因,是否走了正式的变更流程都记录了下来。一来是为以后的项目做参考,二来跟客户沟通时也有话说。不至于拿不出令人说服的事实和根据来。
比如这个项目,初始的软件需求共有142个,中间增加了21个,删除了6个,更改了34个。总体需求稳定度在30%左右,对于一个软件项目来说,就很不错了。老挝项目于2011年12月底结束,项目获得了老挝海关的好评,目前系统运行正常,系统已经融入老挝海关工作流程,成为海关工作不可分割的一部分。公司也收回了该项目所有尾款,实现了公司的价值。在此项目中,我们做到了一下几点:尽早开始需求调研,清晰进行需求定义,随时和客户进行沟通,及时记录需求变更,统计需求变更的影响和工作量。
因此,项目进行得很成功,期间克服了很多困难,比如人手紧张,客户方接口人变动等等。但因为工作范围没有什么改变,需求一直在掌控之中,项目一直按计划执行和完成。