您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件项目风险的识别与风险的分析
软件项目风险的识别与风险的分析摘自—项目管理技术软件开发项目是一项复杂的工程,涉及的因素很多,风险的管理过程有:风险的识别、风险的管理计划的制定、风险追踪、风险控制。风险识别是风险管理的第一步,而有效的风险分析是进行风险管理的基础,因此做好这2个过程的工作是软件项目成功的关键。1软件风险的识别风险识别过程的活动是将项目实施中的不确定性转变为明确的风险陈述。系统地识别风险是这个过程的关键,识别风险不仅要确定风险来源,还要确定何时发生、风险产生的条件,并描述其风险特征和确定哪些风险事件有可能影响本项目。风险识别不是一次性的活动,应当在项目执行过程中自始至终定期进行。1.1风险识别的依据从项目管理角度讲,风险识别依据有:合同、项目计划、工作任务分解WBS、各种历史参考资料(类似项目的资料)、项目的各种假设前提条件和约束条件。从软件开发的生命周期看,每个阶段的输出(各种文档)都是下一阶段进行风险识别的依据,许多技术风险都可据此来分析。1.2风险识别方法和工具风险识别的方法很多,不同的方法适用于不同的场合,下表给出了常用的方法的适用情况。识别方法适用情况专家访谈法(Delphi)从定性方面出发进行初步风险识别历史纪录统计法从定性方面对新项目的风险进行预测现场调查法对一些动态风险因素进行识别与预测风险数据库类似项目的风险识别故障树分析法直接经验较少的风险识别流程图法分阶段进行的项目风险识别聚类分析法具有相同或相似属性的风险识别模糊识别法风险的形态或属性不确定软件项目的风险识别通常采用的工具为:(1)风险核对清单:将可能出现的问题列出清单,然后对照检查潜在的风险。(2)头脑风暴法:项目成员、外聘专家、客户等各方人员组成小组,根据经验列出所有可能的风险。(3)专家访谈:向该领域的专家或有经验人员了解项目中会遇到哪些困难。(4)风险数据库:一个已知风险和相关的信息的仓库,它将风险输入计算机,并分配下一个连续的号码给这个风险,同时维持所有已经识别的风险历史纪录,它在整个风险管理过程中都起着很重要的作用。在实际应用中,风险核对清单是一种最常用的工具,它是建立在以前的项目中曾遇到的风险的基础上。该工具的优点是简单快捷,缺点是容易限制使用者的思路。1.3风险种类风险识别出来后应该规整分类,分类可从多种角度定义和划分,一般可按风险引发的原因、项目开发阶段、风险严重程度、风险区东引资等进行分类。下面介绍2种典型的软件风险分类方法。(1)、SEI:1993年SEI发表了基于分类的风险辨识方法(TBQ)。该分类法把系统分为三个类(Class),每个类又分解为若干个因素(elements),每个因素通过其属性来体现特征。(2)、美国空军软件项目风险管理手册:这种方法要求项目管理者根据项目实际情况影响软件风险因素的风险驱动因子,这些因素包括以下几个方面。性能风险:产品能够满足需求和符合使用目的的不确定程度。成本风险:项目预算能够被维持的不确定程度。支持风险:软件易于纠错、适应及增强的不确定程度。进度风险:项目进度能够被维持且产品能按时交付的不确定程度。笔者借鉴SEI的思想,在大量调查和实践的基础上,结合已有的历史文献资料,对软件项目风险进行了分类和提炼,识别出8类风险,共48个风险因素,如表所示:类型风险因素类型风险因素需求风险项目的需求不明确,很难界定计划和控制风险缺少大量的历史数据作为参考系统需求不正确对项目进度估算的不够充分对系统需求识别得不够充分,有遗漏对项目资源估计的不够充分相关人员对系统需求定义存在分歧没有完善、全面的项目计划系统需求变动缺少严格的变更控制和版本控制对项目执行过程监控不足技术项目中需要购买未使用过的设备用户用户不重视项目管理项目采用的是以前未曾使用过的新技术用户中部分人员对该项目比较抵触使用不成熟的技术缺乏用户参与风险对单个开发工具过度依赖风险用户对该项目的目标和需求不清晰项目需要开发大量的接口以连接到其他系统项目采用的开发方法(如螺旋模型、瀑布模型)不合适。团队风险团队内部人员的频繁流动外部风险缺乏与顾客的直接沟通关键人员的离职与合作方缺乏有效沟通开发人员缺乏所需专业技能双方缺乏信任开发人员不熟悉自己的任务外部供应商延迟交货团队内部人员难以沟通与合作方在进度上的冲突团队士气低落,工作效率低下合作方的产品不符合要求合作方中途终止合约在某个关键领域依靠外部供应商双方的企业文化的差异公司资源对项目产生了限合同类型不合适组织风险制合同风险缺乏对项目成功标准的定义合同条款内容不严谨缺乏高层管理的支持合同条款不全面项目经理缺乏经验,能力不足存在法律上的漏洞实施该项目需要大幅度改变组织结构实施该项目需要较大地改变业务流程或彻底改变部分流程该项目与企业的发展战略或政策不一致值得注意的是,尽管可以将风险进行分类,但风险之间总是互相关联的,单独的风险很少发生,因此不能孤立地考虑任何一个风险,因为一个风险类别的组成部分总是影响另一格类别。2软件风险的分析风险分析是在风险识别的基础上估计风险的可能性和后果,并在所有已识别的风险中评估这些风险的价值。这个过程的目的就是将风险按优先级别进行等级划分,以便制定风险管理计划,因为不同级别的风险要区别对待,以使风险管理的效益最大化。2.1风险分析流程根据风险分析的内容,可将风险分析过程细分为2个活动:风险估计和风险评价。通常项目计划人员与管理人员、技术人员一起,进行风险分析,该过程是一个不断重复的过程,在整个生命周期都要有计划、有规律地进行风险分析,分析流程如下图:风险分析准备风险识别/分类风险列表/风险识别报告风险可能性大小估计风险损失大小估计计算风险值是否可接受评判准则去掉可接受风险风险排序/等级划分风险等级划分风险排序清单项目过程是否结束过程结束否是2.2风险的估计风险估计是估计已识别的风险发生的可能性和风险出现后将会产生的后果,并描述风险对项目的潜在影响和整个项目的综合风险。风险估计有以下4个环节:(1)定义风险评估准则评估准则是事先确定的一个基准,作为风险估计的参照依据。准则有定性和定量两种,定性估计即将肯能性分成等级,如:很大、大、中、小、级小5个等级,一般以不超过9级为宜。定量估计则是给出一个具体的数值,如:0.7表示风险发生的可能性为70%,当然,定量估计还是有其它方法,用模糊数表示风险的可能性就是一种常用的方法。下表给出一个评估准则的例子:可能性的评估准则可能性说明等级〉80%(0.8)非常有可能性,几乎肯定很大60%~80%(0.6~0.8)很有可能性,比较确信大40%~60%(0.4~0.6)有时发生中20%~40%(0.2~0.4)不易发生,但有理由可预期能发生小1%~20%(0.01~0.2)几乎不可能,但有可能发生很小风险损失的评估准则损失说明等级成本进度性能0.8成本增加20%项目延迟20%性能不能满足用户要求很大0.4~0.8成本增加10%~20%项目延迟10%~20%性能有较严重的缺陷大0.2~0.8成本增加5%~10%项目延迟5%~10%主要方面的性能不足中0.1~0.2成本增加1%~5%项目延迟1%~5%性能有缺陷,但基本满足用户的要求小0.1成本增加1%项目延迟1%性能有不明显的缺陷很小(2)估计风险事件发生的可能性根据评估准则对每个风险发生的可能性进行预测,预测的值应该是多人预测的综合结果。(3)估计风险事件发生的损失风险对项目的影响是多方面的,因此损失的估计也应从多方面分别进行估计,通常对三个方面进行估计:进度、成本、性能。(4)计算风险值根据估计出来的风险的可能性和损失,计算风险值(R)R=f(p,c)式中,p是风险事件发生的可能性,c是风险事件发生的损失。评估者可根据自身的情况选择相应的风险计算方法计算风险值。下表是风险评估的例子:风险可能性对进度的影响对成本的影响对性能的影响影响值需求不明确0.50.30.30.40.5需求变动0.90.50.40.20.99关键人员的离职0.20.40.20.30.18公司资源对项目产生了限制0.60.40.20.30.54缺少严格的变更控制和版本0.20.50.30.30.22的控制影响值=可能性*(对进度的影响+对成本的影响+对性能的影响)对项目风险进行分析是处置风险的前提,是制定和实施风险计划的科学根据,因此,一定要对风险发生的可能性及其后果做出尽量准确的估计。但在软件项目中,要准确地估计却不是件易事,主要有以下几个原因:(1)依赖主观估计。由于软件项目的历史资料通常不完整,因此,都是根据经验进行估计。而且主观估计常常存在着相互矛盾的问题,例如,某专家对一个特定风险发生的概率估计为0.6,然而,当问及不发生的概率时,回答可能性是0.5。因此许多学者将模糊数学理论引入到风险预测中,以解决预测的可能性和准确性问题。(2)人们认知的局限。由于人类自身认知客观事物的能力有限,所以不能准确地预知未来事物的发展变化,这也是导致风险估计主观性的主要原因。(3)项目环境多变。项目的一次性特征使其不确定性比其他经济活动达,因此,其预测的难度也较其他经济活动大。也正是这个原因,风险管理应该贯穿整个项目周期。2.3风险评价风险评价是根据给定的风险评判标准(也称风险评价基准),判断项目是继续执行还是终止(出的问题太大)。对于继续执行的项目,要进一步给出各个风险的优先排序,确定哪些是必须控制的风险。那么,要判断风险的高低,就需要一个标准,只有统一标准,才具有可比性,所以在做风险评价时,评判标准的设定应依据前面所确定的风险的可能性和损失的评估准则,不能自成一体。下表是依据上面几个表格得到的风险评判标准:风险评判标准风险值等级对应策略=0.9很高.重点控制[0.5,0.9]高应对[0.2,0.5]中应对[0.1,0.2]低视成本,损失严重程度等因素,决定是否应对0.1很低接受从表中可以看出,需求变动的风险很高,需求不明确和公司资源对项目产生了限制2个风险属于高风险,缺少严格的变更控制和版本控制属于中等风险,关键人员的离职属于中等风险,前3个风险必须采取措施应对,最后1个科根据项目具体情况而定。有时候也直接根据损失的大小来进行评价,但因为软件项目的评价具有多目标性,成本、进度、性能,可靠性和维护性都是典型的评判目标,所以风险评判标准就是这些单一目标的组合,不同的组合就构成了一个参照区域,而某个组合就是其中的一个参照点。风险评判标准与风险承受能力有关,例如有人认为成本超出10%属于中等风险,可以承受,而有的人认为是高风险,不能承受。个人的风险偏好是风险承受能力的主要影响因素。3总结风险是项目固有的特性,如何及早发现风险、评价风险的大小,确定可接受风险和不可接受风险,是风险管理者亟待解决的问题。
本文标题:软件项目风险的识别与风险的分析
链接地址:https://www.777doc.com/doc-795173 .html