【摘 要】软件项目中,范围变更失控是导致软件失败的主要原因。分析了范围变更的主要原因,提出了范围变更控制的基本要素,建立了有效的范围变更控制流程,并且对范围管理的控制过程进行了分析,后对软件项目范围变更控制进行了总结。
【关键字】软件项目;范围管理;变更控制;过程控制
1 引言
近年来,IT产业以惊人的速度发展,从而使软件产业的地位在经济发达提到了空前的高度。虽然软件产业在国内外得到了迅速发展,但是软件项目实施效果却不容乐观。调查分析表明,大约70%的软件项目超出预定开发周期,大型项目平均超出计划交付时间20%-50%,90%以上的软件项目开发费用超出预算,并且项目越大,超出项目计划的程度越高。
据分析,软件项目失败的原因主要有以下三点:一是需求的不断变化。二是开发的软件不能满足用户的需求。三是软件项目的管理问题,这包括两个方面:一方面是因为缺乏完善的管理项目风险的方法;另一方面是由于软件项目规模的庞大,项目的范围难以精确确定,从而在项目开发的过程中范围不断变更,过程控制的力度不够,因此导致成本估计难以精确,进度控制困难,可靠性无法保证。
总的来说,软件项目的失败,很大程度上是由于软件项目的复杂性引起的,而软件项目的复杂性主要来源于软件项目的不确定性。无论是需求的不确定,还是由于软件项目的规模庞大造成软件项目范围难以界定,终的结果都必将造成软件项目范围的变更。因此,人们在技术方面的诸多努力未取得相应成效后,不得不转而求助于项目管理技术。
2 软件项目范围管理的重要性
项目范围是指产生项目产品所包括的所有工作及产生这些产品所用的过程。项目干系人必须在项目要产生什么样的产品方面达成共识,也要在使用怎样的过程生产这些产品方面达成共识。项目范围管理是指对项目包括什么与不包括什么的定义与控制过程。这个过程用于确保项目组和项目干系人对作为项目结果的项目产品以及生产这些产品所用到的过程有一个共同的理解。项目范围管理的任务是界定项目包含且只包含所有需要完成的工作,并对项目其他管理工作起到指导作用,以保证顺利完成项目的所有过程。
项目范围界定不清在软件项目中是一种较常见的现象,造成项目范围界定不清的原因有以下三种:第一,业务流程不规范,没有完善的项目管理体系来指导项目的管理,这种情况是糟糕的,大部分项目都是以失败而告终;第二,对项目没能制定出清晰规范的范围变更控制过程。企业有管理体系,但不够完善和规范,对项目组的变更过程的制定没能起到有效的指导作用。变更是不可避免的,只要有效地加以管理、控制,同样可以达到各方满意的结果;第三,业务需求不清晰,对项目范围的定义不够精确,系统要完成的目标也不够明确,做不到可量化、可验证程度。项目范围的明确定义,有经验的项目经理及系统分析员将起到至关重要的作用。可见,完善的项目范围管理是整个项目终成败的关键。
3 项目范围变更控制要素分析
制约一个项目的条件是项目“三约束条件”——范围、时间、成本。在一个项目中这三个条件是相互影响、相互制约的,而且往往是由于范围变更影响了时间和成本的变更。如果项目一开始确定的范围小,那么它需要完成的时间以及耗费的成本必然也小,反之亦然。很多项目在开始时都会粗略地确定项目的范围、时间以及成本,然而在项目进行到一定阶段之后往往会变成让人感觉到不知道项目什么时候才能真正结束,要使得项目结束到底还需要投入多少人力和物力,整个项目好像一个无底洞,对项目的后结束谁的心里也没有底。这种情况的出现对于企业的高层来说,他们是不希望看到的,然而这样的情况出现并不罕见。造成这样的结果是由于没有控制和管理好项目的范围。可见项目的三约束中范围的影响起到关键作用。
一般来说,在启动软件项目初期,客户应该提出一个相对确定的项目范围,为项目的实施提供一个牢固的前提和框架,同时也是为后期的项目管理划出一个明晰的“圈”,所有项目活动的开展,包括项目成本、质量和时间的控制也应该在此范围内进行。但是,在实际的操作过程中,这个“圈”的边界有可能会出现模糊、扩大的现象,甚至这些扩大和模糊的部分会给项目带来风险。项目范围(Scope)、时间(Time)、成本(Cost)、质量(Quality)之间的关系模型如图1所示。
如果项目范围即既定的面积S不变,成本C、质量Q、时间T可以在一个固定的S的边界限制下给出一个约束的关系模型Cost=f(Quality,Time,Scope)。但是,如果S的值并不固定,如图1所示出现边界模糊或者向外扩展时, C、Q、T失去可依赖的边界限制,其之间的约束关系会变得复杂。因此,我们在对项目范围进行控制时,一是要保证项目初期的S是准确可靠的,尽量减少边界的模糊性;二是要保证项目实施过程中S的稳定,尽量避免扩大化,或是说让扩大化受到合理的控制。
图1 项目范围、时间、成本、质量之间的关系模型