论软件开发项目的需求变更分析和控制策略

(整期优先)网络出版时间:2017-12-22
/ 2

论软件开发项目的需求变更分析和控制策略

汪吉珊

广东海格怡创科技有限公司广州广东510630

摘要:本文研究了需求变更管理在项目实施管理中的重要作用,基于软件开发项目的需求变更管理的知识,分析了需求变更的重要成因,并根据作者的多年项目实施经验,探讨了软件开发项目中需求变更管理的一些策略和方法。

关键词:软件开发项目;项目管理;需求变更控制

一、引言

项目管理是为了保障项目按照预定的成本、时间、质量顺利完成,而对项目成本、人员、进度、质量、风险等进行分析和管理的活动。

项目管理最早源自于20世纪60年代,当时项目管理的应用范围还只是局限于建筑、国防和航天等少数领域,但因为项目管理在美国的阿波罗登月项目中取得巨大成功,由此风靡全球。国际上许多人开始对项目管理产生了浓厚的兴趣,并逐渐形成了两大项目管理的研究体系,其一是以欧洲为首的体系——国际项目管理协会(IPMA);另外是以美国为首的体系——美国项目管理协会(PMI)。在过去的30多年中,他们的工作卓有成效,为推动国际项目管理现代化发挥了积极地作用。

在项目的实施中,客户的需求变化是常有的事,通过对项目需求的管理,可以有效地控制项目范围的蔓延,防止项目工期与成本的增加、质量的降低。

笔者在近几年的软件开发项目管理实施工作中,作为项目经理,带领过数支开发团队,通过不断的实践和摸索,有收获也有挫折,总结了一些心得:虽然在软件开发过程中需求的变更会给项目的实施带来不确定性,但只要把需求变更作为项目需求管理的重点加以控制,软件开发项目的进度、成本和质量也能控制在可控的范围之中。

二、软件项目管理的需求变更分析

对于软件开发项目来说,需求变更形式是多种多样的,有时候来源于需求范围的变更,有时候是功能设计无法满足不断变化的业务发展需求,有时候是客户的一个想法改变就轻易推翻了原先经过再三讨论确认下来的需求,等等。需求变化的成因多种多样,总结起来有以下几方面主要原因:

1、项目合同需求范围不明确,边界模糊。客户的需求往往多而“凌乱”,如果不能加以分类、整理,标识轻重缓急,约定需求范围,必将引起不必要的扯皮。

2、对客户的业务需求了解不透彻。项目经理和需求工程师对客户所处的行业、技术、业务了解不足,无法对客户需求进行有效的引导、筛选和过滤,客户提什么就记录什么,事实上有经验的需求工程师不但能引导客户提出必要的“隐性需求”,还能协助客户从复杂的业务需求中逐渐提炼出清晰的需求模型。

3、技术上没有良好的软件结构适应动态业务变化。随着业务的发展,客户业务需求必然是动态变化的,没有良好的软件结构,不考虑业务发展的必然性,将带来频繁的变更。虽然说为了适应业务的发展,执行一定程度上的需求变更不可完全避免,但好的软件结构设计,将更加有效地节约开发成本,提高客户满意度。这也是好的开发团队与其他开发团队差异化的体现。

4、缺乏可执行的标准化项目管理规程。项目管理规程,以文字的形式,记录了项目团队内部各阶段必须执行的过程。过程定义中明确指明了项目阶段、执行的活动、执行主体、输入输出,并提供了可执行的工作模版。它象流程图一样指引项目活动有序执行,各执行主体各自独立,相互协作,有机配合。按管理规程执行的好处是,它是以项目组织的历史经验为借鉴,依照管理规程执行,可以让项目“少走弯路”。项目管理组织允许项目组对项目管理规程提出裁剪申请。

三、软件项目管理的需求变更控制策略与实践

按照现代项目管理的概念,一个项目的生命周期分为启动、实施、收尾三个过程。需求变更的控制不仅是项目实施过程需要考虑的事情,而是要落实到整个项目生命周期的全过程。

(一)项目启动阶段的变更控制

项目的启动需要召开项目启动会。项目启动会一般由建设方发起,它作为项目建设生命周期的开始,其意义和难度不言而喻。作为项目管理的负责人,需要特别重视项目启动会的召开,精心设计,杜绝走过场。一般而言,建设方的主管领导、项目团队成员、业务部门代表、软件系统客户代表、监理方团队代表(如有)、实施方项目团队成员均需要参加项目启动会。

启动会的目的是让项目建设方、客户方、监理方(如有)、实施方等项目主要干系方对该项目的整体情况有一个清晰的认识和了解,让项目各主要干系方清楚各自的职责和义务,让项目建设方、客户方在项目建设的过程中所需要给予的支持和配合给予承诺,从而让各方就项目建设的相关事宜达成共识。

对于项目建设方来说,有效的做法是组织编制《项目立项书》,对项目目标加以记录。项目立项书的内容包括项目背景、项目目标、项目建设内容、质量要求、验收标准、开发方式、项目进度计划、人员和资金投入计划等。项目立项书需要得到各级的签字审批,以确保有效。

项目启动阶段,很重要的一件事情是组建项目变更控制委员会(也称配置控制委员会ConfigurationControlBoard,简称CCB),或相关职能的类似组织。项目变更控制委员是项目的所有者权益代表,负责裁定接收哪些变更。CCB由项目所涉及的多方人员共同组成,通常包括客户和实施方的决策人员。

(二)项目实施阶段的需求变更

项目管理的目的是实现项目目标,即在保证经济、合理、安全、环保的前提下实现工程项目的投资、质量、进度最优化。项目过程是否可控,决定了项目目标是否能够实现。项目经理应该始终坚持一个理念——“需求变更是必然的、可控的、有益的”。项目实施阶段的变更控制需要做的是预防变更、分析变更、评估变更。

项目实施过程中,有效控制需求变更,需要注意以下几点:

1、项目经理的良好团队管理能力提升

项目经理是整个开发团队的领军人物,是决定项目成功与否的关键因素之一。项目经理需要具备一定的综合素质,包括管理能力、组织能力、经验积累、知识结构、个人魅力等,决定了其对项目和团队的影响力。

项目经理有责任深入业务领域,深入了解客户真正想要的东西是什么。很多情况下,项目经理需要以更高的视觉审视项目,以敏感的视觉动态了解项目和团队的状态,并采取积极措施保障项目的实施。

不管是谁都不能与生俱来具备良好的管理能力,项目经理的成长与世间万物一样,有其自身的成长规律,通过外部的学习、内部的总结积累,在项目中不断历练,其能力水平将能不断得到提升。

2、团队人力资源稳定,具备行业经验的需求分析师

精确的需求与范围定义虽然不能完全阻止需求的变更,相反地,“需求永远是变化的”,优秀的需求细化定义可在很大程度上除低需求变化的数量。因此,项目组织中应尽量拥有经验丰富的需求分析师进行需求的定义。需求分析师的工作职责是与客户对功能需求进行深入的沟通,根据概要需求编写详细需求规格说明书;将需求传递给研发团队;参与系统规划和设计,与研发人员不断完善软件产品。

3、通过标准化模版获取和定义需求

获取客户需求时,可采用需求调研模版表单记录客户原始需求。往往文字化的描述略显单薄,可辅以表格、用例、流程图等表现形式,促进业务的理解和达成双方认可。丰富的文字和表格等的需求记录,可避免不必要的歧义,也便于进行需求回顾分析。如果需求记录清晰,并且获得需求提出方的签字确认,可作为界定后期需求变更的依据。

需求变更往往引起项目三要素(时间、成本、质量)的变化。需求变更需要通过CCB变更委员会的同意,即便是很小的需求变更,也可以对小需求进行收集汇总,再按照项目管理规程执行需求变更的审核。在实践中,人们往往不愿意为小的需求变更去执行正规的需求管理过程,认为CCB审核过程降低了执行效率。但需求变更会积少成多,如果变更逐渐变得不可控,未经CCB审核的变更难于争取到相对应的资源投入,这种情况严重时甚至可能导致项目的失败。

4、基于良好的软件架构平台构建业务模块

多层结构组件式的软件结构提供了快速适应业务需求变化的体系结构:数据层封装了数据访问逻辑、业务层封装了业务逻辑、表示层展现客户表示逻辑。

适应业务需求变化必须遵循一些松耦合设计原则,各层之间采用合理的接口访问方式,设计上力求减少对接口参数产生变化。业务逻辑封装好,则表示层界面上的信息要求很容易适应。接口定义得合理,那么即使业务需求有变化,也能够快速适应。

(三)项目收尾阶段的总结

项目收尾通常包括合同收尾和管理收尾两部分。这里我们主要指的是项目管理收尾,通过检查工作成果,得出是否可以项目结束的结论,也就是我们通常所讲的验收。

项目收尾中的另一重要事情是项目总结,项目总结工作应作为组织持续改进工作的重要内容来执行。具备丰富经验的项目经理往往善于将项目总结作为项目收尾的必要过程来执行。而需求变更也将被加以回顾,分析变更成因和解决步骤,甚至也可以检讨工作的失误和不足,作为知识财富留存起来。

结论:世间万物唯一不变的就是变化,需求变更是项目中不可避免要面对的问题。很多时候,需求变更不仅是挑战,也是机会。

参考文献:

[1]软件开发项目需求变更原因的实证研究,孙骁-云南大学-2011-被引量:0

[2]软件项目开发中需求变更范围管理研究,许亚明-北京邮电大学-2012-被引量:0

[3]探究需求变更对软件项目的影响,颜卿-复旦大学-2005-被引量:0

[4]关于软件开发与需求变更之间矛盾的研究,段昭-《科教导刊:电子版》-2016-被引量:0