文档介绍:该【软件项目风险管理 】是由【巧巧】上传分享,文档一共【24】页,该文档可以免费在线阅读,需要了解更多关于【软件项目风险管理 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。软件项目风险管理资料
最新资料,WORD文档,可编辑修改
目录
引言
近几年来软件开发技术、工具都有了很大的进步,但是软件项目开发超时、超支、甚至不能满足用户需求而根本没有得到实际使用的情况仍然比比皆是;软件项目开发和管理中一直存在着种种不确定性,严重影响着项目的顺利完成和提交;但这些软件风险并未得到充分的重视和系统的研究;直到20世纪80年代,Boehm比较详细地对软件开发中的风险进行了论述,并提出软件风险管理的方法;Boehm认为,软件风险管理指的是“试图以一种可行的原则和实践,规范化地控制影响项目成功的风险”,其目的是“辨识、描述和消除风险因素,以免它们威胁软件的成功运作”;
在此基础上,业界对软件风险管理的研究开始慢慢丰富起来,理论上对风险进行了一些分类,提出了风险管理的思路;实践上也出现了一些定量管理风险的方法和风险管理的软件工具;虽然业界对风险管理表现了极大的兴趣,做出了不少努力,但似乎很少开发项目的组织真正积极地在软件开发过程中使用风险管理的方法;1995年IWSEDInternationalWorkshoponSoftwareEngineeringData会议做出的调查显示:风险管理技术没有得到广泛应用的原因并不是大家不相信这种技术的实效性,而是对风险管理的技术和实践缺乏了解;因此,我们认为很有必要对风险管理进行研究;
一、风险管理概述
软件项目风险
IEEE给出了风险的定义:一种事件、状态发生的可能性,这种可能性会带来严重的后果或者潜在的问题;风险是一种客观存在,风险与效益同存,只有正视风险才能有效地规避风险;而软件风险是软件项目管理和开发所出现的不确定事件,
归纳起来,软件项目风险大致可分为3类:2
◆项目风险:潜在的预算、进度、人力、资源、客户及需求等方面的问题以及它们对软件项目的影响;
◆技术风险:潜在的设计、实现、接口、验证和维护等方面的问题,威胁待开发软件的质量和交付时间;
◆产品质量风险:指因软件质量问题而造成的风险,涉及各种缺陷、错误及对其进行改进维护的风险;
软件项目风险管理
由于软件项目开发和管理中的种种不确定性,使软件业成为高风险的产业;有调查显示,有
l5%一35%的软件项目被中途取消,剩下的项目不是超期就是超出预算,或者无法达到预期的目标;对很多失败的软件开发项目进行事后分析说明:如果在项目刚开始时就关注于识别或解决项目中的高风险因素,那么就会很大程度地减少甚至避免这种失败;1
软件风险管理是一种软件工程实践,它包括过程、方法和工具;利用这些过程、方法和工具去完成以下工作:持续评估风险、确定风险优先级、实施策略处理风险;1它是软件项目管理的一个子集;项目管理方法的精髓是提供了一种结构化的模式,来指导项目经理进行项目管理,来分析和处理项目管理过程中的问题;风险管理方法,也是这样的一个结构化的模式,指导项目经理展开项目风险管理方面的工作;
风险管理涉及的主要过程包括:风险识别,风险量化,风险应对计划制定和风险监控;如图1所示,中心是风险管理过程的四部曲,外围是在风险管理过程中发生交互的相关信息;表1中显示了风险管理四部曲常用的工具和方法;
图1:风险管理过程中与外界的信息交互
◆风险识别:风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目;风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行;
◆风险量化:涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程;风险量化的基本内容是确定那些事件需要制定应对措施;;
◆风险应对计划制定:针对风险量化的结果,为降低项目风险的负面效应制定风险应对策略和技术手段的过程;风险应对计划依据风险管理计划、风险排序、风险认知等依据,得出风险应对计划、剩余风险、次要风险以及为其它过程提供得依据;
◆风险监控:涉及整个项目管理过程中的风险进行应对;该过程的输出包括应对风险的纠正措施以及风险管理计划的更新;
风险管理步骤
工具和方法
风险识别
头脑风暴法、面谈、Delphi法、核对表、SWOT技术
风险量化
风险因子计算、PERT估计、决策树分析、风险模拟
风险应对计划制定
回避、转移、缓和、接受
风险监控
核对表、定期项目评估、挣值分析
表1:风险管理每个步骤使用的工具和方法
软件项目风险管理模型
如所述,项目风险管理主要包含四个步骤,在这个共同的基础上有些模型强调量化的数据库的建立,有些则强调沟通和学****的重要性,从而建立了很多的风险管理模型;例如,图2显示了美国项目管理协会提出的模型;在后面的第三章中,我们会具体介绍经典的风险管理模型;
产品说明
其他计划输出
历史信息
检查表
流程图
头脑风暴法
风险因素
潜在风险事件
风险征兆
对其他过程的输入
投资者对风险的容忍度
风险因素
潜在风险事件
成本估算
工作周期评估
期望资金额
统计数据加总
模拟法
决策树
专家判断
需跟踪的机会,需应对的威胁
被忽视的机会,被接纳的威胁
图2:美国项目管理协会提出的风险管理模型
小结
下面的章节主要从这几个方面展开讨论:第二章我们从历史发展的角度来看风险管理的过程,经典的风险管理模型我们将在第三章介绍,在第四章中,我们将介绍风险管理常用的研究分析方法和工具,最后概述我国的软件项目风险管理的现状,并提出几点建议;
二、软件项目风险管理发展历程4
◆19世纪50年代,软件伴随着第一台电子计算机的问世诞生了;早期的软件开发并无系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程;大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩;而且,除了源代码往往没有软件说明书等文档;这个时期软件开发基本处于起步阶段,关于软件项目风险的管理研究工作尚未出现;
◆20世纪60年代中期到70年代中期,软件开始作为一种产品被广泛使用;软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜;“软件危机”就从这时出现了;为了克服这一危机,在1968,1969年连续召开的两次着名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善;
◆20世纪80年代,软件已经历了程序设计、程序系统阶段,开始向软件工程阶段发展;这一时期的开发技术和手段更加先进,对管理水平也提出了较高的要求;并出现了软件生存周期LifeCycle的概念,它包括计划、需求分析、设计、程序编写、测试和运行维护6个步骤;由于软件危机而引发出的一些对软件负面的结论,因此就存在软件风险问题;1989年由IEEE出版Barry编写的SoftwareRiskManagement软件风险管理是第一本比较深人地专门探讨风险管理的书籍;随后,越来越多的机构开始研究软件项目风险管理;其中美国卡内基一梅隆大学的软件工程研究SEISoftwareEngineeringInstitution提出T风险管理模型CRMContinuousRiskManagement,还多次举行研究软件风险管理的年会,一些院校也将风险管理纳人软件项目管理中进行讲授;
◆20世纪90年代至今,以网络计算为特征的信息高速公路得到了很快地发展;软件不仅在规模上快速地发展扩大而且其复杂性也急剧增加,开发的成本和进度变得更加难以预料;软件开发成功与否已不再仅是技术上的问题;软件项目管理的地位突显出来;在此基础上,软件项目风险管理研究开始慢慢丰富起来,理论上对风险进行了一些分类,提出了风险管理的思路;实践上也出现了一些定量管理风险的方法和软件工具;是否具有专门的风险管理已经成为判断一个软件开发组织成熟与否的主要指标之一;ISO提出的SPICESoftwareProcessImprovementCapabilityDetermination将风险管理作为评估的一部分;国内学者对软件项目风险的研究也日趋丰富起来,在软件项目管理相关书籍中开始将风险管理作为单独一章,进行探讨;
“软件危机”就从这时出现了;为了克服这一危机,提出了“软件工程”这一术语
出现专门关于软件风险管理的书籍,越来越多的机构开始研究风险管理
理论上对风险进行了一些分类,提出了风险管理的思路;实践上也出现了一些定量管理风险的方法和软件工具
软件项目风险的管理研究工作尚未出现
图3:软件项目风险管理发展历程
三、经典风险管理模型
Boehm和Charette的风险管理框架
Boehm用公式对风险进行定义,其中RE=PUOLUO表示风险或者风险所造成的影响,PUO表示令人不满意的结果所发生的概率,表示糟糕的结果会产生的破坏LUO性的程度;Boehm将软件项目风险管理分为风险评估和风险控制两大部分,其中风险评估又分为风险识别、风险分析和风险的优先级排序,风险控制又分为风险管理计划、风险解决和风险监控;Boehm思想的核心是10大风险因素列表;虽然其理论存在一些不足,但Boehm毕竟是软件项目风险管理的开创者;在其之后,更多的组织和个人开始了对风险管理的研究,软件项目风险管理的重要性日益得到认同;
软件项目风险管理的另一位创始人Charete构建的风险管理框架圈,则直接将其分为风险分析和风险管理两部分,其中风险分析包括识别、估算和评价,风险管理包括计划、
从本质上讲,,与其他工程项目风险管理也没有实质性差别.
表2:Boehm和Charette的风险管理框架比较
CMU/SEI的CRM持续风险管理模型
CMU/SEI的软件风险管理原则包括:
全局观点
积极的策略
开放的沟通环境
综合管理
持续的过程
共同的目标
协调工作
具体来说是要:
不断地评估可能造成恶劣后果的因素
决定最迫切需要处理的风险
实现控制风险的策略
评测并确保风险策略实施的有效性
CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:
风险识别
分析
计划
跟踪
控制
图4:CRM风险管理模型
Riskit方法
如果组织在项目早期采用系统化的风险管理过程和技术,那么组织就有能力避免很多问题;Riskit方法就能提供这种系统化的风险管理过程和技术,它是由Maryland大学提出的,旨在对风险的起因、触发事件及其影响等进行完整的体现和管理,并使用合理的步骤评估风险;对于风险管理中的每个活动,Riskit都提供了详细的活动执行模板,包括活动描述、进入标准、输入、输出、采用的方法和工具、责任、资源、退出标准;
Riskit方法的特点有: