软件项目风险管理

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件项目风险管理资料

【最新资料,WORD文档,可编辑修改】

目录

引言

近几年来软件开发技术、工具都有了很大的进步,但是软件项目开发超时、超支、甚至不能满足用户需求而根本没有得到实际使用的情况仍然比比皆是。软件项目开发和管理中一直存在着种种不确定性,严重影响着项目的顺利完成和提交。但这些软件风险并未得到充分的重视和系统的研究。直到20世纪80年代,Boehm比较详细地对软件开发中的风险进行了论述,并提出软件风险管理的方法。Boehm认为,软件风险管理指的是“试图以一种可行的原则和实践,规范化地控制影响项目成功的风险”,其目的是“辨识、描述和消除风险因素,以免它们威胁软件的成功运作”。

在此基础上,业界对软件风险管理的研究开始慢慢丰富起来,理论上对风险进行了一些分类,提出了风险管理的思路;实践上也出现了一些定量管理风险的方法和风险管理的软件工具。虽然业界对风险管理表现了极大的兴趣,做出了不少努力,但似乎很少开发项

目的组织真正积极地在软件开发过程中使用风险管理的方法。1995年IWSED (International Workshop on Software Engineering Data)会议做出的调查显示:风险管理技术没有得到广泛应用的原因并不是大家不相信这种技术的实效性,而是对风险管理的技术和实践缺乏了解。因此,我们认为很有必要对风险管理进行研究。

一、风险管理概述

软件项目风险

IEEE给出了风险的定义:一种事件、状态发生的可能性,这种可能性会带来严重的后果或者潜在的问题。风险是一种客观存在,风险与效益同存,只有正视风险才能有效地规避风险。而软件风险是软件项目管理和开发所出现的不确定事件,并可能会给项目计划和系统质量带来危害或损失.[1]

归纳起来,软件项目风险大致可分为3类:[2]

◆项目风险:潜在的预算、进度、人力、资源、客户及需求等方面的问题以及它们对软件项目的影响;

◆技术风险:潜在的设计、实现、接口、验证和维护等方面的问题,威胁待开发软件的质量和交付时间;

◆产品质量风险:指因软件质量问题而造成的风险,涉及各种缺陷、错误及对其进行改进维护的风险。

软件项目风险管理

由于软件项目开发和管理中的种种不确定性,使软件业成为高风险的产业。有调查显

示,有l5%一35%的软件项目被中途取消,剩下的项目不是超期就是超出预算,或者无法达到预期的目标。对很多失败的软件开发项目进行事后分析说明:如果在项目刚开始时就关注于识别或解决项目中的高风险因素,那么就会很大程度地减少甚至避免这种失败。[1]软件风险管理是一种软件工程实践,它包括过程、方法和工具。利用这些过程、方法和工具去完成以下工作:持续评估风险、确定风险优先级、实施策略处理风险。[1] 它是软件项目管理的一个子集。项目管理方法的精髓是提供了一种结构化的模式,来指导项目经理进行项目管理,来分析和处理项目管理过程中的问题。风险管理方法,也是这样的一个结构化的模式,指导项目经理展开项目风险管理方面的工作。

风险管理涉及的主要过程包括:风险识别,风险量化,风险应对计划制定和风险监控。如图1所示,中心是风险管理过程的四部曲,外围是在风险管理过程中发生交互的相关信息。表1中显示了风险管理四部曲常用的工具和方法。

图1:风险管理过程中与外界的信息交互

◆风险识别:风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目。风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行。

◆风险量化:涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程。风险量化的基本内容是确定那些事件需要制定应对措施。。

◆风险应对计划制定:针对风险量化的结果,为降低项目风险的负面效应制定风险应对策略和技术手段的过程。风险应对计划依据风险管理计划、风险排序、风险认知等依据,得出风险应对计划、剩余风险、次要风险以及为其它过程提供得依据。

◆风险监控:涉及整个项目管理过程中的风险进行应对。该过程的输出包括应对风险

的纠正措施以及风险管理计划的更新。

表1:风险管理每个步骤使用的工具和方法

软件项目风险管理模型

如所述,项目风险管理主要包含四个步骤,在这个共同的基础上有些模型强调量化的

图2险管理模型。

图2:美国项目管理协会提出的风险管理模型

小结

下面的章节主要从这几个方面展开讨论:第二章我们从历史发展的角度来看风险管理的过程,经典的风险管理模型我们将在第三章介绍,在第四章中,我们将介绍风险管理常用的研究分析方法和工具,最后概述我国的软件项目风险管理的现状,并提出几点建议。

二、软件项目风险管理发展历程[4]

◆19世纪50年代,软件伴随着第一台电子计算机的问世诞生了。早期的软件开发并无系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。而且,除了源代码往往没有软件说明书等文档。这个时期软件开发基本处于起步阶段,关于软件项目风险的

管理研究工作尚未出现。

◆20世纪60年代中期到70年代中期,软件开始作为一种产品被广泛使用。软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜。“软件危机”就从这时出现了。为了克服这一危机,在1968,1969年连续召开的两次着名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善。

◆20世纪80年代,软件已经历了程序设计、程序系统阶段,开始向软件工程阶段发展。这一时期的开发技术和手段更加先进,对管理水平也提出了较高的要求。并出现了软件生存周期(Life Cycle)的概念,它包括计划、需求分析、设计、程序编写、测试和运行维护6个步骤。由于软件危机而引发出的一些对软件负面的结论,因此就存在软件风险问题。1989年由IEEE出版Barry 编写的《Software Risk Management》(软件风险管理)是第一本比较深人地专门探讨风险管理的书籍。随后,越来越多的机构开始研究软件项目风险管理。其中美国卡内基一梅隆大学的软件工程研究SEI (Software Engineering Institution)提出T风险管理模型CRM(Continuous Risk Management),还多次举行研究软件风险管理的年会,一些院校也将风险管理纳人软件项目管理中进行讲授。

◆20世纪90年代至今,以网络计算为特征的信息高速公路得到了很快地发展。软件不仅在规模上快速地发展扩大而且其复杂性也急剧增加,开发的成本和进度变得更加难以预料。软件开发成功与否已不再仅是技术上的问题。软件项目管理的地位突显出来。在此基础上,软件项目风险管理研究开始慢慢丰富起来,理论上对风险进行了一些分类,提出了风险管理的思路;实践上也出现了一些定量管理风险的方法和软件工具。是否具有专门的风险管理已经成为判断一个软件开发组织成熟与否的主要指标之一。ISO提出的SPICE(Software Process Improvement Capability Determination)将风险管理作为评估的一部分。国内学者对软件项目风险的研究也日趋丰富起来,在软件项目管理相关书籍中

相关文档
最新文档