,欢迎光临!退出
加入收藏设为首页请您留言
您当前位置:网站首页 >> 内部控制 >> 项目管理 >> 软件项目风险管理

软件项目风险管理

2014-02-25 15:09:52 来源:风控网 浏览:223

    五、风险分析

    在进行了风险辨识后,我们就要进行风险估算,风险估算从以下几个方面评估风险清单中的每一个风险:

    (1)建立一个尺度,以反映风险发生的可能性;

    (2)描述风险的后果;

    (3)估算风险对项目及产品的影响;

    (4)标注风险预测的整体精确度,以免产生误解。

      对辨识出的风险进行进一步的确认后分析风险,即假设某一风险出现后,分析是否有其他风险出现,或是假设这一风险不出现,分析它将会产生什么情况,然后确定主要风险出现最坏情况后,如何将此风险的影响降低到最小,同时确定主要风险出现的个数及时间。进行风险分析时,最重要的是量化不确定性的程度和每个风险可能造成损失的程度。为了实现这点,必须考虑风险的不同类型。识别风险的一个方法是建立风险清单,清单上列举出在任何时候可能碰到的风险最重要的是要对清单的内容随时进行维护,更新风险清单,并向所有的成员公开,应鼓励项目团队的每个成员勇于发现问题并提出警告。建立风险清单的一个办法是将风险输入缺陷追踪系统中,建立风险追踪工具,缺失追踪系统一般能将风险项目标示为已解决或尚待处理状态,也能指定解决问题的项目团队成员,并安排处理顺序。风险清单给项目管理提供了一种简单的风险预测技术,下表事一个风险清单的例子:

    风险             类别      概率      影响 

    资金将会流失      商业风险   40%        1 

    技术达不到预期效果 技术风险 30%        1 

    人员流动频繁      人员风险      60%            3 
 
    在风险清单中,风险的概率值可以由项目组成员个别估算,然后加权平均,得到一个有代表性的值。也可以通过先做个别估算而后求出一个有代表性的值来完成。对风险产生的影响可以对影响评估的因素进行分析。 

    一旦完成了风险清单的内容,就要根据概率进行排序,高发生率、高影响的风险放在上方,依次类推。项目管理者对排序进行研究,并划分重要和次重要的风险,对次重要的风险再进行一次评估并排序。对重要的风险要进行管理。从管理的角度来考虑,风险的影响及概率是起着不同作用的,一个具有高影响且发生概率很低的风险因素不应该花太多的管理时间,而高影响且发生率从中到高的风险以及低影响且高概率的风险,应该首先列入管理考虑之中。 

    在这里,我们需要强调的是如何评估风险的影响,如果风险真的发生了,它所产生的后果会对三个因素产生影响:风险的性质、范围及时间。风险的性质是指当风险发生时可能产生的问题。风险的范围是指风险的严重性及其整体分布情况。风险的时间是指主要考虑何时能够感到风险及持续多长时间。可以利用风险清单进行分析,并在项目进展过程中迭代使用。项目组应该定期复查风险清单,评估每一个风险,以确定新的情况是否引起风险的概率及影响发生改变。这个活动可能会添加新的风险,删除一些不再有影响的风险,并改变风险的相对位置。 

    在风险评估过程中,我们可以采取以下的步骤: 

    (1)定义项目的风险参考水平值。要使风险评估发生作用,就要定义一个风险参考水平值,对于大多数项目而言,通过对性能、成本、支持及进度等因素的分析,可以找出风险的参考水平值,对于性能下降、成本超支、支持困难或进度延迟(或者这四种的组合)等情况,超过这一参考水平值项目就会被终止。 

    (2)建立每一组(风险、风险发生的概率、风险产生的影响)与每一个参考水平值的关系。 

    (3)预测一组临界点以定义项目终止区域,该区域由一条曲线或不确定区域界定。 

    (4)预测什么样的风险组合会影响参考水平值。 

   六、风险驾驭 

    风险驾驭包括对策指定、风险缓解、风险监控、风险跟踪等内容。 

    所有风险分析活动都只有一个目的——辅助项目组建立处理风险的策略。如果软件项目组对于风险采取主动的方法,则避免永远是最好的策略。这可以通过建立一个风险缓解计划来达到即制定对策。 

    对不同的风险项要建立不同的风险驾驭和监控的策略比。如对于开发人员离职的风险项目开始时应作好人员流动的准备采取一些措施确保人员一旦离开时项目仍能继续;制定文档标准并建立一种机制保证文档及时产生;对每个关键性技术岗位要培养后备人员。对于技术风险,可以采用的策略有,对采用的关键技术进行分析,避免软件在生命周期中很快落后;在项目开发过程中保持对风险因素相关信息的收集工作,减少对合作公司的依赖尤其是对延续性强的项目应该尽可能地吸收合作公司的技术并变为自己的技术,避免因为可能发生的与合作公司合作的终止带来的影响和风险降低投入成本。 

    一个有效的策略必须考虑风险避免、风险监控和风险管理及意外事件计划这样三个问题。风险的策略管理可以包含在软件项目计划中,或者风险管理步骤也可以组成一个独立的风险缓解、监控和管理计划(RMMM计划)。RMMM计划将所有风险分析工作文档化,并且由项目管理者作为整个项目计划的一部分来使用,RMMM计划的大纲主要包括:主要风险,风险管理者,项目风险清单,风险缓解的一般策略、特定步骤,监控的因素和方法,意外事件和特殊考虑的风险管理等。一旦建立了RMMM计划,我们就开始了风险缓解及监控,风险缓解是一种避免问题的活动,风险监控则是跟踪项目的活动。它有三个主要目的:评估一个被预测的风险是否真的发生了;保证为风险而定义的缓解步骤被正确地实施;收集能够用于未来的风险分析信息。

  软件开发是高风险的活动。如果项目采取积极风险管理的方式,就可以避免或降低许多风险,而这些风险如果没有处理好,就可能使项目陷入瘫痪中。因此在软件项目管理中还要进行风险跟踪。对辨识后的风险在系统开发过程中进行跟踪管理,确定还会有哪些变化,以便及时修正计划。具体内容包括:

   (1)实施对重要风险的跟踪; 

  (2)每月对风险进行一次跟踪; 

   (3)风险跟踪应与项目管理中的整体跟踪管理相一致; 

  (4)风险项目应随着时间的不同而相应地变化。

  通过风险跟踪,进一步对风险进行管理,从而保证项目计划的如期完成。

   七、经典风险管理理论 

    7.1 Boehm模型 

    Boehm用公式RE=P(UO)*L(UO)对风险进行定义,其中RE表示风险或者风险所造成的影响,P(UO)表示令人不满意的结果所发生的概率,L(UO)表示糟糕的结果会产生的破坏性的程度。在风险管理步骤上,Boehm基本沿袭了传统的项目风险管理理论,指出风险管理由风险评估和风险控制两大部分组成,风险评估又可分为识别、分析、设置优先级3个子步骤,风险控制则包括制定管理计划、解决和监督风险3步。 

    Boehm思想的核心是10大风险因素列表,其中包括人员短缺、不合理的进度安排和预算、不断的需求变动等。针对每个风险因素,Boehm都给出了一系列的风险管理策略。在实际操作时,以10大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这10大风险因素的解决情况进行总结,产生新的10大风险因素表,依此类推。 

    10大风险列表的思想可以将管理层的注意力有效地集中在高风险、高权重、严重影响项目成功的关键因素上,而不需要考虑众多的低优先级的细节问题。而且,这个列表是通过对美国几个大型航空或国防系统软件项目的深入调查,编辑整理而成的,因此有一定的普遍性和实际性。但是它只是基于对风险因素集合的归纳,尚未有文章论述其具体的理论基础、原始数据及其归纳方法。另外,Boehm也没有清晰明确地说明风险管理模型到底要捕获哪些软件风险的特殊方面,因为列举的风险因素会随着多个风险管理方法而变动,同时也互相影响。这就意味着风险列表需要改进和扩充,管理步骤也需要优化。 

    虽然其理论存在一些不足,但Boehm毕竟可以说是软件项目风险管理的开山鼻祖。在其之后,更多的组织和个人开始了对风险管理的研究,软件项目风险管理的重要性日益得到认同。 

    7.2 CRM模型

    SEI(Software Engineering Institution)作为世界上著名的旨在改善软件工程管理实践的组织,也对风险管理投入了大量的热情。SEI提出了持续风险管理管理模型CRM(Continuous Risk Management)。

    SEI的项目风险管理(风控网)原则是:不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。

    CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为5个步骤:风险识别、分析、计划、跟踪、控制。下图所示的框架显示了应用CRM的基础活动及其之间的交互关系,强调了这是一个在项目开发过程中反复持续进行的活动序列。每个风险因素一般都需要按顺序经过这些活动,但是对不同风险因素开展的不同活动可以是并发的或者交替的。

    风险识别依靠问卷完成,问卷覆盖了大概200个问题,一共涉及13个主要领域。风险分析侧重于理解每个风险在该项目中的发生几率和后果严重性,从而产生最严重的10大风险问题。风险计划是将如下内容文档化:风险管理步骤的描述、负责人及其职责、行为执行和完结的时间,并且确定风险处理的优先级,制定整体的管理计划。风险跟踪是获取、整理并汇报10大风险问题当前的状态,其目的是收集精确的、及时的和相关的信息,并将它们表达成容易理解的方式提交给负责人。风险控制是为了根据风险及其缓解计划进行及时而有效的决策,具体操作包括分析风险跟踪阶段产生的风险状态信息,明确地决定采取什么行动,并实现它们。而处于核心地位的沟通则强调其有效性和针对性,要注意将合适的信息传达给合适的组织层次以得到最有效的分析和管理,这些层次包括开发方和用户方双方的组织结构。 

    7.3Leavitt模型 

    SEI和Boehm的模型都以风险管理的过程为主体,研究每个步骤所需的参考信息及其操作。而Aalborg大学提出的思路则是以Leavitt模型为基础,着重从导致软件开发风险的不同角度出发探讨风险管理。 

    1964年提出的Leavitt模型将形成各种系统的组织划分为4个有趣的组成部分:任务、结构、角色和技术。这4个组成部分和软件开发的各因素很好地对应起来:角色覆盖了所有的项目参与者,例如软件用户、项目经理和设计人员等;结构表示项目组织和其他制度上的安排;技术则包括开发工具、方法、硬件软件平台;任务描述了项目的目标和预期结果。Leavitt模型的关键思路是:模型的各个组成部分是密切相关的,一个组成部分的变化会影响其他的组成部分,如果一个组成部分的状态和其他的状态不一致,就会造成比较严重的后果,并可能降低整个系统的性能。

  将这个模型和软件风险的概念相对应,即一个系统开发过程中任何Leavitt组成成分的修改都会产生一些问题,甚至导致软件修改的失败。根据Leavitt模型,任何导致风险发生的因素都可以归结为模型中的组成部分,例如技术及其可行性;或者归结为组成部分之间的联系,例如程序开发人员使用某一技术的能力。因此,使用Leavitt模型从4个方面分别识别和分析软件项目的风险是极有条理性和比较全面的。在进行软件项目管理时,可以采用不同的方法对不同的方面进行风险管理。

   Leavitt模型实际上是提出一个框架,可以更加广泛和系统地将软件风险的相关信息组织起来。Leavitt理论的设计方法和实现研究已经广泛应用于信息系统中,它所考虑的都是软件风险管理中十分重要的环节,而且简单、定义良好、适用于分析风险管理步骤。

    八、结束语 

    总之,在软件项目开发过程中,当对软件的期望很高时,一般都会进行软件项目风险管理分析、预测、评估、管理及监控等风险管理。通过风险管理可以使项目进程更加平稳,可以获得很高的跟踪和控制项目的能力,并且可以增强项目组成员对项目如期完成的信心。风险管理是项目管理中很重要的管理活动,有效的实施软件项目风险管理是软件项目开发工作顺利完成的保证。

第1页 第2页 第3页
上一篇:建立工程风险管理制度的最初设想
下一篇:ERP实施:在创新中化解项目风险管理
发表评论
网名:
评论:
验证:
共有0人对本文发表评论查看所有评论(网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
最近更新
赞助商链接
点击排行
关于我们 - 联系我们 - 免责申明 - 人才招聘 - 战略合作