浅析软件项目风险管理
2010-08-15邓超
邓 超
东莞南博职业技术学院,广东东莞 523083
1 软件项目风险管理概述
软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。现阶段在众多软件公司开发软件过程中必不可少的会涉及到软件项目的风险管理,当公司对软件项目风险管理不当时,风险就会成为现实,就有可能影响到项目的进度,增加项目的成本,甚至使软件项目不能实现。恰当的对软件项目进行风险管理,可以最大限度的减少风险的发生。
2 软件项目风险管理涉及以下几个方面:
1)识别软件项目风险
识别软件项目风险是系统化地确定对软件项目项目计划(估算、进度、资源分配)顺利实施产生威胁的因素。通过识别已知和可预测的风险,项目管理者就有可能避免这些风险,且当必要时控制这些风险。在项目的整个生命周期内,风险识别是一个连续的过程。一般情况下软件项目风险划分为以下几个种类:(1)资源风险;(2)产品规模风险;(3)需求风险;(4)相关性风险;(5)管理风险;(6)技术风险。
2)对软件项目风险进行评估
软件项目风险评估主要采取以下方法:(1)建立软件项目风险清单。风险清单是关键的风险预测管理工具,风险清单中应列出在任何时候碰到的风险名称、类别、概率及该风险所产生的影响;(2)对软件项目风险进行评估。风险评估的具体做法是:根据风险的不确定性和损失两个基本特征,为每个风险计算风险值。风险值=可能性×影响值,两者的乘积越大表明该风险越高,越值得重视;(3)软件项目风险划分。在进行了风险的量化分析后,需要对已经确定需要进行管理的风险进行优先级的划分。在风险划分中必须强调的是由于每个项目的资源都是有限的,所以风险管理必须把精力集中在最重要的风险子集上,并且在项目进行中条件和优先级发生改变的情况下,组成此子集的风险种类也要随之改变。
3)软件项目风险的应对措施
软件项目风险分析活动都是为了建立一个具有良好效果的处理风险的策略。风险管理策略一般包含3个内容:(1)风险规避;(2)风险监控;(3)构建风险管理模型。
风险规避就是通过变更项目计划,从而消除或形成风险的条件,或者保护项目目标免受风险的影响。虽然项目队伍永远不可能消除所有的风险,但某些特定的风险还是可以规避的。在项目早期出现的某些风险事件可以通过澄清需求、获取信息、
加强沟通、听取专家意见的方式加以应对。减少项目范围以规避高风险的工作;增加项目资源或时间;采用一种熟悉的而不是创新的方法;
风险监控是项目管理过程,它跟踪已识别的风险,监测残余风险和识别新的风险,保证风险计划的执行,并评价这些计划对减轻风险的有效性。风险监控记录与应急计划执行相关联的风险量度,是项目整个生命周期中的一个持续进行的过程。随着项目的进展,风险会不断变化,可能会有新的风险出现,也可能有预期的风险消失。良好的风险监控过程能为够提供信息,帮助我们在风险发生前做出有效的决策。
现阶段软件行业主要使用的风险管理模型有以下几种:
(1)Barry Boehm模型
Boehm模型公式:RE=P(UO)*L(UO)。其中tiE表示风险或者风险所造成的影响,P(UO)表示令人不满意的结果所发生的概率。L(UO)表示糟糕的结果会产生的破坏性的程度。Boehm思想的核心是十大风险因素列表,其中包括人员短缺、不合理的进度安排和预算、不断的需求变动等。针对每个风险因素,都给出了一系列的风险管理策略。在实际操作时,Boehm以十大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这十大风险因素的解决情况进行总结,产生新的十大风险因素表,依此类推。
(2)CRM模型
SEI CRM模型的风险管理原则是:不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理。它将风险管理划分为5个步骤:风险识别、分析、计划、跟踪、控制。
(3)RIM模型
SERIM从技术和商业2个角度对软件风险管理进行剖析,考虑的同题涉及开销、进度、技术性能等。SERIM的理论体系主要基于如下概念:风险元素(element)、因素(factor)、指标(metrics)和活动(activity),SERIM的分析模型反应了这几个目标的修正。概念之间的相辅相成关系。Karolak认为软件风险新的目标体现在3个方面,即技术、成本和进度。其中技术方面与性能、可用性等相关,应该尽早识别这个方面的风险;成本则包括预算、盈利等;进度包括进度表的灵活度、现实性等。贯穿于整个开发周期。它还提供了一些指标和模型来估量和预测风险。由于这些数据来源于大量的实际经验,因此具有很强的说服力。
3 结论
软件项目管理从某种意义上讲,就是风险管理。我们尽量去定义明确不变的需求,以便进行计划并高效管理,但商业环境总是快速变化的,甚至是无序的变化。所以,软件企业在进行项目管理的过程中,必须采用适合自己的风险管理方法进行风险管理,以确保软件项目在规定的预算和期限内完成项目。
[1]左美云,邝孔武.信息系统的开发与管理教程[M].北京:清华大学出版社,2003.
[2]张虹.软件工程与软件开发工具[M].北京:清华大学出版社.