1、第8章 软件项目风险管理 第8章 软件项目风险管理 8.1 软件项目风险管理概述软件项目风险管理概述 8.2 风险管理规划风险管理规划 8.3 风险识别风险识别 8.4 风险评估风险评估 8.5 风险监控风险监控8.6 小结小结第8章 软件项目风险管理 8.1 软件项目风险管理概述软件项目风险管理概述8.1.1 风险概述风险概述1.风险的定义风险的定义“风险”一词对于大多数人来说并不陌生,究其概念却有多种不同的定义。美国学者A.H.Willett认为:“风险是关于不愿发生的事件发生不确定性的客观体现。”美国词典编辑家Webster认为:“风险是遭受损失的一种可能性。”美国人John Charl
2、es Chicken和Tamar Posner认为:“风险应是损害(Hazard)和对损害暴露度(Exposure)两种因素的综合。”第8章 软件项目风险管理 微软解决方案框架中定义风险为:“任何可能对项目结果产生积极或消极影响的事件或条件,以及项目决策和预期结果的不确定性都会造成风险。”中国的杜端甫教授认为:“风险是指损失发生的不确定性,是人们因对未来行为的决策及客观条件的不确定性而可能引起的后果与预定目标发生多种负偏离的综合。”PMBOK定义风险为:“不确定的事件或情况一旦出现,将会对项目的目标产生积极或消极的影响。”综上所述,风险可定义为“损失的可能性”。它包括三个要素,即事件、事件发生
3、的概率、事件的影响。第8章 软件项目风险管理 因此,可以从以下几个方面理解风险的含义:风险意味着可能出现损失,可能实现不了预期目标。风险意味着可能出现损失,可能实现不了预期目标。损失出现与否是一种不确定的随机现象,可以用概率表示损失出现的可能性,但不能对出现与否做出确定性判断。风险是与人们的决策有关的。风险是与人们的决策有关的。人们的决策往往决定着人们有目的的活动、未来的活动以及人们变化的行为,这种行为既包括个人行为,也包括群体或组织行为。风险与人们的行为密切相关,不与行为联系的风险只是一种危险。风险是可以预测和评估的。风险是可以预测和评估的。客观条件的变化是风险的重要成因。尽管人们无力控制引
4、起风险的客观状态,却可以认识并掌握这些客观状态变化的规律性,对相关的客观状态做出科学的预测和评估,从而为风险管理提供科学依据。第8章 软件项目风险管理 风险是可以控制和管理的。风险是可以控制和管理的。虽然风险客观存在,人们也难以消灭风险,但并不意味着风险无法避免,只要运用科学的方法,深刻认识到风险后果及风险根源并预先采取有效措施,至少可以将风险控制到人们可接受的程度。2.风险的属性风险的属性风险具有两大属性:可能性和损失。可能性(Likelihood)是指风险发生的概率(Probability),损失(Loss)是指预期与后果(Consequence)之间的差异,那么把概率和后果(影响)的乘积
5、称为风险损失当量用来反映风险的负面影响程度。(8-1)式中:LR表示风险损失当量;PR表示风险发生的概率;CR表示风险发生带来的后果(影响)。RRRCPL第8章 软件项目风险管理 由此可见,评判风险不能单纯考虑是否发生或造成的影响,而是要把两者结合起来。有的风险发生的概率很大,但造成的影响却很小,例如:出门忘带伞,却遭遇了大雨,被淋成落汤鸡;有的风险发生的概率不大,但其影响极其严重,像强地震一类的自然灾害,一个地区可能几十年甚至上百年不发生,可是一旦发生后果不堪设想。3.风险的特征风险的特征风险具有客观性、突发性、多变性、相对性、无形性、多样性等特征。第8章 软件项目风险管理 1)客观性风险的
6、存在取决于决定风险各种因素的存在。也就是说:不管人们是否意识到风险,只要决定风险的各种因素出现了,风险就会出现,它是不以人们的主观意志为转移的。因此要减少和避免风险,就必须及时发现可能导致风险的因素,并进行有效管理。从另一方面看,在项目活动过程中产生风险的因素又是多种多样的,要完全消除风险也是不可能的,很多因素本身就是不确定的,例如:技术、环境、人员等。因此风险总是客观存在于项目活动的各个方面。风险的客观性要求人们应充分认识风险、重视风险,采取相应的管理措施,以尽可能降低或化解风险。第8章 软件项目风险管理 2)突发性风险的产生往往给人以一种突发的感觉。当人们面临突然产生的风险时往往不知所措,
7、其结果是加剧了风险的破坏性。风险的这一特点要求:加强对风险的预警和防范研究,建立风险预警系统和防范机制,完善风险管理系统。3)多变性风险的多变性是指风险会受到各种因素的影响,在风险性质、破坏程度等方面呈现动态变化的特征。例如企业在生产经营管理中面临的市场就是一种处在不断变化过程之中的风险。当市场容量、消费者偏好、竞争结构、技术资金等环境要素发生变化时,风险的性质和程度也将随之改变,因而要求实施动态、柔性的风险管理。第8章 软件项目风险管理 4)相对性一方面,人们对于风险都有一定的承受能力,这种能力往往因活动、人和时间而异。一般而言人们的风险承受能力受到收益的大小、投入的大小、拥有财富状况等因素
8、的影响,例如收益的大小,收益总是与损失的可能性相伴随,损失的可能性和数额越大,人们希望为弥补损失而得到的收益也就越大;反之,收益越大,人们愿意承担的风险也越大。另一方面,风险和任何事物一样也是矛盾的统一体,一定的条件会引起风险的变化。风险性质、风险后果等都存在可变性,例如随着科学技术的发展,某些风险可以较为准确地预测和估计(例如,天气预报等)。第8章 软件项目风险管理 5)无形性风险不像一般的物质实体,能够非常确切地描绘和刻画出来。因此,在分析风险中应用系统理论、概率、弹性、模糊等概念和方法进行界定或估计、测定,从定性和定量两个方面进行综合分析。虽然风险的无形性增加了人们认识和把握风险的难度,
9、但只要掌握了风险管理的科学理论、系统分析产生风险的内外因素、并恰当地运用技术方法和工具手段,就可以有效地管理风险。第8章 软件项目风险管理 6)多样性因为项目和项目环境的复杂化和规模化,在一个项目中存在着许多不同种类的风险,例如技术风险、经济风险、社会风险、组织风险等。而且这些风险之间存在着交错复杂的内在联系,它们相互影响,因此必须对项目风险进行系统识别和综合考虑。第8章 软件项目风险管理 8.1.2 软件项目风险来源及分类软件项目风险来源及分类1.软件项目的风险来源软件项目的风险来源斯坦迪什集团(Standish Group)对“混沌”(Chaos)进行了一项后续研究,该项研究被称作“未完成
10、的航行”(Unfinished Voyages)。在该项研究中60位信息技术专业人员被召集在一起,详细讨论如何评价某一软件项目是否成功。他们认为,软件项目是否成功有诸如“用户参与”、“高层管理者的支持”等十项共同的判断标准。这些软件项目成功的判断标准也是它们共同的风险来源,如表8-1所示。第8章 软件项目风险管理 表表8-1 软件项目的风险来源软件项目的风险来源第8章 软件项目风险管理 在这10项影响软件项目成功的关键因素中权重最高的是“用户参与”,其次是“高层管理者的支持”。如果在软件项目建设过程中没有给予这些关键因素足够的重视和管理,则项目将面临很高的失败风险。2.软件项目风险的分类软件项
11、目风险的分类概括起来:软件项目风险主要来源于开发过程和开发环境,在需求定义、项目设计、项目实施等不同开发阶段,以及开发人员、产品外包、系统用户、过程管理等相应的开发环境中可能存在如表8-2所示的7大类(共计36项)风险因素。而且它们在不同的软件项目中有不同的表现形式和影响程度。第8章 软件项目风险管理 表表8-2 软件项目中的软件项目中的36项风险因素项风险因素第8章 软件项目风险管理 软件项目风险按照可预测性,将其划分为已知风险、可预测风险和不可预测风险。根据软件项目风险按照能否管理,可将其划分为可管理风险和不可管理风险。8.1.3 软件项目风险管理概述软件项目风险管理概述1.软件项目风险管
12、理的概念软件项目风险管理的概念软件项目风险管理是指通过风险识别、风险界定和风险评价去认识风险,并合理运用各种风险应对措施、管理方法、技术手段,对项目的风险实施有效地控制,以确保项目风险处于受控状态,而且能妥善处理风险事故所造成的各种损失,最终能够保证以最小的成本实现项目的总体目标。第8章 软件项目风险管理 软件风险管理的目标是:控制和处理项目风险,防止和减少损失,减轻或消除风险的不利影响,以最低成本取得对项目保障的满意结果,保障项目的顺利进行。软件项目风险管理的基础是调查研究,调查和收集资料,必要时还要进行实验或试验。只有认真地研究项目本身和环境以及两者之间的关系、相互影响和相互作用,才能识别
13、项目面临的风险。第8章 软件项目风险管理 2.软件项目风险管理模型软件项目风险管理模型针对软件项目中的风险管理问题,不少专家、组织提出了自己的风险管理模型。主要的风险管理模型有:Boehm模型、CRM模型、SERIM模型和CMMI模型。1)Barry Boehm模型从风险管理步骤看,Boehm倾向于传统的项目风险管理理论,它认为风险管理包括风险评估及风险控制两方面,风险评估包括风险识别、风险分析、风险优先级三项活动,主要在项目早期检查和识别项目潜在的风险,也可能发生在项目实施的其他任何阶段;风险控制包括制定风险管理计划、风险化解和风险监控三项活动,如图8.1所示。第8章 软件项目风险管理 图8
14、.1 Boehm模型的风险管理步骤(Boehm认为风险管理包括风险评估及风险控制两方面,风险评估包括风险识别、风险分析、风险优先级三项活动,风险控制包括制定风险管理计划、风险化解和风险监控三项活动)第8章 软件项目风险管理 风险识别活动是借助风险检查表、工作分解结构、情景分析、以往的经验来寻找阻碍软件项目成功的风险。风险分析活动是从成本、项目绩效、进度和质量等方面研究风险对项目的影响,把风险数据转化为能够进行风险决策的信息。风险优先级活动是按风险影响的大小排出一个风险优先级,帮助项目经理在处理风险时优先解决最严重的风险。风险管理计划活动是为每个重要的风险制定详细的解决计划,其包括负责人、使用工
15、具、应对措施和时间表等。风险化解活动是执行风险管理计划的内容来消除或减弱风险。风险监控活动是:追踪项目的进展,确保风险管理计划是有效的,能够保障项目沿着成功的方向发展,如果风险应对中出现问题需及时调整风险管理办法。第8章 软件项目风险管理 关于风险度量,Boehm给出了以下模型:(8-2)Boehm模型的核心是十大风险因素列表,其主要指人员缺少、进度安排不科学、预算不准确、需求随意改变等。根据各种风险因素的特点,Boehm给出了有针对性的风险管理策略和措施。在实际操作时Boehm以十大风险列表作为评判标准和依据,归纳当前项目具体的风险因素,评估完成后再进行计划和实施,在下一次定期召开的会议上再
16、对这10大风险因素的解决情况进行总结,改进原有的十大风险因素表。)UO(L)UO(PRE第8章 软件项目风险管理 2)SEI的CRM模型SEI CRM(Continuous Risk Management)模型的风险管理原则是:不断地评估可能造成恶劣后果的因素,决定最迫切需要处理的风险,实现控制风险的策略,评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为5个步骤:风险识别、分析、计划、跟踪、控制,如图8.2所示。其中风险识别是采用调查问卷完成的,问卷问题的要求是信息含量足够大,所涉及的领域全面。风险分析侧重点是掌握所有风险在此项目中的
17、出现概率以及后果危害性,从而产生十大风险问题。第8章 软件项目风险管理 图8.2 SEI的CRM模型(CRM模型将风险管理划分为5个步骤:风险识别、分析、计划、跟踪、控制,在风险管理的每个活动中都涉及沟通,如果缺乏沟通,风险管理也很难凑效)第8章 软件项目风险管理 3)SERIM模型SERIM(Software Engineering Risk Model)模型从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等。它还提供了一些指标、模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力。第8章 软件项目风险管理 4)CMMI模型CMMI(Ca
18、pability Maturity Model Integration)是指能力成熟度集成模型,是对原有能力成熟度模型(Capability Maturity Model,CMM)的改进,优点是能够对软件能力与成熟度的标准进行准确评定,侧重点是开发过程的管理,是现代软件项目风险管理中应用最广的模型。该模型依靠五个逐层递进的层次进行表示,包括初始级、可重复级、已定义级、已管理级、优化级,项目风险管理主要聚集于第三级水平。在CMMI模型中风险管理是第三级中特殊的过程域,是软件风险管理的关键构成部分,它展现了风险管理的过程特性,进而将过程中各项风险管理原则呈现出来。第8章 软件项目风险管理 CMMI
19、模型的风险管理过程域将风险管理分为风险管理准备、识别和分析风险、缓解风险三个部分,分别用三个特定目标加以规范。为达到这三个目标的要求,模型给出了对应于三个目标的特定实践,也称为最佳实践,如图8.3所示。项目通过最佳实践的实施实现对风险的有效管理和监控。第8章 软件项目风险管理 图8.3 SEI的CMMI模型(在CMMI模型中,风险管理是第三级中的过程域,CMMI的风险管理过程域将风险管理分为风险管理准备、识别和分析风险、缓解风险三个部分,给出了对应于三个目标的最佳实践,通过最佳实践实现对风险的有效管理和监控)第8章 软件项目风险管理 3.软件项目风险管理的意义软件项目风险管理的意义人们往往会忽
20、略软件开发项目管理中的风险管理这一项,但是事实证明:风险管理是否能得到有效控制是软件开发项目是否最终成功的重要决定条件。调查发现55%的失控项目(发生成本严重超支或进度严重超期的项目)根本没有进行风险管理,38%的失控项目只做了一些风险管理工作(但是一半在项目进行过程中并没有处理已经发生的风险),而另外17%的失控项目并不知道他们是否进行了风险管理工作。第8章 软件项目风险管理 这项研究表明实施风险管理对提高项目成功的可能性、防止项目的失控是非常重要的,其意义主要表现在以下几个方面:(1)有利于更加深刻地认识和理解项目范围及其风险,澄清备选方案的利弊,能够提升项目计划的可信度和执行力。(2)可
21、以改善项目执行组织内外部的沟通环境,保证风险管理信息的正常流动,有效实现风险管理乃至整个项目管理。(3)能够更加明确项目的前提和假设,有针对性地制定风险应对计划,以便减少或分散风险,减少费用支出,促进项目组织经营效益的提高。第8章 软件项目风险管理(4)有利于消除或减少风险存在所带来的项目资源浪费,使资源分配达到最佳组合。(5)为以后的规划和设计工作提供反馈,以便采取措施防止并避免风险损失。(6)促进管理决策的科学化、合理化,降低决策的风险水平,保证项目的成功实现。(7)可推动项目管理层和项目组织积累风险资料,以便改进将来的项目管理。4.软件项目风险管理的过程软件项目风险管理的过程PMBOK将
22、风险管理分为规划风险管理、识别风险、定性风险分析、定量风险分析、规划风险应对、监控风险六个过程,如图8.4所示。第8章 软件项目风险管理 图8.4 PMBOK中的项目风险管理过程(PMBOK将风险管理分为规划风险管理、识别风险、定性风险分析、定量风险分析、规划风险应对和监控风险六个过程,总结出了相应的输入、工具与技术、输出)第8章 软件项目风险管理 以PMBOK描述的项目风险管理过程为基础,结合软件项目的实施特点,将其风险管理分为规划风险管理、识别项目风险、分析评估风险、制定应对策略和风险跟踪控制五个过程,如图8.5所示。图8.5中的识别项目风险、分析风险、制定应对策略可能重复进行。当有一个可
23、能导致项目失败的重大风险被识别以后,需要制定计划消除这个风险或者降低它的破坏性,之后需要重新评估该风险,以确定原来的风险已经有效消除且没有因此引入新的风险。第8章 软件项目风险管理 图8.5 软件项目风险管理的过程(结合PMBOK的项目风险管理,可以将软件项目的风险管理分为规划风险管理、识别项目风险、分析评估风险、制定应对策略和风险跟踪控制五个过程)第8章 软件项目风险管理 事实上,很难把软件项目管理活动与风险管理活动之间划分明确的界限。例如为软件项目选择解决方案时,未来不良事件的影响也是需要考虑的因素之一。很多软件质量保证方法,例如评审和测试,也是降低最终项目交付风险的方法。风险管理并不是项
24、目管理中自我独立的部分,然而风险管理也有其自身的特点,在项目计划规范化和被接受之后风险管理用来处理其中的不确定性。每个计划都是基于各种假设条件的,当这些假设条件不成立的时候,风险管理要对其进行策划和控制。第8章 软件项目风险管理 8.2 风险管理规划风险管理规划风险管理规划是指决定如何进行项目风险管理活动的过程,这一部分在整个风险管理过程中起着很重要的作用,它保证了为风险管理活动提供充足的资源和时间,是确立风险评估一致性的基础。风险管理规划依据事业环境因素、组织过程资产、项目规范说明书和项目管理规划等因素进行计划,通过规划会议的形式进行讨论分析,将风险费用和所需的进度计划活动纳人项目预算和进度
25、计划中。第8章 软件项目风险管理 风险管理规划是一个迭代过程,其包括评估、控制、监控和记录项目风险的各种活动,它的结果主要是风险管理计划(Risk Management Plan,RMP)。8.2.1 风险管理规划的任务风险管理规划的任务风险管理规划是指确定一套系统全面的、有机配合的、协调一致的策略和方法并将其形成文件的过程,这套策略和方法用于辨识和跟踪风险、拟定风险缓解方案、进行持续的风险评估,从而确定风险变化情况并配置充足的资源。风险管理规划阶段主要考虑下面的问题:(1)风险管理策略是否正确、可行;(2)实施的管理策略和手段是否符合总目标。第8章 软件项目风险管理 因此项目风险管理规划主要
26、工作包括以下两方面:(1)决策者针对项目面对的形势选定行动方案后,就要制定执行该方案的计划。为了使计划切实可行,常常需要进行再分析,特别是要检查计划是否与其他已做出的或将要做出的决策冲突,为以后留出灵活余地。一般应当避免过早的决策,只有在获得了关于将来潜在风险以及防止其他风险足够多的信息之后才能做出决策。(2)选择适合于已选行动方案的风险应对策略。选定的风险应对策略要写入风险管理计划和风险应对策略计划中。第8章 软件项目风险管理 8.2.2 风险管理规划的过程及其活动风险管理规划的过程及其活动风险管理规划标识了与项目相关的风险和所采取的风险评估、分析手段,制定了风险规避策略以及具体实施措施和手
27、段。风险管理规划的依据主要有:(1)项目规划中所包含或涉及的有关内容,例如:项目目标、项目规模、项目利益相关者情况、项目复杂程度、所需资源、项目时间段、约束条件及假设前提等。(2)项目组织及个人所经历和积累的风险管理经验及实践。(3)决策者、责任方及授权情况。第8章 软件项目风险管理(4)项目利益相关者对项目风险的敏感程度及可承受能力。(5)可获取的数据及管理系统情况。丰富的数据和严密的系统基础,将有助于风险识别、估计、评价及对应策略的制定。(6)风险管理模板。项目经理及项目组织将利用风险管理模板对项目进行管理,从而使风险管理标准化、程序化。模板应在管理的应用中得到不断改进。图8.6表示了风险
28、管理规划从输入转变为输出的整个过程及其活动,包括作为规划依据的输入、机制支持、控制调节以及作为规划结果的输出等过程。第8章 软件项目风险管理 图8.6中的机制是为风险管理过程及其活动提供方法、技巧、工具或其他手段。风险管理规划的早期工作是确定项目风险管理的目标,明确具体区域的职责,明确需要补充的专业技术,规定评估过程和需要考虑的区域,规定选择处理方案的程序,规定评级图,确定报告和文档需求,规定报告要求和监控衡量标准等。风险管理计划是风险管理的导航图,告诉项目管理组织项目怎样从当前所处的状态到达所希望的未来状态。做好风险管理计划,关键是要掌握必要的信息,使项目组织能够了解目标和项目风险管理过程。
29、第8章 软件项目风险管理 风险管理计划有些方面可以规定得很具体,例如政府和承包商参与者的职责和定义等;而另一些领域则可以规定得笼统一些,使用者可以选择最有效的实施方法,例如关于评估方法就可以提出几种建议供评价者在评估风险时选用,这样做比较恰当,因为每一种方法都有其所长,亦有其所短,要视具体情况而定。第8章 软件项目风险管理 图8.6 软件项目风险管理规划的过程及其活动(风险管理规划从输入转变为输出的过程中涉及输入的依据和输出的结果,通过相应的方法、技术和工具控制相关的结果来完成风险管理规划)第8章 软件项目风险管理 风险管理计划规定了风险记录所选的途径、所需的资源和风险应对的批准权力。风险反应
30、阈值定义了风险发生的征兆,预先确定的阈值作为表明需要执行风险行动计划的警告。残余风险是指采取风险反应行动之后仍然留存的风险,也包括那些被接受的小风险。风险管理规划的过程活动是将按优先级排列的风险列表转变为风险应对计划所需的任务,是一种系统活动过程(如图8.6所示),其主要包括以下内容。第8章 软件项目风险管理 1.确定风险设想确定风险设想风险设想是对可能导致风险发生的事件和情况的估计。事件描述导致风险发生时必然导致的后果,情况描述使未来事件成为可能的环境。应针对所有对项目成功有关键作用的风险来进行风险设想。确定风险设想一般有以下3个步骤。(1)假设风险己经发生,考虑如何应对风险;(2)假设风险
31、将要发生,说明风险设想;(3)列出风险发生之前的事件和情况。第8章 软件项目风险管理 2.制定风险应对方案制定风险应对方案风险应对备用方案是指应对风险的一套选择方案。用避免、转移、缓解、接受、研究、储备、退避等应对策略来制定风险应对备用方案。每种策略应包括目标、约束和备用方案。3.选择风险应对途径选择风险应对途径风险应对途径缩小了选择范围,并将选择集中在应对风险的最佳备用方案上。可将几种风险应对策略结合为一条综合途径。例如可能决定通过市场调查来获得统计数据,根据调查结果可能会将风险转移到第三方,也可能使用风险储备,开发新的内部技术。选择标准有助于确定应对风险的最佳备用方案。第8章 软件项目风险
32、管理 4.制定风险管理计划制定风险管理计划风险管理计划详细说明了所选择的风险应对途径,它将途径、所需的资源和批准权力编写为文档,一般应包含下列因素:(1)批准权力;(2)负责人;(3)所需资源;(4)开始日期;(5)活动;(6)预计结束日期;(7)采取的行动;(8)取得的结果。第8章 软件项目风险管理 5.建立风险管理模板建立风险管理模板风险管理计划并不需要立即实施。在项目初期,风险评估倾向于识别容易忽视的重要风险,因为它们并不会立即发生,风险计划中比较容易忽视,这些重要的问题在跟踪中也容易被遗忘,直至出现无法补救的后果,除非设置某种机制。要做到尽早警告,可使用以定量目标和阈值为基础的触发器。
33、风险管理模板规定了风险管理的基本程序、风险的量化目标、风险警告级别、风险的控制标准等,从而使风险管理标准化、程序化和科学化。第8章 软件项目风险管理 6.确定风险数据库模式确定风险数据库模式项目风险数据库应包含若干数据字段,用于全面描述项目风险。数据库设计一般包括数据库结构和数据文件两部分,项目风险数据库应包括项目生命周期过程所有的相关活动。项目风险数据库模式,是从项目风险数据库结构设计的角度来介绍项目风险数据库。上述六种活动过程可以重复使用,也可以同时使用。第8章 软件项目风险管理 8.2.3 风险管理规划的主要结果风险管理规划的主要结果风险管理计划是风险管理规划文件的一个基础性文件,风险管
34、理计划要说明如何把风险分析和管理步骤应用于项目之中,该文件详细地说明风险识别、风险估计、风险评价和风险控制过程的所有方面,如表8-3所示。风险管理计划还要说明项目整体风险评价基准是什么,应当使用什么样的方法以及如何参照这些风险评价基准对项目整体风险进行评价。为了真正使风险能够消除或减弱,制定风险管理计划时,往往要包含风险应对行动计划和风险应对应急计划。第8章 软件项目风险管理 风险应对行动计划是通过迅速反应来降低或者消除风险的影响或者发生的概率,以此来化解风险。这个计划就是为防止风险不利事件发生所推荐的可采取措施。风险应对应急计划是指如果采取正常的风险应对行动计划,风险仍然没有化解掉,那么在风
35、险监控中就要引入事先准备好的应急计划。要对每个风险设定一个触发器,一旦触发器发生就需要实施应急计划。这个计划就是当风险变成问题时应该采取的计划。第8章 软件项目风险管理 表表8-3 风险管理计划包含的内容风险管理计划包含的内容第8章 软件项目风险管理 8.2.4 风险应对策略风险应对策略1.规避风险规避风险规避风险策略是指当项目风险潜在威胁发生的可能性太大,不利后果也很严重,又无其他策略可用时,主动放弃项目或改变项目目标与行动方案,从而规避风险的一种策略。规避风险并不意味着完全消除风险,所要规避的是风险可能造成的损失,主要从两个方面入手:一是采取事先控制措施,降低损失发生的概率;二是降低损失程
36、度。可以通过澄清需求、获取信息、改善交流、听取专家意见以应对项目早期的风险。增加资源或时间,降低项目目标,缩小项目范围,用成熟可行的方法替代创新方法都是规避项目风险的切实措施,可以根据项目的具体情况选择使用。第8章 软件项目风险管理 在项目活动尚未实施时,必须对风险有充分的认识,对风险出现的可能性和后果的严重程度有足够的把握,才可以采取规避策略。否则,放弃或改变正在进行的项目,可能会带来更高的风险,以及付出更大的代价。2.转移风险转移风险转移风险是将风险转移到参与该项目的其他人或其他组织,其目的不是降低风险发生的概率和不利后果的大小,而是借用合同或协议,在风险事故一旦发生时将损失的一部分转移给
37、有能力承受或控制项目风险的个人或组织。实行这种策略要遵循两个原则:第一,必须让承担风险者得到相应的报答;第二,对于各个具体风险,谁最有能力管理就让谁分担。第8章 软件项目风险管理 有时候对于自己来说是风险的情况对于其他项目组或组织则不是问题,这个时候可以采取风险转移策略。例如,成本太高对于日本软件行业来说是风险,那么通过软件外包到中国来开发就转移了本国高薪员工的风险。采用这种策略所付出的代价大小取决于风险大小。当项目的资源有限而不能实行减轻和预防策略,或风险发生频率不高,但潜在的损失或损害很大时可采用这种策略。第8章 软件项目风险管理 3.接受风险接受风险接受风险是指有意识地选择承担风险后果。
38、就是当风险无法化解,而且自己可以承担损失时,可用这种策略接受风险。接受风险可以是主动的,也可以是被动的。主动接受风险是指由于在风险管理规划阶段已对一些风险有了准备,所以当风险事件发生时马上执行应急计划。被动接受风险是指在风险事件造成的损失数额不大,不影响项目大局时,项目管理组将损失列为项目的一种费用。第8章 软件项目风险管理 费用增加了,项目的收益自然要受影响。当采取其他风险应对方法的费用超过风险事件造成的损失数额时可采取接受风险的方法。例如,经理们期望员工自愿流动的百分比较低,更换一个入门级工程师的费用,可能与为留住此人而提升他或她的福利所花的费用一样,这时的策略是接受经过培训的人员调离项目
39、的风险,付出的代价便是雇用顶替他们的人所花的费用。第8章 软件项目风险管理 4.减轻风险减轻风险减轻风险策略是通过缓和或预知等手段来减轻风险,降低风险发生的可能性或减缓风险带来的不利后果,以达到风险减少的目的。减轻风险是存在风险优势时使用的一种风险决策,其有效性在很大程度上要看风险是已知风险、可预测风险还是不可预测风险。对于已知风险,项目管理组可以在很大程度上加以控制,可以动用项目现有资源以降低风险后果的严重性和风险发生的频率。例如可以通过压缩关键任务时间、加班或采取“快速跟进”来减轻项目进度风险。第8章 软件项目风险管理 可预测风险或不可预测风险是项目管理组很少或根本不能够控制的风险,因此有
40、必要采取迂回策略,降低其不确定性。出现概率虽小,但是后果严重的风险一般为不可预测的,也是最难减轻的一种风险。此类风险只要一发生就变成了已知风险,就能找出相应的减轻办法。在实施减轻风险策略时,最好将项目每一个具体“风险”都减轻到可接受的水平。风险规避和它不同,是改变了项目的范围来消除不可接受的活动。项目中各个风险水平降低了,项目整体风险水平在一定程度上也就降低了,那么项目成功的概率就会增加。第8章 软件项目风险管理 5.预防风险预防风险风险预防是一种主动的风险管理策略。包括:(1)在项目活动开始之前,采取一定措施,减少风险因素。(2)对项目有关人员进行风险和风险管理教育,以减轻与不当行为有关的风
41、险。(3)遵循客观规律,遵守科学的程序,以制度化的方式从事项目活动,减少因客观规律性被破坏而给项目造成不必要的损失。(4)合理地设计项目组织形式也能有效地预防风险。使用预防策略时需要注意的是:在项目的组成结构或组织中加入多余的部分,同时也增加了项目或项目组织的复杂性,提高了项目成本,进而增加了风险。第8章 软件项目风险管理 6.储备风险储备风险储备风险是指根据项目风险规律,事先制定应急措施和一个科学高效的项目风险计划,一旦项目实际进展情况与计划不同,就动用后备应急措施。采用这种策略,需要详细说明风险在系统内的位置才能将风险和储备联合起来。对于一些大型软件的、较新或灰度较大的项目,由于项目的复杂
42、性或许缺乏参考,而项目风险是客观存在的,例如项目进度或费用超支往往给项目带来极大的风险,因此为了保证此类项目预定目标的实现,有必要制定一些项目风险应急措施。第8章 软件项目风险管理 7.控制风险控制风险当接受风险可能会发生时,制定可能的处置计划。例如分配额外资源来辅助设计,并留出额外的问题处理时间等。在设计和制定风险应对策略时一定要针对项目中不同风险的特点,尽可能准确而合理地采用上述策略中的一种或者以上几种策略的组合策略。在实施风险策略和计划时应随时将变化了的情况反馈给风险管理人员,以便能及时地结合新的情况,对项目风险应对策略进行调整,使之能适应新的情况,并尽量减少风险带来的损失,以确保项目实
43、施获得成功。制定风险管理计划之后,要把每个风险管理的过程落实到项目的进度表中,并与整个项目管理过程紧密结合起来认真执行。第8章 软件项目风险管理 8.3 风风 险险 识识 别别8.3.1 风险识别概述风险识别概述风险识别也称风险辨识,是试图通过系统化的方法寻找可能影响项目的风险(已知的和可预测的)以及确认风险特性的过程。风险识别的主要工作是确定可能对项目造成影响的风险,并且把每一风险的特性编制成文档。风险识别的目标是辨识项目面临的风险,揭示风险和风险来源,以文档及数据库的形式记录风险。风险识别的结果是软件项目风险清单。第8章 软件项目风险管理 对于软件开发过程各阶段特有的风险,以及独立于时间的
44、、存在于多个项目阶段的各种风险的识别依赖于项目管理者或专家的知识与经验,同时可以结合案例库进行。风险识别不仅在项目开始前进行,而且项目全程都需要监视新风险的诞生,使得模型能将项目全程任何时刻的重要不确定性都纳入管理范围,以进行系统化管理。8.3.2 风险识别过程及其活动风险识别过程及其活动图8.7表示了风险识别从输入转变为输出的整个过程及其活动,其包括作为识别依据的输入、机制支持、控制调节以及作为识别结果的输出等过程。第8章 软件项目风险管理 图8.7 软件项目风险识别过程及其活动(风险识别从输入转变为输出的过程中涉及输入的依据和输出的结果,通过相应的方法、技术和工具,控制相关的结果来完成风险
45、识别)第8章 软件项目风险管理 项目的一次性特点决定了项目包含着一定程度的不确定性。项目的不确定性是不知道的事情,是对项目持有疑虑、假定和怀疑的事情。通过这些假定和怀疑,估计它是否会构成项目的威胁,以至成为项目的风险。风险核对清单包括与风险核对主题相关的典型风险区域。风险核对清单能通过各种形式组织风险,例如:合同类型、成熟度级别、生命周期模型。风险识别的活动包括风险识别方法的确定、风险定义及分类、风险文档编写等。风险管理表单是一个通过填空的模板系统地处理风险的机制。第8章 软件项目风险管理 风险来源表用于陈述项目风险,将所有已识别的项目风险罗列出来并将每个风险来源加以说明,它至少要包括风险事件
46、的可能后果、风险事件的预期、风险事件发生频率等。风险征兆也被称为触发器(Triggers)或预警信号,是指示风险已经发生或即将发生的外在表现,是风险发生的苗头和前兆。软件项目风险识别过程活动的基本任务是将项目的不确定性转变为可理解的风险描述,作为一种系统过程,风险识别有其自身的过程活动(如图8.7所示)。第8章 软件项目风险管理 1.成立风险识别组织成立风险识别组织风险识别之前首先要明确其目标,确定风险识别参与人员,例如:项目组成员、风险管理人员、学科专家(组织内)、客户、项目的其他管理人员、外部专家等,究竟哪些人员参与此项工作,然后要明确他们的分工和责任,为风险识别提供组织保障。2.确定风险
47、识别方法确定风险识别方法在项目风险识别过程中结合项目的具体情况,借助一些技术、方法和工具,例如:检查表法、德尔菲法、头脑风暴法、SWOT法、敏感性分析法、系统分析法、因果分析法(流程图法)、情景分析法、WBS法、实验法、经验判断法等,能够使识别操作规范,进而提高工作效率。质量管理工具和沟通工具也可以有效应用在风险识别过程中。第8章 软件项目风险管理 3.估计项目风险形势估计项目风险形势通过项目风险形势估计,判断和确定项目目标是否明确、是否具有可测性、是否具有现实性、有多大不确定性;分析保证项目目标实现的战略方针、战略步骤和战略方法的正确性;根据项目资源状况分析实现战略目标的战术方案存在多大不确
48、定性,彻底弄清项目有多少可以动用的资源用于实施战术,进而实现战略意图和项目目标是非常重要的。4.收集相关信息资料收集相关信息资料从项目章程、项目合同、用户的需求建议书中收集项目产品或服务的说明书,研究其不确定性,以便提高风险识别所需的信息。第8章 软件项目风险管理 研究项目范围管理、人力资源与沟通管理、项目资源需求、项目采购与合同管理等项目管理计划,审查项目成本、进度目标是否定得太高,哪些人对项目的顺利完成有重大影响,哪些资源的获取、维护、操作等对项目的顺利完成可能造成影响,合同计价形式对项目有多大影响,以获得项目所有的前提、假设和制约因素。借鉴项目是识别项目风险的重要手段。一般的项目公司会积
49、累和保存所有项目的档案,其中有项目的原始记录等。查看过去类似项目的档案等历史资料或文献记载,参考有关问题的界定及其解决的办法,借鉴其中的经验和教训。也可以通过访谈等形式从项目利益相关者或风险识别组织中其他人那里获得关于风险识别的经验。第8章 软件项目风险管理 5.定义归类项目风险定义归类项目风险紧密结合项目成本、进度和技术等影响因素,识别其中的问题,通过定义可能性及结果来判断哪些属于风险。为了便于进行风险分析、量化、评价和管理,还应该对识别出来的风险进行分类整理。6.编写风险说明文档编写风险说明文档最后,通过编写风险来源表记录已识别风险,其中包括风险问题的简要阐述、可能性和结果等,同时要对风险
50、征兆、风险场景等进行详细说明。对于每一个风险需要填写一个风险管理表。规范书写该文档可使识别出来的风险更易理解。对于大型项目还需将其风险信息记入风险数据库系统。第8章 软件项目风险管理 8.3.3 风险识别方法风险识别方法1.德尔菲德尔菲(Delphi)法法用德尔菲方法进行项目风险识别的过程是由项目风险小组选定与该项目有关的领域专家,并与这些适当数量的专家建立直接的函询联系,通过征询收集专家意见,然后加以综合整理,再匿名反馈给各位专家,再次征询意见。这样反复经过四至五轮,逐步使专家的意见趋向一致,作为最后识别的根据。第8章 软件项目风险管理 2.头脑风暴法头脑风暴法头脑风暴法(Brain Sto
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。