软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。如果对项目进行风险管理,就可以最大限度的减少风险的发生。但是,目前国内的软件企业不太关心软件项目的风险管理,结果造成软件项目经常性的延期、超过预算,甚至失败。成功的项目管理一般都对项目风险进行了良好的管理。因此任何一个系统开发项目都应将风险管理作为软件项目管理的重要内容。
在项目风险管理中,存在多种风险管理方法与工具,软件项目管理只有找出最适合自己的方法与工具并应用到风险管理中,才能尽量减少软件项目风险,促进项目的成功。
项目风险管理
项目风险管理是指为了最好的达到项目的目标,识别、分配、应对项目生命周期内风险的科学与艺术。项目风险管理的目标是使潜在机会或回报最大化,使潜在风险最小化。风险管理涉及的主要过程包括:风险识别,风险量化,风险应对计划制定和风险监控,如图1所示。风险识别在项目的开始时就要进行,并在项目执行中不断进行。就是说,在项目的整个生命周期内,风险识别是一个连续的过程。
(1)风险识别:风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目。风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行。
(2)风险量化:涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程。风险量化的基本内容是确定那些事件需要制定应对措施。。
(3)风险应对计划制定:针对风险量化的结果,为降低项目风险的负面效应制定风险应对策略和技术手段的过程。风险应对计划依据风险管理计划、风险排序、风险认知等依据,得出风险应对计划、剩余风险、次要风险以及为其它过程提供得依据。
(4)风险监控:涉及整个项目管理过程中的风险进行应对。该过程的输出包括应对风险的纠正措施以及风险管理计划的更新。
每个步骤所使用的工具和方法详见表1:
风险管理过程中所使用的工具、方法
软件项目中的风险管理
1、软件项目中的风险
软件项目的风险无非体现在以下四个方面:需求、技术、成本和进度。IT项目开发中常见的风险有如下几类:
(1)需求风险
①需求已经成为项目基准,但需求还在继续变化;
②需求定义欠佳,而进一步的定义会扩展项目范畴;
③添加额外的需求;
④产品定义含混的部分比预期需要更多的时间;
⑤在做需求中客户参与不够;
⑥缺少有效的需求变化管理过程。
(2)计划编制风险
①计划、资源和产品定义全凭客户或上层领导口头指令,并且不完全一致;
②计划是优化的,是"最佳状态",但计划不现实,只能算是"期望状态";
③计划基于使用特定的小组成员,而那个特定的小组成员其实指望不上;
④产品规模(代码行数、功能点、与前一产品规模的百分比)比估计的要大;
⑤完成目标日期提前,但没有相应地调整产品范围或可用资源;
⑥涉足不熟悉的产品领域,花费在设计和实现上的时间比预期的要多。
(3)组织和管理风险
①仅由管理层或市场人员进行技术决策,导致计划进度缓慢,计划时间延长;
②低效的项目组结构降低生产率;
③管理层审查 决策的周期比预期的时间长;来源:考试大
④预算削减,打乱项目计划;
⑤管理层作出了打击项目组织积极性的决定;
⑥缺乏必要的规范,导致工作失误与重复工作;
⑦非技术的第三方的工作(预算批准、设备采购批准、法律方面的审查、安全保证等)时间比预期的延长。
(