《软件项目风险管理的研究思路.docx》由会员分享,可在线阅读,更多相关《软件项目风险管理的研究思路.docx(19页珍藏版)》请在课桌文档上搜索。
1、软件项目风险管理研究内容摘要伴随软件产业的迅速发展,软件的规模越来越大,复杂性也越来越高,风险变得愈加难以控制,最终导致软件项目失败的成果越来越常见。怎样对软件项目风险原因进行分析并有效地规避风险,从而致使项目顺利成功是进行软件风险管理的重要课题之一。只有充足地理解和学习软件风险管理的理论知识,同步在实践中不停地积累经验才能有效地进行风险防备和控制,抵达减少风险日勺影响程度和实现利益最大化追求日勺目日勺。本文从分析国内外软件风险管理的发展现实状况入手,详细地按照软件生命周期各阶段将软件项目风险进行分类,并总结对比分析了国外经典软件风险管理模型,同步简介了软件风险管理全过程,同步基于经典软件风险
2、管理模型,提出了改善的软件风险管理模型和措施,并根据自身经验对如今国内企业提出软件风险管理某些提议和意见。关键词项目管理;软件风险;风险管理1 .研究背景伴随经济全球化的不停深入,以信息技术为依托的知识经济初见端倪,各国都在实行信息化带动工业化的发展战略,软件行业成为许多国家的支柱产业,软件业的发展程度从某种意义上体现了该国的综合国力,决定着国家未来的国际竞争地位。软件是一种特殊的逻辑产品,不具有实体的!可见性,它是人通过智力劳动而产生出来、具有特殊性质的复杂事物川。某些调查表明,约日勺软件项目开发超过估计时间,大型项目平均超过交付时间,以上的软件项目开发费用超过预算。软件项目成功的几率要远远
3、低于其他任何工程项目,软件行业面临着所谓的“软件危机二在软件产品开发过程中存在着众多不确定原因,这些原因使得软件项目比其他工程项目具有更高的风险。从学科发展角度来看,软件工程日勺形成得益于人们用工程化思想看待软件产品的开发,软件工程的产生又使得软件项目管理学科应运而生。软件项目管理的出现使所谓的“软件危机”得到了一定程度的缓和和控制。项目管理的目的是在有限资源标注条件下,保证项目时间进度、质量、成本抵达最优化。软件项目管理的重要目的是保证软件产品可以按预期方案交付,同步还要满足顾客需求。软件项目风险管理的目的是要找出导致项目需求不明晰、不能按进度计划及时交付、产品质量存在缺陷、开发费用超支等多
4、种不良后果的风险原因,对风险原因及也许导致的后果和危害进行定性和定量分析,从而为软件项目管理人员等提供有效的风险控制方案和措施,使其对软件项目日勺损失或影响降到最低程度或使决策者可以接受的程度。因此,软件项目风险管理是软件项目管理的重要部分。软件项目风险管理通过近三十年发展,已从理论、措施乃至实践都获得了一定进展。伴随软件工程实践深入和软件企业的不停成熟,软件项目风险管理逐渐成为目前软件工程领域研究的!热点问题,受到广泛关注。2 .国内外研究现实状况2.1 软件项目风险管理理论框架模型研究状况美国学者BarryBoehnl在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软件项目风险应对活动根据风险分析的成果和风险管理成本对制定的项目实行计划和方案进行风险评估,选择风险收益比较小的方案,或按风险收益原则对原计划方案进行修改。从而抵达对风险的事前控制。风险管理对于复杂的软件项目,尚有一种重任务是,协调各管理过程间日勺关系。运用决策理论选择行动方案,对方案进行评估,使首先的风险得到控制与否会引起其他风险。对不同样方案的风险进行评估,选择风险较小的方案。为风险应对方案做作出成
17、本预算。对风险触发事件做出反应,执行风险行动计划,汇报风险行动计划的执行状况,结合风险应对的效果和风险管理成本对风险行动计划进行修正。最终,软件风险应对日勺输出成果是,更新日勺风险登记册、更新的项目管理计划、与风险有关的协议协议。软件风险应对的目的是风险得到有效的防备、风险指标回落到可接受范围内、校正风险行动计划,积累风险经验。4.4 软件项目风险应对方略和措施风险应对方略包括积极方略和被动方略,被动方略是指当风险不利成果发生后采用的,而积极方略是以防止为主,如前文所说先识别出重要风险项,再制定出风险管理计划,对风险进行化解和监控。采用积极型风险应对方略重要包括四种措施防止、限制、减轻和监控。
18、(I)防止:通过制定风险管理计划,重新规划项目或者变化项目中的某些设计和计划,使某些风险得到防止。(2)限制:对某些无法防止的风险进行约束和限制,使风险只影响到项目的一小部分,以至于不会影响到项目的总目的。(3)减轻:采用某些积极B措施,使得风险发生的时候不利成果降到最低。(4)监控:建立风险监控机制,亲密监控无法防止和控制的风险,防止其发生,当它们发生时立即制定风险应急计划。4.5 软件项目风险监控在项目生命期实行项目管理计划包括的风险应对措施时,应持续对项目工作进行监督以寻找新风险和变化的风险。风险监测与控制指识别、分析和规划新生风险,追踪己识别风险和“观测清单”中的风险,重新分析既有风险
19、,监测应急计划的触发条件,监测残存风险,审查风险应对方略的实行并评估其效力的过程。风险监测与控制过程所使用的技术包括变差和趋势分析,规定使用项目实行过程中生成的绩效数据。风险监控也许波及选择替代对策、实行应急或备用计划、采用纠正措施,或修改项目管理计划。项目资源项目需求风险管理计划场景风险监控度量度量规格 触发器风险状态监控技巧监控工具风险数据库图4风险监控过程定义(1)过程控制如同对风险识别H勺控制同样项目资源、项目需求和风险管理计划同样约束着风险监控过程。(2)过程输入风险设想、阀值和风险状态使风险跟踪过程的输入背景监视那些将导致不如人意的成果日勺事件和状况,以确定风险发生的也许性与否在增
20、长阀值定义了风险发生的端倪。预先定义的值作为警告,体现需要公布告知,执行行动计划风险状态在风险数据库中捕捉实行风险行动的成果。(3)过程输出度量、度量规格和触发器是风险跟踪过程时输出。度量确定大小、数量或容量如用代编行数来度量软件的大小。度量规格是复合日勺度量如软件产量度量规格是每天行编码,它是在计划中非常有用的指南或控制规则。触发器是启动、解除或延缓活动的装置如触发器启动风险行动计划。(4)过程机制机制可以是使过程活动构造化的措施、技巧、工具或其他手段。风险监控技巧、风险监控工具和风险数据库是风险监控过程的机制。风险监控技巧是协助监视不同样步间风险状态的度量和度量规格。风险监控工具将使监控过
21、程自动化。风险数据库包括度量、度量规格和触发器。4 .6软件项目风险监控活动风险监控活动包括两个方面风险跟踪和风险控制。风险跟踪是负责监视和缓和风险的人获得、编辑和汇报风险状态信息的I过程它对有效地实行风险行动计划是十分重要的。风险跟踪时内容包括监控风险状态和采用措施改善风险。在详细的跟踪操作中,风险团体搜集有关风险怎样变化的信息、,用来支持将在下一步控制过程中采用的决策和操作。需要监测的三个重要变化是触发器值风险的条件、成果、概率和影响缓和计划的进展。根据风险跟踪的进展状况,还要编写风险状态汇报,其目的是传达风险状态的变化及汇报缓和计划的进展,以便对风险进行及时控制,从而减少风险己经导致日勺
22、损失或者防止也许导致的损失。风险控制是决策者分析跟踪汇报中的数据、制定决策并实行决策的过程。风险控制接受风险跟踪活动提供的反馈信息风险状态汇报,对比风险管理计划和风险行动计划、风险纠正、风险识别、风险分析和风险计划活动中的偏差。风险控制活动包括分析、决定和执行。风险控制融入项目管理并依赖于项目管理的过程来控制风险。此外,风险控制的各项活动对有效通讯的依赖性非常强,只有保证团体组员之间的通讯及时有效,控制环节才能有效。5 .软件项目风险管理措施的改善本文结合风险识别过程根据按照软件生命周期将软件项目划分为详细的三个阶段,即项目的立项阶段、项目的实行阶段和项目的调试阶段,并对各阶段的风险识别工作做
23、出详细描述。项目的三个阶段如图一所示,风险识别伴伴随整个过程,当项目完毕一种阶段的工作时,顺利进入下一阶段并进行下一阶段的风险识别工作,假如项目在某一阶段碰到问题,则需要再次识别风险,甚至返回到前一阶段或前两个阶段进行风险识别。图5软件项目三阶段(1)项目立项阶段风险识别首先从产品内容和业主方状况两个方面对项目特性进行分析,不同样的项目具有不同样的特性,只有充足理解项目特性才能识别出项目的特定风险。产品内容方面需要理解软件产品的J需求功能、质量规定和市场价格业主方状况方面需要理解企也特性、企业构造等等。另首先,对项目资源进行预算,包括开发人才、组织管理人才、资金、设备等,并将预算和实际状况进行
24、比较,从而发现潜在问题。最终,对项目成本和时间进行估算,将项目成本和时间同软件价格和项目期限进行比较,预估项目的成本和进度风险。项目立项阶段的风险识别实际上就是对项目的初步可行性分析,这一阶段发现日勺问题处理成本最小,同步可以根据初步可行性分析进行该项目的风险管理总计划,从而指导下一步的工作。(2)项目实行阶段和调试阶段的识别风险识别在整个软件项目过程中伴随项目生命周期持续不停发生。进入软件项目的实行阶段后来,根据风险因子识别法的思想,可以从四个方面,即成本、进度、需求和资源,对项目风险进行识别。应用软件项目的风险重要体目前成本、进度、需求和资源这四个方面,同步这四方面风险的管理波及到了项目管
25、理的九大知识领域,因此将这四个方面确定为四个风险原因,通过对这四个风险的J综合分析和评价,可以反应项目的总体风险水平,从而实现对项目进行整体把握。每个风险原因有多种风险因子,一种风险因子也可以与多种风险原因相联,每个风险因子都能对相对应的风险原因产生影响。风险因子又可以分为两个不同样的类型一般性风险因子和项目特定的风险因子。一般性风险因子的定义体现了应用软件项目风险识别中的共性的东西,描述出项目风险的重要方面和重要特性。项目特定风险因子由特殊项目环境决定,只有对目前项目的技术、人员及环境非常理解才能识别出来。6 .软件项目风险管理改善方略风险管理对于软件企业来说关系到企业的生存发展,应当上升到
26、组织的I高度。企业文化是企业的关键,在企业文化的指导下确立适合企业发展的企业战略目日勺。风险管理应当是领导带头、全员参与、持续改善日勺,因此,企业可通过如下几种方面来加以改善。(1)建立规范风险管理区)企业文化。企业文化是组织组员共有的价值和信念体系,这一体系在很大程度上决定了组织组员的行为方式。企业应当建立起规范风险管理的企业文化,让所有员工认识到风险管理是项目管理不可或缺的有机部分并贯穿于整个项目的一直。(2)建立支持有效风险管理的组织构造。企业高层管理人员的支持与重视是进行有效风险管理的先决条件,企业各级管理人员不仅要有强烈的风险管理意识,并且要积极参与到风险管理中去。建立起以企业高级管
27、理人员负责的I风险管理组织架构,制定风险管理过程、确定风险管理工具以及管理监控风险,维护风险管理工具库。(3)建立有效风险管理过程。风险管理过程包括风险识别、风险分析、风险计划、执行计划、跟踪控制、评比更新和培训等几种活动。有效的风险管理过程应是学习型的、持续的和不停进化日勺。软件企业应建立自己的风险管理数据工具库以作为风险管理过程的基础,并在实行中不停地更新与完善。风险管理过程的学习性重要体目前培训活动上,培训的内容包括风险管理技术以及工具的使用,培训可以取材于风险管理数据工具库,使风险管理过程不停地从历史经验中学习过程的各个活动构成了循环,贯穿于项目一直,以保证风险管理过程的持续性过程中日
28、勺每个活动在循环中都和数据库进行交互,不停采集并更新数据,在各个活动的循环中不停加以改善。(4)其他。a.授权。企业的管理者要勇于授权、勇于放权。制定各级、各类人员的风险管理责任制,明确任务和职权,各司其职,亲密配合,做到权责合一,以形成一种高效、协调、严密日勺风险管理系统。b,鼓励。企业的管理者应建立合理的鼓励机制,根据员工日勺风险管理责任制对员工进行考核,作为奖罚的根据,调动员工进行风险管理的积极性。7 .总结近年来,人们开始重视软件风险的I研究,把软件风险纳入软件工程的一种重要研究范围。研究的目日勺是就是探索软件风险的概念、特殊性,风险识别、分析、应对的详细措施和方略,以减少或克服软件风
29、险的危害性,从而提高软件的质量。因此,本文从软件风险管理的理论基础出发,系统性地研究并探索软件风险分析及风险管理的措施和手段。(1)描述了国内外软件项目风险管理的研究现实状况。(2)分析了软件项目风险的特殊性,并对软件项目风险进行分类。(3)论述了软件项目风险管理基本理论,并对经典软件风险管理模型对比分析。(4)论述了软件项目风险日勺过程和措施。包括识别过程、分析过程、应对和监控过程。(5)总结经验,并提出改善软件风险管理模型和措施,提出详细工作中企业应改善的方略。参照文献lShererSA.Softwarefailurerisk:measurementandmanagementM.NewYo
30、rkiPlenumPress,1992.2张珞玲,李师贤.软件项目风险管理措施比较和研究J.计算机工程,2023(3):91-94.3郭捷.项目风险管理.国防工业出版社.2023.21-50.4韩万江,姜立新编著,软件开发项目管理M北京:机械工业出版社,2023:45-69.5严武,程振海,李海东.风险记录与决策分析.经济管理出版社,1999:100-120.6沈建明.项目风险管理.机械工业出版社.2023:144-149.7孟祥睿.软件项目风险管理研究J.经济论坛.2023(7):98-99.8于进.软件项目风险管理中风险分析措施日勺研究J.计算机现代化,2023(8).9张家浩.软件项目管理W.机械工业出版社,2023:112-119.10郭鹏,施品质.项目风险模糊灰色综合评价措施研究J.西安理工大学学报,2023(1).