10软件项目风险管理计划

时间:2024.4.7

韩万江 姜立新,《软件项目管理案例教程》,机械工业出版社 ,20##-02

  【丛书名】 国家示范性软件学院系列教材 

10              软件项目风险管埋计划... 2

10.1          软件项目风险管理概述... 2

10.1.1       风险概念... 2

10.1.2       风险类型... 4

10.1.3       风险的基本性质... 5

10.1.4       风险管理概述... 5

10.1.5       风险管理的意义... 5

10.2          风险识别... 6

10.2.1       概念... 7

10.2.2       德尔菲方法... 7

10.2.3       头脑风暴法... 7

10.2.4       情景分析法... 7

10.2.5       风险条目恼查表... 7

10.2.6       真他方法... 13

10.2.7       风险识别的结果... 13

10.3          风险评估... 13

10.3.1       概念... 14

10.3.2       定性风险评估... 14

10.3.3       定量风险评估... 15

10.3.4       风险分析结果表... 17

10.4          风险规划... 18

10.4.1       概忿... 18

10.4.2       回避风险... 18

10.4.3       转移风险... 19

10.4.4       损失控制... 19

10.4.5       自留风险... 19

10.4.6       风险规划结果... 19

10.5          风险控制... 20

10.6          风险管埋的建议... 20

10.7          案例说明... 21

10.8          小结... 21

10.9          习题... 22


10    软件项目风险管埋计划

任何项目都有一定的不确定性,如果没有很好的风险管理,项目就可能遇到麻烦。所以,在软件项目管理过程中,风险计划也是一个重要的计划,只有进行合理的风险管理,制定及时的风险计划,才能防崽于未然,做到主动控制风险,而不是被动地被风险所控制。本章我们进人路线图的第9站:风险计划,如图10—1所示。

图10-1路线图第9站:风险计划

10.1  软件项目风险管理概述

在软件项目的开发过程中,必然要使用一些新技术、新产品,同时由于软件系统本身的结枸和技术复杂性的原因,需要投人大量人力、物力和财力,这就造成开发过程中存在某些“未知量”或“不确定因素”,这必然给项目的开发带来一定程度的风险,也可能会使项目计划失败或不能完全达到预期目标。因此,对项目风险进行科学、准确的判别,为项目决策层和管理人员提供科学的评估方法,是十分必要的。

项目中的风险有很多种,没有风险的项目几乎是不存在的,只是风险的多少、严重程度不同而已。

10.1.1      风险概念

风险是损失发生的不确定性,是对潜在的、未来可能发生损害的一种度量。如果风险确实发生了,则它的发生会对项目产生有害的或者负面的影响。例如,在软件测试期间经常会发现故障,因此一个合理的项目必须做好发现故障时对它们进行修复的计划。同样,项目开发过程中几乎总悬会出现某些变更申请,因此项目管理必须相应地准备好变更计划,以处理这些事件。

另一方面,风险是一种概率事件——它可能发生也可能不发生。因此,我们通常会表现出很乐观,不是看不到风险就是希望它们不会发生。如果风险真出现了,这种态度会使项目陷入困境,这是一个大型项目中很可能发生的事情。因此,风险管理被认为是管理大型软件项目的最佳实践。

风险管理旨在识别出风险,然后采取措施使它们对项目的影响最小。风险管理是软件管理中相对较新的领域,它首次出现于贝姆(Bochm)关子风险管理的指商中。自那以后,软件的风险管理逐渐被人们所认识。

软件风险是指软件开发过程中及软件产品本身可能造成的伤害或损失。一个项目的损失可能有不同的后果形式,例如软件质量的下降、成本费用的超出、项目进度的推迟等。风险关注未来的事情,这意味着,风险涉及选择本身包含的不确定性,软件开发过程及软件产品都要面临各种决策的选择。

风险发生的过程如图10度量2所示,首先有风险因素的存在,风险因素导致风险事件的发生,从而造成损失,而损失又引起了实际与计划之间的差异,从而得到风险的结果。

风险事件是指那些人们不愿意它发生的或者没有规划的事件。这些风险事件可能导致无法实现项目目标。

风险因素是指能够引起风险事件发生或者增加风险事件发生机会或影响损失严重程度的因素,是造成损失的内在或者处在的原因。需求的变化,设计镨误、疏漏和理解镨误,狭隘定义或理解镨误,不充分估计,不胜任的拈犬人呙等等、都旱风除冈葚。

图l0弓2风险发生过程

一般说,项目风险应具有三要素:首先风险是一个事件,其次风险应具有事件发生的概率,最后风险事件可能造成一定的影响。如图10ˉ3所示,风险发生的概率越高,造成的影响越大,就越是高风险,否则就是中等风险或者低风险。

风险是介于确定性和不确定性之间的状态,是处于无知和完整知识之间的状态。当没有办法消除风险甚至连试图降低该风险也存在疑问时,这些风险就是真正的风险了。在我们能够标识出软件项目中的真正风险之前,识别出所有对管理耆和开发者而言均为明显的风险是很重要的。

图10亏3风险图示

10.1.2      风险类型

从范围角度上看,风险主要分为下述三种类型:项目风险、技术风险和商业风险。

1)项目风险

项目风险是指潜在的预算、进度、个人(包括人员和组织)、资源、用户和需求方面的问题,例如时词和资源分配的不合理、项目计划质量的不足、项目管理原理使用不良所导致的风险、资金不足、缺乏必要的项目优先级等。项目的复杂性、规模的不确定性和结构的不确定性也是构成项目风险的因奏。

2)技术风险

技术风险是指潜在的设计、实现、接口、检验和维护方面的问题。规格说明的多义性、技术上的不确定性、技术陈旧也是技术风险因素。复杂的技术、项目执行过程中使用技术或者行业标准发生变化所导致的风险也是技术风险。

3)商业风险

商业风险主要包括:市场风险、策略风险、管理风险和预算风险等。例如:

·如果开发的软件不是市场真正所想要的,就发生了市场风险。

·如果开发的软件不再符合公司的软件产品策略,就发生了策略风险。

·由于重点转移或者人员变动而失去上级管理部门的支持,就发生了管理风险。

·如果没有得到预算或者人员的保证,就发生了预算风险。

从预测角度看,风险可以分为下面三种类型:已知风险、可预测风险、不可预测风险。

1)已知风险

已知风险是通过仔细评佑项目计划、开发项目的商业和技术环境以及其他可靠的信息来源之后可以发现的那些风险(如:不现实的交付时间,没有需求或软件范围的文档,恶劣的开发环境)。

2)可预测风险

可预测风险是指能够从过去项目的经验中推测出来的风险(如:人员调整,与客户之间无法沟通,由于需要进行维护而使开发人员精力分散等)。

3)不可预测风险

不可预测风险是可能、也会真的出现、但很难事先识别出来的风险。

项目管理者只能对已知风险和可预测风险进行规划,不可预测的风险只能靠企业的能力来承担了。

10.1.3      风险的基本性质

风险具有如下的基本性质:

1)客观性

风险客观性首先表现在它的存在是不以人的意志为转移的,因为决定风险的各种因素对风险主体是独立存在的,不管风险主体是否意识到风险的存在,在一定的条件下风险就可能变为现实。其次,风险客观性还表现在风险元时不有,无所不在,它潜在各种活动之中。

2)不确定性

风险发生的不确定性表现为风险的程度有多大以及风险何时何地有可能变为现实,这些都是不肯定的。由于人们对客观世界的认识受到各种条件的限制,不可能准确地预测风险的发生,不确定性要求我们运用各种方法进行测度。

3)不利性

风险一旦产生时,就会使风险主体产生挫折、失败甚至损失,对风险主体不利。因此我们应该在承认风险、认识风险的基础上,做好决策,尽可能避免风险,将风险的不利性降到最低。

4)可变性 度量

风险的可变性表现在一定条件下可以转化,风险事件可以转化为非风险的事件,非风险的事件可以转化为风险事件。

5)相对性

风险的相对性是针对风险的主体而言的,在相同的风险情况下,不同的风险主体对风险的承受能力不同,不同的组织和个人往往对风险有着不同的容忍限度。例如,一个高利润高收益的公司也许愿意为一个10亿美元的合同花费50万美元制作一份计划书,而亠个收支相抵的公司则不会。一个组织也许认为15%的误差几率是高风险的,而其他组织却认为这个几率风险很低。

6)风险和利益的对称性

风险和利益是同时存在的,风险是利益的代价,利益是风险的报酬。没有利益只有风险,没人会做;实现利益必须承担一定的风险。

10.1.4      风险管理概述

风险管理是指在项目进行过程中不断对风险进行识别、评估,制定策略,监控风险的过程。通过风险识别、风险分析和风险评价去认识项目的风险,并以此为基础合理地使用各种风险应对措施、管理方法、技术和手段对项目的风险进行有效的控制,妥善处理风险事件造成的不利后果,以最小的成本保证项目总体目标的实现。风险管理是一系列对未来的预测,伴随着一系列的活动和处理过程以便控制风险,减少其对项目的影响。

风险管理是项目管理的一个重要组成部分,贯穿于项目生存期的始终。

1)从项目进度、质量和成本目标看,项目管理与风险管理的目标是一致的。通过风险管理来降低项目进度、质量、成本方面的风险,实现项目目标。

2)从计划的职能看,项目计划考虑的是未来,而未来存在不确定因蓁,风险管理的职能之一是减少项目整个过程中的不确定性,有利子计划的准确性。

3)从项目实施过程看,不少风险是在项目实施过程中由潜在变成现实的,风险管理就是在风险分析的基础上拟定具体措施来消除、缓和及转移风险,并避兔产生新的风险。

10.1.5      风险管理的意义

目前,风险管理被认为是软件项目中减少失败的一种重要手段。当不能很确定地预测将来事情的时候,可以采用结构化风险管理来发现计划中的缺陷,并且采取行动来减少潜在问题发生的可能性和影响。风险管理意味着危机还没有发生之前就对它进行处理,这就提高了项目成功的机会并减少了不可避免风险所产生的后果。

只有进行很好的风险管理才能有效地控制项目的成本、进度、产品需求,同时可以阻止意外的发生。这样,项目经理可以将精力更多地放到项目的及时提交上,不用像救火队员一样,处于被动状态。同时,风险管理可以防止问题的出现,即使出现问题,也可以降低其危害程度。可以说你不跟踪风险,风险就跟踪你。正如Tom Gilb所说,“女口果你不主动攻击风险,风险就会主动攻击你”。

风险管理可以分为四个层次:

·危机管理:是在风险已经造成麻烦后才着手处理它们。

·风险缓解:事先制定好风险发生后的补救措施,但不制定任何的防范措施。

·着力预防:将风险识别与风险防范作为软件项目的一部分加以规划和执行。

·消灭根源:识别和消灭可能产生风险的根源。

作为一个优秀的风险管理者,应该采取主动的风险管理策略,即着力预防和消灭根源的管理策略,而不应该采取被动的方式,被动风险策略是直到风险变成真正的问题时才会拨出资源来处理它们。更普遍的是,软件项目组对风险不闻不阆,直到发生了错误才赶紧采取行动,试图迅速地纠正镨误,这种管理模式常常被称为“救火模式”。当补救的努力失败后,项目就会处在真正的危机之中。

风险管理的一个聪明的策略是主动策略。主动策略早在技术工作开始之前就已经启动了:标识出潜在的风险,评估它们出现的概率及产生的影响,对风险按重要性进行排序,然后软件项目组建立一个计划来管理风险。主动风险管理策略的目标是预防风险。但是,因为不是所有的风险都能够预防,所以项目组必须建立一个应付意外事件的计划,使其在必要时能够以可控的及有效的方式做出反应。

软件风险管理要求在风险成为影响项目成功的因素之前识别、着手处理卉消除风险的源头,所有的项目都有风险,如果忽视风险,就可能增加项目失败的可能性,或者导致项目不成功。虽然如此,但风险的大小是可以评价度量的,确定可接受风险和不可接受风险,对不可接受风险做进一步分析,制定补偿措施,将风险减至最小或可以接受的水平。软件风险管理过程主要包括风险识别、风险评估、风险规划、风险控制四个步骤。了解和掌握项目风险的来源、性质和发生规律,强化风险意识,进行有效的风险管理,这些对项目的成功具有很重要的意义。

10.2  风险识别

风险识别是试图系统化地确定对项目计划(估算、进度、资源分配)的威胁,识别已知和可预测的风险,只有识别出这些风险,项目管理者才有可能避免这些风险,且在必要时控制这些风险。

每一类风险可以分为两种不同的情况:一般性风险和特定性风险。一般性风险对每一个软件项目而言都是一个潜在的威胁。特定性风险只有那些对当前项目的技术、人员及环境非常了解的人才能识别出来。为了识别特定性风险,必须检查项目计划及软件范围说明,从而了解本项目中有什么特性可能会威胁到项目计划。一般性风险和特定性风险都应该被系统化地标识出来。

风险识别要识别内在风险及外在风险。内在风险是指项目工作组能加以控制和影响的风险,如人事任免和成本估计等。外在风险是指超出项目工作组控制能力和影响力之外的风险,如市场转向或政府行为等。严格来说,风险仅仅指道受创伤和损失的可能性,但对项目而言,风险识别还窑涉机会选择(积极成本)和不利因素威胁(消极结果)。

项目风险识别应凭借对“因”和“果”(将会发生什么和导致什么)的认定来实现,或通过对“果”和“因”(什么样的结果需要予以避免或促使其发生以及怎样发生)的认定来完成。

风险识别不是一次性行为,而应有规律地贯穿整个项目中。

10.2.1      概念

风险识别过程见图10-4,其中,风险识别的输入可能是项目的WBS、SOW、项目相关信息、项目计划假设、历史项目数据,其他项目经验文件、评审报告、公司目标等。风险识别常用方法是建立风险条目检查表”,利用用一组提问来帮助项目风险管理者了解在项目和技术方面有哪些风险。此外,还有德尔菲方法、头脑风暴法、情景分析法、面谈法等。风险识别的输出是风险列表。

图10度量4风险识别过程

10.2.2      德尔菲方法

德尔菲方法又称专家调查法,它起源于20世纪40年代耒期,最初由美国兰德公司首先使用,很快就在世界上盛行起来,目前此法的应用已遍及经济、社会、工程技术等各领域。我们在进行成本估算的时候也用到这种方法。用德尔菲方法进行项目风险识别的过程,是由项目风险小组选定与该项目有关的领域专家,并与这些适当数量的专家建立直接的函询联系,通过函询收集专家意见,然后加以缤合整理,再匿名反馈给各位专家,再次征询意见。这样反复经过四至五轮,逐步使专家的意见趋向一致,作为最后预测和识别的根据。

10.2.3      头脑风暴法

所谓头脑风暴法,就是以专家的创造性思维来获取未来信,a的一种直观预测和识别方法。此法是由美国人奥斯本于1939年首创,它从20世纪50年代起就得到了广泛应用。头脑风暴法一般是在一个专家小组内进行,通过专家会议,激发专家的创造性思维来获取耒来信息。这就要求主持专家会议的人在会议开始时的发言应能激起专家们的思维“灵感”,促使专家们感到急需回答会议提出的问题,通过专家之间的信息交流和相互启发,从而诱发专家们产生“思维共振”,以达到互相补充并产生“组合效应”,获取更多的未来信,a,使预测和识别的结果更准确。

10.2.4      情景分析法

情景分析法是根据项目发展趋势的多样性,通过对系统内外相关问题的系统分析,设计出多种可能的未来前景,然后用类似于撰写电影剧本的手法,对系统发展态势做出白始至终的情景和画面的描述。当一个项目持续的时间较长时,往往要考虑各种技术、经济和社会因素的影响,对这种项目进行风险预测和识别,就可用情景分析法来预测和识别其关键风险因素及其影响程度。情景分析法对以下情况是特别有用的:提醒决策者注意某种措施或政策可能引起的风险或危机性的后果;建议需要进行监视的风险范围;研究某些关键性因素对未来过程的影响;提醒人们注意某种技术的发展会给人们带来哪些风险。情景分析法是一种适用于对可变因奏较多的项目进行风险预测和识别的系统技术,它在假定关键影响因素有可能发生的塞础上,构造多重情景,提出多种未来的可能结果,以便采取适当措施防息于未然。

10.2.5      风险条目检查表

“风险条目检查表”是最常用也是比较简单的风险识别方法,它是利用一组提问来帮助管理者了解项目在各个方面有哪些风险。在“风险条目检查表”中,列出了所有可能的与每一个风险因素有关的提问,使得风险管理者集中来识别常见的、已知的和可预测的风险(如产品规模风险、依赖性风险、需求风险、管理风险及技术风险等)。“风险条目检查表”可以以不同的方式组织,通过判定分析或假设分析,给出这些提问的回答,就可以帮助管理或计划人员估算风险的影响。

风险条目检查表一般根据风险要素进行编写,包括项目的环境、管理层的重视度、技术情况以及内部因素(如团队成员的技能或技能缺陷等)。风险识别中的风险条目是项目经验的积累,风险条目检查表可以以不同的方式组织。一般说,作为项目经理可以将主要的精力放在以下几方面:

·产品规模

·商业影响

·项目需求

·客户特性

·过程定义

·技术情况

·开发环境

·人员数目及其经验

其中每一方面包含很多的风险检查条目,通过对每个条目的回答,可以识别项目可能存在的风险。

1)产品规模风险检查表

项目风险是直接与产品规模戌正比的。下面的风险检查表中的条目标识了与软件规模相关的常见风险:

·是否以LOC或FP估算产品的规模?

·对于估算出的产品规模的信任程度如何?

·是否以程序、文件或事务处理的数目来估算产品规模?

·产品规模与以前产品的规模的平均值的偏差百分比是多少?

·产品创建或使用的数据库大小如何?

·产品的用户数有多少?

·产品的需求改变多少?交付之前有多少?交付之后有多少?

·复用的软件有多少?

2)商业影响风险检查表

下面的风险检查表中的条目标识了与商业影响相关的常见风险:

·本产品对公司的收人有何影响?

·本产品是否得到公司高级管理层的重视9

·交付期限的合理性如何?

·将会使用本产品的用户数及本产品是否与用户的需要相符合?

·本产品必须能与之互操作的其他产品/系统的数目?

·最终用户的水平如何?

·政府对本产品开发的约束是什么?

·延迟交付所造成的成本消耗是多少?

·产品缺陷所造成的成本消耗是多少?

对于上述产品规模和商业影响的风险检查表中的每一个回答都必须与过去∞经验加以比较。如果出现了较大的百分比偏差或者如果数字接近过去很不令人满意的绪果,则风险较高。

3)需求相关风险检查表

很多项目在确定需求时都面临着一些不确定性和混乱。如果在项目早期容忍了这些不确定性,并且在项目进展过程中得不到解决,则这些问题就会对项目的成功造成很大威胁。如果不控制与需求相关的风险因素,那么就很有可能产生锴误的产品或者拙劣地建造正确的产品。每一种情况都会使人不愉怏。

例如,需求中潜在的问题包括:

·对产品缺少清晰的认识。

·对产品需求缺少认同。

·在确定需求时客户参与不够。

·没有优先需求。

·不确定的需要。

·新的市场不断变化需求。

。缺少有效的需求变化管理过程。

·对需求的变化缺少相关分析。

如果对于这些问题中的任何一个问题的答案是肯定的,则需要进一步的研究,以评估潜在的风险。

4)客户相关风险检查表

不同的客户有不同的需要。有些人只知道他们需要什么,而有些人知道他们不需要什么。一些客户希望迹行详细的讨论,而另外的客户则满足子模糊的承诺。

不同的客户有不同的个性。亠些人喜欢享受客户的身份,而另一些人则根本不喜欢作为客户。一些人会高兴地接受几乎任何交付的产品饣并能充分利用一个不妤的产品;而另一些人则会对质量差的产品猛烈抨击。一些人会对质量好的产品表示赞赏,而另一些人则不管怎样都抱怨不休。

客户和供应商之间也有各种不同的通信方式。一些人非常熟悉产品及生产厂商!而另一些人则可能綦未谋面,仅仅通过信件来往和电话与生产厂商沟通。

一个“不好的”客户可能会对一个软件项目组能否在预算内完成项目产生很大的影响。对于项目管理者而言,“不好的”客户是对项目计划的巨大威胁和实际的风险。下面的风险裣查表中的条目标识了与客户特征相关的常见风险:

·你以前是否曾与这个客户合作过?

·该客户是否很清楚薷要什么;他能否花时间把需求写出来?

·该客户是否同意花时间召开正式的需求收集会议,以确定项目范围?

·该客户是否愿意建立与开发者之间的快速通信渠道?

·该客户是否愿意参加复审工作?

·该客户是否具有该产品领域的技术奏养?

·该客户是否愿意让你的人来做他们的工作?

·该客户是否了解软件过程?

如果对于这些问题中的任何一个问题的答案是否定的,则需要进一步的调研,以评估潜在的风险。

5)过程风险检查表

如果软件过程定义得不清楚,如果分析、设计、测试以无序的方式进行,如果质量是每个人都认为很重要的概念但没有人切实采取行动来保证它,那么这个项目就处在风险之中。

过程问题包括:

·高级管理层是否有一份已经写好的政策陈述,该陈述中强调了软件开发标准过程的重要性?

·开发组织是否已经拟定了一份已经成文的、用于本项目开发的软件过程的说明?

·开发人员是否同意按照文档所写的软件过程进行开发工作,并自愿使用它?

·该软件过程是否可以用子其他项目?

·管理者和开发人员是否接受过一系列的软件工程培训?

·是否为每一个软件开发者和管理者提供了印妤的软件工程标准?

·是否为作为软件过程一部分而定义的所有交付物建立了文档概要及示例?

·是否定期对需求规约、设计和编码进行正式的技术复审?

·是否定期对测试过程和测试情况进行复审,

·是否对每一次正式技术复审的结果建立了文裆,其中包括发现的错误及使用的资源?

·有什么机制来保证按照软件工程标准来指导工作?

·是否使用配置管理来维护系统/软件需求、设计、编码、测试用例之间的一致性?

·是否使用一个机制来控制用户需求的变化及其对软件的影响?

·对子每一个承包出去的子合同,是否有一份文档化的工作说明、一份软件需求规约和一

份软件开发计划?

·是否有一个可遵循的规程,来跟螓及复审子合同承包商的工作?

技术问题包括:

·是否使用方便易用的规格说明技术来辅助客户与开发者之间的通信?

b是否使用特定的方法进行软件分析?

·是否使用特定的方法进行数据和体系结构的设计?

·是否90%以上的代码都是使用高级语言编写的?

·是否定义及使用特定的规则进行代码编写?

·是否使用特定的方法进行测试用例的设计?

·是否使用配置管理软件工具控制和跟踪软件过程中的变化活动?

·是否使用工具来创造软件原型?

·是否使用软件工具来支持测试过程?

·是否使用软件工具来支持文档的生成和管理?

·是否收集所有软件项目的质量度量值?

·是否收集所有软件项目的生产率度量值?

如果对于上述问题的答案多数是否定的,则软件过程是薄弱的且风险很高。

6)技术风险检查表

采用新技术是具有挑战性和令人兴奋的,但这也是有风险的。下面的风险检查表中的条目标识了与建造的技术相关的常见风险:

·该技术对于你的公司而言是新的吗?

·客户的需求是否需要创建新的算法?

·待开发的软件是否需要使用新的或未经证实的硬件接口?

·待开发的软件是否需要与开发商提供的未经证实的软件产品接口?

·待开发的软件是否需要与功能和性能均未在本领域得到证实的数据库系统接口?

·产品的需求是否要求采用特定的用户界面?

·产品的需求中是否要求开发某些程序构件,这些构件与你的公司以前开发的构件完全不同?

·需求中是否要求采用新的分析、设计、测试方法?        ⒒

·需求中是否要求使用非传统的软件开发方法?

·需求中是否有过分的对产品的性能约束?

·客户能确定所要求的功能是可行的吗?

如果对于这些问题中的任何一个问题的答案是肯定的,则需要进一步的调研,以评估潜在的风险。

7)开发环境风险检查表

软件工程环境支持项目组、过程及产品,但是,如果环境有缺陷,它就有可能成为重要的风险源。下面的风险检查表中的条目标识了与开发环境相关的风险:

·是否有可用的软件项目管理工具?

·是否有可用的软件过程管理工具?

·是否有可用的分析及设计工具?

·分析和设计工具是否适用于待建造产品?

·是否有可用的编译器或代码生成器?

·是否有可用的测试工具?

·是否有可用的软件配置管理工具?

·环境是否利用了数据库或数据仓库?

·项目组的成员是否接受过每个所使用工具的培训阳

·是否有专家能够回答有关工具的问题?

·工具的联机帮助及文档是否适当?

如果对于上述问题的答案多数是否定的,则软件开发环境是薄弱的且风险很高。

8)人员数目及经验风险检查表

下面的风险检查表中的条目标识了与人员数目及经验相关的常见风险:

·是否有最优秀的人员可用?

·人员在技术上是否配套?

·是否有足够的人员可用?

·开发人员是否能够自始至终地参加整个项目的工作?

·项目中是否有一些人员只能部分时间工作?

·开发人员对自己的工作是否有正确的期望?

·开发人员是否接受过必要的培训?

·开发人员的流动是否仍能保证工作的连续性?

如果对于这些问题中的任何一个问题的答案是否定的,则需要进一步的调研,以评估潜在的风险。

当然,检查表的类别和条目可以根据企业或者项目的具体情况来选择或者开发。例如,美国的软件工程研究所(简称SEI)的一份研究报告对于软件风险提出用Class、Elcment、Attributc三个层次描述风险列表(见图10—5)。对于Class(类)层分三组,即ProductEnginccring、Dcvclopment Environmcnt和Program Constraints。每个Class组下包含若干Elemcnt(元素),每个Elemcnt组下又包含若干Attributc(属性)。它们共同构成了风险检查表条目,通过Attributc属性值来识别和评估风险。具体条目要素见表10ˉ1。

图10度量5风险三层分析结构

表亻0丬 三层风险检查表

10.2.6      真他方法

进行风险识别的时候,项目经理不一定能预测到所有的风险情况,而且有时当局者迷,与不同的项目相关人员进行有关风险的面谈,将有助于识别那些在常规计划中未被识别的风险。在进行可行性研究时获得的项目前期面谈记录,往往是风险识别的很好褰材。

10.2.7      风险识别的结果

风险识别的结果可以是一个风险清单表,如表10度量2所示,表的第一列列出识别出来的风险,笫二列是对风险进行的分类。

表10- 度量2风险识别列表

10.3风险评估

风险评估,又称风险预测,就是对识别出的风险做进一步分析,对风险发生的概率进行估计和评价,对风险后果的严重程度进行估计和评价,对风险影响范围进行估计和评价,以及对于风险发生时间进行估计和评价。

10.3.1      概念

在实践中,通常把风险评估的结果用风险发生的概率以及风险发生后对项目目标的影响来表示,风险R是该风险发生的概率P和影响程度I的函数:即R=f(P,I)。然后建立风险表,按风险的严重性排序,确定最需要关注的前几个(TOP 10,一般说前10个,具体多少个可以视项目的具体情况而定)风险。

风险评估的方法包括定性风险评估和定量风险评估。

10.3.2      定性风险评估

定性风险评估主要是针对风险概率及后果进行定性的评估,例如采用历史资料法、概率分布法、风险后果估计法等。历史资料法主要是应用历史数据进行评估的方法,通过同类历史项目的风险发生情况,进行本项目的估算。概率分布法主要是按照理论或者主观调整后的概率进行评估的一种方法,例如正态分布是一种常用的概率分布。每个风险的概率值可以由项目组成员个别估算,然后将这些值平均,得到一个有代表性的概率值。另外,可以对风险事件后果进行定性的评估,按其特点划分为相对的等级,形成一种风险评价矩阵,并赋一定的加权值来定性地衡量风险大小。例如,根据风险事件发生的概率度,将风险事件发生的可能性定性地分为若干等级。风险概率值是介于没有可能(>0)和确定(<l)之间的。风险概率度量也可以采用高、中、低或者极高、高、中、低、极低,以及不可能、不一定、可能和极可能等不同方式表达。风险后果是风险影响项目目标的严重程度,可以从无影响到无穷大影响饣风险后果的影响度量可以采用高、中、低或者极高、高、中、低、极低,以及灾难、严重、轻度、轻微等方式表达。

如表10亏3所示,将风险发生的概率分为5个等级。同时可以将风险的影响程度分为若干等级,如表10度量4所示,将风险后果的影响程度分为4个等级。

       

将上述风险后果的影响和发生概率等级编制成矩阵并分别给以定性的加杈指数,可形成风险评价指数矩阵,表10度量5为一种定性风险评估指数矩阵的实例。

表`⒍5风险评估指数矩阵实例

矩阵中的加杈指数称为风险评估指数,指数1到20是根据风险事件可能性和严重性水平综合而确定的。通常,将最高风险指数定为1,对应于风险事件是频繁发生的并是有灾难性的后果;最低风险指数定为20,对应于风险事件几乎孔可能发生并且后果是轻微的。数字等级的划分具有随意性,但要便于区别各种风险的档次,划分得过细或过粗都不便子风险的决策,因此需要根据具体对象制定。

项目管理者可以根据项目的具体情况确定风险接受准则,这个准则没有统一的标准,例如可以对风险矩阵中的指数给出四种不同类别的决策结果:指数1~5,是不可接受的风险;指数6~9,是不希望有的风险,需由项目管理者们决策;指数10~17,是有控制的接受的风险,需要项目管理者们评审后方可接受;指数18~20,是不经评审即可接受的风险。

由于这种风险评估指数通常是主观制定的,而且定性的指标有时没有实际意义,因此这是定性评估的一大缺点,因为无论是对风险后果的严重性或是风险发生的概率做出严格的定性量度都是很困难的。

表:0ˉ6 简易的定性风险评估表

当然,定性风险评估可以采用更为简单的方法。表10—6给出一种简易的定性评估的表格。其中,将风险发生的概率分为高、中、低三个等级,将风险后果的影响也分为高、中、低三个等级,通过表10度量6矩阵定性地确定风险的评估结果。

风险后果影响和发生概率从风险管理的角度来看各自起着不同的作用。一个具有高影响但低概率的风险因素不应当占用太多的风险管理时间,而具有中到高概率、高影响的风险和具有高概率及低影响的风险就应该进行风险分析。

10.3.3      定量风险评估

通过定性风险评估,人们能对项目风险有一个大致了解,可以了解项目的薄弱环节。但是,有时需要了解风险发生的可能性到底有多大,后果到底有多严重等b回答这些问题,就需要对风险进行定量的评价分析。定量风险评估是一种广泛使用的管理决策支持技术。一般,在定性风险分析之后就可以进行定量风险分析。定量风险分析过程的目标是量化分析每一个风险的概率及其对项目目标造成的后果,也分析项目总体风险的程度。定量风险评估可以包括访谈、盈亏平衡分析、决策树分析、模拟法等方法。

⒈访谈  τ

访谈技术用于量化对项目目标造成影响的风险概率和后果。采用访谈方式,可以邀请以前搞过与本项目相类似项,目的专家,这些专家运用他们的经验做出风险度量,其结果将会相当准确和可靠,甚至有时比通过数学计算与模拟仿真的结果还要准确和可靠。如果风险损失后果的大小不容易直接估计出来,可以将损失分解为更小的部分,再对其进行评估,然后将各部分评估结果累加,形成一个合计评估值。例如,如果使用3种新编程工具,可以单独评估每种工具未达到预期效果的损失,然后再把损矢加到一起,这要比总体评估容易多了。

2。盈亏平衡分析

盈亏平衡分析就是要确定项目的盈亏平衡点。在平衡点上收人等于成本,此点是用来标志项目不亏不盈的开发量,用来确定项目的最低生产量。盈亏平衡点越低,项目盈利的机会就越大饣亏损的风险就越小。因此,盈亏平衡点表达了项目生产能力的最低容许利用程度。一种对风险评估的常用技术是定义风险的参照水准,对绝大多数软件项目来讲,风险因素——成本、性能、支持和进度就是典型的风险参照系,也就是说,对成本超支、性能下降、支持困难、进度延迟都有一个导致项目终止的水平值。如果风险的组合所产生的问题超出了一个或多个参照水平值,就应该终止该项目的工作。在项目分析中,风险水平参考值是由一系列的点构成的,每一个单独的点常称为参照点或临界点。如果某风险藩在临界点上,可以利用性能分析、成本分析、质量分析等来判断该项目是否继续工作。图10ˉ6表示了这种情况。

图10ˉ6项目临界点

3.)*策树分析

决策树分析是一种形象化的图表分析方法,它提供项目所有可供选择的行动方案以及行动方案之间的关系、行动方案的后果以及发生的概率,为项目经理提供选择最佳方案的依据。决策树分析采用损益期望值(Expected Monctary Valuc,EMV)作为决策树的一种计算值,它是根据风险发生的概率计算出一种期望的损益。

决策树是以一种便子决策者理解的、能说明不同决策之间和相关偶发事件之间相互作用的图表来表达的。决策树的分支或代表决策或代表偶发事件,如图10度量7是一个典型的决策树图,是对实施某计划的风险分析。它用逐级逼近的计算方法;从出发点开始不断产生分支以表示所分析问题的各种发展可能性,并以各分支的损益期望值中最大者(如求极小,则为最小者)作为选择的依据。从这个风险分析来看,实施计划后有70%概率的成功,30%概率的失败。而成功后有30%概率是项目有高性能的回报out∞me=550000,同时有70%概率是亏本的回报out∞mc〓度量100000,这样项目成功的EMv〓(550000Ⅹ30%度量100000Ⅹ70%)×70%〓66500,项目(30%概率)失败的EMv〓度量60000,则实施后的EMv〓66500度量60000=6500,而不实施此顼计划的EMv〓0。通过比较,可以决策,应该实施这个计划。

图10。7决策树

←,摸拟法

模拟法是运用概率论及数理统计方法来预测和研究各种不确定因素对软件项目投资价值指标影响的一种定量分析。通过概率分析,可以对项目的风险情况做出比较准确的判断。例如蒙特卡罗技术(Monte Carlo)。

大多模拟项目日程表是建立在某种形式的“蒙特卡罗”分析基础上的。这种技术往往由全局管理所采用,对项目“预演”多次以得出如图10ˉ8所示计算结果的数据统计。图中的曲线显示了完成项目的累计可能牲与某一时间点的关系。比如说,虚线的交叉点显示:在项目启动后150天之内完成项目的可能性为50%。项目完成期越靠左,则风险越高;反之,风险越低。

蒙特卡罗分析也可能用来估算项目成本可能的变化范围。

图1⒍8模拟分析

10.3.4      风险分析结果表

通过量化风险分析,可以得到量化的、明确的、需要关注的风险管理清单,见表10度量7,它是重要的风险管理工具,清单上列出了风险名称、类别、概率、该风险所产生的影响以及风险的排序。其中,整体影响值可对四个风险因素(性能、支持、成本及进度)的影响类别求平均值(有时也采用加权平均值)。应该从风险清单中选择排序靠前的几个风险(简称TOP10)作为风险评估的最终结果。

表亻⒍了风险分析结果

在风险管理过胫中,也可以通过量化风险条目检查表中的条目来评估风险。图10—9是根据多个项目的实际数据得出对这个三层结构检查表的量化风险分析结果:其中ProductEnginOering占30%的风险,Dcvclopmcnt Environment占33%的风险,Program Constraints占37%的风险。而Product Enginccring中的各个Element占有的风险比例分别是:Rcquircmcnts为党%,Design为27%,Intcgration andTest为14%,Enginccring Spccialtics为67o,Code and Uni"cst为2%;可见需求(Rcquircments)和设计(Dcsign)是风险的主要来源。而需求(Requirements)的各个Attribute(属性)的风险来源比例分别为:Complctcncss为367o,Stability为21%,Fcasibility为14%,validity为10%,Prcccdcnt为8%,Scalc为7%,Clarity为4%;可见需求的复杂性(Complct°ncss)开口稳定性(Stability)是需求风险的主要来源。

图10ˉ9风险识别结果

10.4风险规划

项目管理永远不能消除所有的风险,但是通过一定的风险规划并采取必要的风险控制策略常常可以消除特定的风险事件。风险规划的输出是项目风险管理的计划。

10.4.1      概忿

风险规划是针对风险分析的结果,为提高实现项目目标的机会并降低风险的负面影响而制定风险应对策略和应对措施的过程,即通过制定一系列的行动和策略来对付、减少以至于消灭风险事件。风险规划是规划和设计如何进行风险管理活动的过程,包括界定项目组织及成员风险管理的行动方案,选择合适的风险管理方法,确定风险判断的依据。

规划降低风险的主要策略是回避风险、转移风险、损失控制以及自留风险。

10.4.2      回避风险

风险事件常常可以通过及时改变计划来制止或避免。回避风险是对可能发生的风险尽可能地规避,可以采取主动放弃或拒绝使用导致风险的方案来规避风险,这样可以直接消除风险损失。回避风险具有简单、易行、全面、彻底的优点,能将风险的发生概率保持为零,因为已经将风险的起因消除了,从而保证了项目的安全运行。回避风险也称替代战略。排除特定风险往往依靠排除风险起源。项目管理组不可能排除所有风险,但特定的风险事件往往是可以排除的。在采取回避风险策略时,应注意以下几点:

丨 1)对风险有足够认识,而且风险发生概率极高、风险后果影响很严重时可以采用这个策略。

2)当其他的风险策略不理想的时候,才可以考虑这个策略。

3)不是所有的风险都可以采取回避策略,如地震或者洪涝灾害等风险是无法回避的。

4)由子回避风险只是在特定范围内及特定的角度上才有效,因此,避免了某种风险,有可能产生另一种新的风险。例如,避免采用新的技术,可能导致开发出来的产品技术落后。

10.4.3      转移风险

转移风险是指一些单位或个人为避免承担风险损失,而有意识地将损失或与损失有关的财务后果转嫁给另外的单位或个人去承担。例如,将有风险的一个软件项目分包给其他的分包商,或者通过免责合同等开脱手段说明不对后果负责。

转移风险有时也称通过采购转移风险,即从本项目组织外采购产品和服务,它常常是针对某些种类风险的有效对策。比如,与使用特殊科技相关的风险就可以通过与有此种技术经验的组织签定合同减缓风险。采购行为往往将一种风险置换为另一种风险。比如,如果销售商不能够顺利销售,那么用制定囝定价格的合同来减缓成本风险会造成项目时间进程受延误的风险;而相同情形下,将技术风险转嫁给销售商又会造成难以接受的成本风险。

投保也是一种转移风险的策略,保险或类似保险的操作(如证券投资〉常常对一些风险类别是行之有效的。在不同的应用领域,险种的类别和险种的成本也相应不同。

10.4.4      损失控制

损失控制是指风险发生前消除风险可能发生的根源并减少风险事件的概率,在风险事件发生后减少损失的程度。因此,损失控制的基本点是消除风险因募和减少风险损失。

损失控制根据目的不同,分为损失预防和损失抑制。

1)损失预防

损失预防是指损失发生前为了消除或减少可能引起风险的各种因素而采取的各种具体措施。制定预防性计划,也就是设法消除或减少各种风险因奏,以降低风险发生的概率。预防性计划包括针对一个确认的风险事件的预防方法以及风险发生后的应对步骤。

2)损失抑制

损失抑制(也称风险减缓)是捂风险发生时或风险发生后为了缩小损失幅度所采用的各项措施。例如,对程序进行备份;或者将运行系统安置在不同的地方;如果一个系统有问题,可以启动另外一个系统。

10.4.5      自留风险

自留风险又称承担风险,它是一种由项目组织自己承担风险事件所致损失的措施。这种承担可以是积极的(如制定预防性计划来防备风险事件的发生),一般是经过合理判断和谨慎研究后诀定承担风险;这种承担也可以是消极的,郎不知道风险因素的存在而承担下来(如某些工程运菅超支则接受低于预期的利润,或者由于疏忽而承担的风险〉。

10.4.6      风险规划结果

风险规划的结果是一个项目风险计划或者说风险管理方案。在整个项目进程中都应将管理风险的程序记录在风险管理方案里。除了记录风险识别和风险量化程序的结果外,还应记录包括:谁对处理某些风险负责,怎样保留初步风险识别和风险量化的输出项,预防性计划怎样实施,以及储备如何分配等。(储备是为了减缓成本风险和日程风险而在项目方案中提出的预先准备,这个词往往在前边要使用一个修饰语,如管理储备、预防性储备、日程储备,以提供细节便于阍明需要缓解的是哪类风险。)

一个风险管理方案可以是正式的或非正式的,可以是细致人微的或框架性的,递主要依据项目而定。它是整个项目方案的一个辅助方案。

衰亻0ˉ3风险分析衰

风险规划的结果应该提供一个风险分析表,包括:项目风险的来源、类型,项目风险发生的可能时间、范围,项目风险事件带来的损失,以及项目风险可能影响的范围等。见表10度量8的例子,它是一个项目的风险分析的结果,通过输人风险识别项,然后对风险进行分析,得出风险值,然后按照风险值的大小诮卜序,给出需要关注的TOP10风险表。

10.5风险控制

风险拴制就是通过对风险的规划,和对项目全过程的控制,保证风险管理能达到预期的目标,是项目实施过程的亠个重要工作。其目的是核对风险管理的策略和实施的实际效果是否与预见相同,同时获取反馈信”歆,改善风险计划。

项目风险控制是在项目实施过程中执行的活动,具体控制风险的方法将在第14章的项目跟踪控制中做详细的讲解。

10.6风险管埋的建议

风险管理描述的是整个项目生存期中风险识别、风险评估、风险规划和风险控制是如何架构和执行的。风险管理的四个步骤是循环进行的,如图m ̄1o所示,在项目的进行过程中,需要不断地进行风险识别、风险评估、风险规划和风险控制。

图1⒍10风险管理过程框架

项目经理在制定项目计划的时候,应该制定一个需要关注的风险管理计划,至子采用什么形式的风险管理计划,没有标准的文档,但是T○P10风险清单是很重要的工具。当然,主要看项目的具体要求。其实,在软件项目管理中,TOP10风险清单是很常见的一种表达风险计划的形式,以后在控制项目风险的时候,这个清单也起到很好的作用。

最后对项目经理进行风险管理,给出几项建议:

·软件项目计划应包括风险管理计划。

·必要时,可以任命风险管理负责人。

·使用TOP10风险清单作为主要的风险管理工具。

·建立匿名风险汇报渠道。

·及时与项目的成员和客户沟通项目的情况。

·将实施的结果保留下来作为数据度量的资料。

在软件项目管理过程中,应该任命一名风险管理者,该管理者的主要职责是在制定和评估规划时从风险管理的角度对项目计划进行审核并发表意见,不断寻找可能出现的任何意外情况,试着指出各个风险的管理策略及常用的管理方法,以随时处理出现的风险。风险管理者可以由项目经理以外的人担任。

10.7案例说明

《校务通管理系统》风险管理计划的说明:本项目的主要风险是开发人员对客户需求中的学校管理环境不是很熟悉,另外,客户要求的进庋比较紧,而且具体需求不是很明确。下面的送个风险列表就是通过一系列的风险识别、风险评估、风险规荆和风险控制,最后得出项目TOP10风险列表。

表亻0ˉ9 风险分析表               ˉ

10.8小结

风险是伴随着软件项目过程而产生的,在软件项目中必须进行风险管理,如果忽略了风险,风险就会导致项目的失败。风险管理基本包括四个步骤:风险识别、风险评估、风险规划、风险控制,这个四个步骤是不断循环进行的。“风险条目检查表”是风险识别和风险评估中常用的一种方法。风险计划也是软件项目计划的一个非常重要的部分,它是项目经理在软件项目进行过程中需要不断监视的依据。对任何一个软件项目,可以有最佳的期望值,但更应该有最坏的准备,“最坏的准备”在项目管理中就是进行项目的风险分析。

10.9习题

10.1根据检查表制作一个风险分析工具,根据裣查表的条目的输入,确定风险分析的结果,

给出需要关注的TOP10风险表。

10、2针对第9章习题中的项目,编制此项目的风险分析计划(给出ΥOP10风险表即可)。

更多相关推荐:
关于网店的项目风险管理计划

关于网店的项目风险管理计划现在在网上开店是很新潮又有利可赚的项目它具备了实体店面所无法达到的效果又可以省去门面店租聘请员工很大的实体仓库等等一些开支与麻烦。而开网店又存在有风险。一、主要风险。1、货源。…

项目风险管理计划

项目风险管理计划1版本历史2目录0文档介绍401文档目的402文档范围403读者对象404参考文献405术语与缩写解释41项目风险管理计划41112131415目的4角色与职责5启动准则5输入5主要步骤5151...

《项目风险管理计划》模板

XX项目风险报告ltyyyymmddgt技术文件XX项目风险报告ltyyyymmddgt模板使用说明1本报告适用于对组织外报告项目风险本报告经项目负责人审批需要时应经副区总审批后可以提供给顾客客户或合约方2模板...

工程项目风险管理

第十一章项目风险管理111风险管理概述工程项目是一种一次性独特性和不确定性较高的工作存在着很大的风险性所以必须开展项目风险管理工程项目的实现是一个存在着很大不确定性的过程因为这一过程是一个复杂的一次性的创新的并...

《项目风险管理》试题及答案

厦门大学网络教育20xx20xx学年第一学期项目风险管理课程复习题一单项选择题1风险管理允许项目经理和项目团队EA在项目的计划过程中消除大部分风险B辨别项目风险C辨别不同风险的影响D计划合适的反应E只有BC和D...

建筑工程施工项目风险管理措施

施工项目风险管理措施一风险管理目的1试图系统化地瓦解不确定因素对项目计划质量预算进度资源分配等的威胁2通过风险的管理变被动的面对风险即消防状态为主动面对风险即钓鱼状态3知道什么是紧急事件让我们能够依据FIRST...

施工风险管理计划

施工风险管理计划1场地接交风险11这类风险的主要表现是业主方提供的坐标点标高无签字手续或可能有误水电源未接到规定距离内地质资料与施工现场不符临时道路不通场地标高与招标文件不符合基础实验检测资料不充分等12防范这...

项目风险管理表

项目风险管理表

大型工程项目风险管理研究进展

论文大型工程项目风险管理研究进展转贴来源台州广播电视大学网站大型工程项目风险管理研究进展杨建平杜端甫李鼎北京航空航天大学管理学院100083摘要从风险管理的全过程对大型项目风险管理的研究现状进行了综述阐述了有关...

厦门大学网络教育20xx-20xx学年第二学期 《项目风险管理》课程复习题

厦门大学网络教育20xx20xx学年第二学期项目风险管理课程复习题一单项选择题1风险管理允许项目经理和项目团队EA在项目的计划过程中消除大部分风险B辨别项目风险C辨别不同风险的影响D计划合适的反应E只有BC和D...

天津自考,.项目风险管理 复习题

项目风险管理课程复习题一单项选择题1风险管理允许项目经理和项目团队EA在项目的计划过程中消除大部分风险B辨别项目风险C辨别不同风险的影响D计划合适的反应E只有BC和D2最高级别的项目风险和不确定性与以下A项目阶...

项目风险管理案例期末

案例1某联合体承建非洲公路项目的失败案例我国某工程联合体某央企某省公司在承建非洲某公路项目时由于风险管理不当造成工程严重拖期亏损严重同时也影响了中国承包商的声誉该项目业主是该非洲国政府工程和能源部出资方为非洲开...

项目风险管理计划(33篇)