《软件项目风险管理的研究思路.docx》由会员分享,可在线阅读,更多相关《软件项目风险管理的研究思路.docx(19页珍藏版)》请在第一文库网上搜索。
1、软件项目风险管理研究内容摘要伴随软件产业的迅速发展,软件的规模越来越大,复杂性也越来越高,风险变得愈加难以控制,最终导致软件项目失败的成果越来越常见。怎样对软件项目风险原因进行分析并有效地规避风险,从而致使项目顺利成功是进行软件风险管理的重要课题之一。只有充足地理解和学习软件风险管理的理论知识,同步在实践中不停地积累经验才能有效地进行风险防备和控制,抵达减少风险日勺影响程度和实现利益最大化追求日勺目日勺。本文从分析国内外软件风险管理的发展现实状况入手,详细地按照软件生命周期各阶段将软件项目风险进行分类,并总结对比分析了国外经典软件风险管理模型,同步简介了软件风险管理全过程,同步基于经典软件风险
2、管理模型,提出了改善的软件风险管理模型和措施,并根据自身经验对如今国内企业提出软件风险管理某些提议和意见。关键词项目管理;软件风险;风险管理1 .研究背景伴随经济全球化的不停深入,以信息技术为依托的知识经济初见端倪,各国都在实行信息化带动工业化的发展战略,软件行业成为许多国家的支柱产业,软件业的发展程度从某种意义上体现了该国的综合国力,决定着国家未来的国际竞争地位。软件是一种特殊的逻辑产品,不具有实体的!可见性,它是人通过智力劳动而产生出来、具有特殊性质的复杂事物川。某些调查表明,约日勺软件项目开发超过估计时间,大型项目平均超过交付时间,以上的软件项目开发费用超过预算。软件项目成功的几率要远远
3、低于其他任何工程项目,软件行业面临着所谓的“软件危机二在软件产品开发过程中存在着众多不确定原因,这些原因使得软件项目比其他工程项目具有更高的风险。从学科发展角度来看,软件工程日勺形成得益于人们用工程化思想看待软件产品的开发,软件工程的产生又使得软件项目管理学科应运而生。软件项目管理的出现使所谓的“软件危机”得到了一定程度的缓和和控制。项目管理的目的是在有限资源标注条件下,保证项目时间进度、质量、成本抵达最优化。软件项目管理的重要目的是保证软件产品可以按预期方案交付,同步还要满足顾客需求。软件项目风险管理的目的是要找出导致项目需求不明晰、不能按进度计划及时交付、产品质量存在缺陷、开发费用超支等多
4、种不良后果的风险原因,对风险原因及也许导致的后果和危害进行定性和定量分析,从而为软件项目管理人员等提供有效的风险控制方案和措施,使其对软件项目日勺损失或影响降到最低程度或使决策者可以接受的程度。因此,软件项目风险管理是软件项目管理的重要部分。软件项目风险管理通过近三十年发展,已从理论、措施乃至实践都获得了一定进展。伴随软件工程实践深入和软件企业的不停成熟,软件项目风险管理逐渐成为目前软件工程领域研究的!热点问题,受到广泛关注。2 .国内外研究现实状况2.1 软件项目风险管理理论框架模型研究状况美国学者BarryBoehn1在1989年出版的著作软件风险管理奠定了软件项目风险管理的理论基础。在随
5、即的时间里,伴随计算机技术和软件工程时的深入发展,软件项目风险管理的发展逐渐趋于体系化。下面简要简介几种软件项目风险管理的理论框架模型。2.1.IBoehm和Charette的J风险管理框架Boehin在其著作软件风险管理中将软件项目风险管理分为风险评估和风险控制两大部分,其中风险评估又分为风险识别、风险分析和风险的优先级排序,风险控制又分为风险管理计划、风险处理和风险监控。Boehm和Charette风险管理框架表如下:表1-1Boehm和Charette风险管理框架BarryBoehm的风险管理框架Charette的风险管理框架风险评估风险识别风险分析风险识别风险分析风险估算风险的优先级排
6、序风险评价风险控制风险管理计划风险管理风险计划风险化解风险控制风险监控风险监控在此框架中,风险识别重要指出一种潜在破坏项目成功的风险列表,这个风险列表将作为风险控制的基础。风险分析是指评估每个风险出现的也许性及其影响,鉴定风险的级别。风险优先排序是指按风险影响大小排出一种风险优先级。风险控制是由风险管理计划、风险化解和风险监控构成。风险管理计划是指制定一种应对每个重要风险的方案,同步应保证每一种单独的风险管理计划之间以及与整体项目计划之间相一致。风险化解是指每个重要风险所对应计划的执行。风险监控是指对处理风险的过程进行监控,风险监控还可以包括识别新的风险并将其反馈到正在进行的风险管理过程中。2
7、 .1.2Higuera和Haimes风险管理框架Higuera和Haimes提出的软件项目风险管理框架是美国卡内基梅隆大学软件工程研究所提出日勺风险管理理论体系的一部分。它将风险管理分为风险识别、分析、计划、追踪、控制五个环节,风险管理方式是持续循环的,关键是风险交流,规定在软件项目生命周期所有阶段都关注风险管理的各项活动,即所谓持续风险管理框架模型(CRM)o如下图,持续风险管理框架模型。图2持续风险管理框架模型(ContinuousRiskManagementParadigm)在多种软件项目风险管理理论框架研究中,每一理论体系都具有构造完整、内容完善的特点,并附带有与构造和内容相配套的措
8、施和技术,它们借用运筹学、决策理论等思想、措施和工具,秉承了经典风险管理理论体系的长处,同步又体现了软件项目的某些特点。这些研究成果对于奠定整个软件项目风险管理学科的基础起着非常重要日勺作用。3 .软件项目风险管理基本内容3.1 软件项目风险管理定义软件项目的风险管理更是软件项目管理中的重要内容。大量的!登记表明,实行有效的风险管理是软件项目开发过程中减少损失日勺一种重要手段。软件项目风险管理出目前上世纪年代末,到目前只有三十数年的历程,在软件项目风险管理领域中,人们多是借鉴于工程项目日勺管理措施来处理软件项目开发中出现的风险问题,并且对于软件项目的风险管理概念的理解是来自于其他工程项目的风险
9、管理,并在其基础上有所讨论和改善。因此,软件项目风险管理是指项目管理团体通过风险识别、风险量化和风险控制,采用多种管理措施、技术和工具,对软件项目所波及的多种风险实行有效的控制和管理,采用积极行动,尽量使风险事件的有利后果带来的机会最大,而使风险事件所带来的不利后果威胁降到最低,以至少的成本保证项目安全、可靠的实行,从而实现项目的总目的。3.2 软件项目风险的特点软件项目管理的风险来自于软件项目自身的特点:(1)软件产品不可见。开发的进展以及软件的质量与否符合规定难于度量,从而使软件的管理难于把握;(2)软件B生产过程不存在绝对对的的J过程形式。不同样的软件开发项目应当采用不同样的I或者说是有
10、针对性的软件开发过程,而真正合适的软件开发过程是在软件项目日勺开发完毕才能明了的。因此项目开发之初只能根据项目的特点和开发经验进行选择,并在开发过程中不停的调整;(3)大型软件项目往往是“一次性”的。以往的经验可以被借鉴日勺地方不多。回避和控制软件管理风险的惟一措施就是设置监督制度,进行有效的风险监控和管理。3.3 软件项目风险的分类按照风险的内容,可分为五个方面:(1)社会环境风险:国家政策、新技术发展、自然灾害、国际形势等。(2)技术风险:技术的复杂性、兼容性、承受性以及与其他项目的有关性等。(3)费用风险:成本预算精确性、任务规定明确性、进度和技术原因制约、协议类型和报价制约等。(4)进
11、度风险:项目人员经验、进度原因制约、计划合理性和资源充足性等。(5)管理风险:领导素质、组织构造、研发人员日勺素质、各阶段的协调沟通等。按风险性质分类,可以分为三个方面:(1)己知风险,是通过仔细评估项目计划、开发项目的商业及技术环境、以及其他可靠日勺信息来源(如不现实的)交付时间,没有需求或软件范围日勺文档、恶劣日勺开发环境)之后可以发现的那些风险。(2)可预测风险,可以从过去项目的经验中推测出来(如人员调整,与客户之间无法沟通,由于需要进行维护而使开发人员精力分散。)(3)不可预测风险,它们也许、也会真的出现,但很难事先识别出它们来。一般来讲,软件项目过程是一种不停识别风险、分析风险、计划
12、风险、监控风险和应对风险的过程。一种大型软件的开发大概存在30至40种风险。假如每种风险都需要3至7个风险管理环节,那么风险管理自身就可以构成软件开发过程的一种子项目。一种好日勺风险管理过程体现了组织在风险管理上的知识和经验,这种知识和经验通过组织制定的过程规范得以确定,组织在风险管理基础构造上的投入,往往也会获得理想的回报。4 .软件项目风险应对和监控4.1 软件项目风险应对过程定义风险应对就是处置风险日勺过程。风险无法被完全防止,对于某些风险也无需完全防止。重要的是把风险置于人们的控制之下。风险应对活动重要有两部分内容事前、事中和事后。事前控制重要是减少风险发生的也许性,事后控制则重要是减
13、小风险导致的损失。事中重要是对风险状态的监控,并伴随风险状态0变化而做出不同样0风险反应。风险应对模型如图:应对技巧应对工具风险数据库风险状态可接受的风险减少重复劳动校正行动问题防范图3风险应对过程定义(1)过程控制如同控制风险识别过程同样,项目资源、项目需求和风险管理计划同样约束着风险应对过程。(2)过程输入风险行动计划是风险应对过程时输入。它包括风险应对的目的、约束和决策,记录了选择的途径、需要的资源和同意权利。计划提供了高层次的指导并容许抵达目的过程中日勺灵活性。(3)过程输出风险状态、可接受的风险、减少的反复劳动、校正行动和问题防备是风险应对过程时输出。风险状态是对照风险行动计划所获得
14、或缺乏的进展。汇报风险状态,即是汇报计划的实行成果。可接受日勺风险意思是指你可接受风险后果,甚至是最糟糕的后果。当你在风险应对方面获得足够进展时,项目状态指标就会得以改善。当状态指标回落到可接受范围内时,将触发解除或延缓风险应活动。反复劳动是第一次做某事时没有做对所付出的代价。通过减少反复劳动,不必再次工作,由于你第一次做对了没有挥霍时间。用节省的成本计算减少的反复劳动,需要将劳动成本翻两倍,再加上一般管理费用。校正行动是处理问题所需的活动之一。通过校正行动,可以找到问题时己知处理方案。使用这些过程找出大家普遍能接受的处理方案、然后执行某些活动来处理问题。问题防备发生于防止问题时。防止了问题,
15、便消除了问题将带来的后果,它包括问题发现成本,反复劳动成本和机会成本。我们将问题定义为风险时发生,因此必须同步考虑风险发生的后果。用节省取J成本计算问题防备,合计发现和处理问题的成本、反复劳动的成本、机会成本和风险发生的后果。(4)过程机制机制可以是措施、技巧、工具或其他为过程活动提供构造日勺手段。风险应对技巧、风险应对工具和风险数据库都是风险应对过程的机制。风险应对技巧是对风险应对细节有协助的措施。风险应对工具运用电脑使风险应对技巧自动化,如做原型和模拟。风险数据库包括负责人的姓名和风险应对活动的成果,它还包括重要成果的!完毕日期。4.2软件项目风险应对根据软件风险应对的根据,是软件风险分析
16、过程日勺成果,重要包括如下两个方面:(1)风险管理计划,包括风险应对时目的、约束、决策、资源等。(2)风险登记清单,指风险分析的成果。4. 3软件项目风险应对活动根据风险分析的成果和风险管理成本对制定的项目实行计划和方案进行风险评估,选择风险收益比较小的方案,或按风险收益原则对原计划方案进行修改。从而抵达对风险的事前控制。风险管理对于复杂的软件项目,尚有一种重任务是,协调各管理过程间日勺关系。运用决策理论选择行动方案,对方案进行评估,使首先的风险得到控制与否会引起其他风险。对不同样方案的风险进行评估,选择风险较小的方案。为风险应对方案做作出成本预算。对风险触发事件做出反应,执行风险行动计划,汇报风险行动计划的执行状况,结合风险应