
介绍了软件项目风险管理的重要性,探讨了软件项目风险管理的主要过程和步骤以及常用的工具和方法,详细分析了软件项目中常见的风险类型和风险成因,最后给出了经典的风险管理模型和常用的风险应对措施.
论文关键词:项目管理;风险分析;风险管理;风险应对;模型
0引言
随着信息技术的飞速发展,软件产品的规模也越来越大,各软件企业在开发活动中都为了使软件项目能够按照预定的成本、进度和质量顺利完成而进行有效的分析和管理.但因软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证,加之软件系统本身的结构和技术复杂性等原因,造成了开发过程中存在某些“未知量”或“不确定因素”,这必然给项目的开发带来一定程度的风险,可能会使项目计划失败或不能完全达到预期的目标.
软件项目都存在着这样那样的风险,软件项目风险管理是指对在软件开发过程中所遇到的预算和进度等方面的问题以及这些问题对软件项目的影响进行分析,积极寻求风险应对方法,做好风险管理计划.
软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现.如果在进行软件项目开发时,注重风险分析,实施风险管理,就可以最大限度的减少风险地发生,从而提高项目成功的机会.
目前,国内的软件企业不太关心软件项目的风险管理,结果造成软件项目经常性的延期、超过预算,甚至失败.成功的项目管理一般都对项目风险进行了良好的管理.因此,任何一个系统开发项目都应将风险管理作为软件项目管理的重要内容.总之,对项目风险进行科学、准确的判别,为项目决策层和管理人员提供科学的评估方法,是十分必要的.
1项目风险管理
项目是一系列独特的、复杂的并相互关联的活动,这些活动具有一个明确的目标并且必须在特定的时间和预算内依据规范完成.项目风险管理是指为了最好的达到项目的目标而去识别、分配以及应对项目生命周期内所产生风险的科学与艺术.项目风险管理的主要目的是系统识别与项目有关的风险,评价、管理和改善项目的执行效果.项目风险管理的目标是使潜在机会或回报最大化,使潜在风险最小化.它有影响项目设计和项目基准计划的潜力.
风险管理涉及的主要过程和步骤包括:风险识别、风险量化、风险应对计划制定和风险监控,如图1所示.
(1)风险识别.风险识别在项目的开始时就要进行,并在项目执行中不断进行.也就是说,在项目的整个生命周期内,风险识别是一个连续的过程.软件项目由于其本身的创造性,注定了其风险的复杂性.风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目.风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行.
风险识别的过程如图2所示,风险识别的输入可能是项目的WBS、SOW以及项目相关信息等数据;风险识别的常用方法是建立“风险条目检查表”,利用一组提问来帮助项目风险管理者了解在项目和技术方面有哪些风险,风险识别的输出则是风险列表.此外,还有风险识别问询法(座谈法、专家法)、财务报表法、流程图法、现场观察法、相关部门配合法和环境分析法等其他方法.
(2)风险量化.对已识别的风险要进行估计和评价,风险量化的主要任务是确定风险发生的概率与后果,风险评价则是确定该风险的经济意义及处理的费用/效果分析,常用的方法有:概率分布、外推法和多目标分析法等.它涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程.风险量化的基本内容是确定哪些事件需要制定应对措施.
(3)风险应对计划制定.针对风险量化的结果,风险应对计划根据风险管理计划、风险排序和风险认知等依据,采取风险控制、风险自留和风险转移等方法,从而为降低项目风险的负面效应制定风险应对策略,得出风险应对计划.
(4)风险监控.风险监控,包括对风险发生的监督和对风险管理的监督,前者是对已识别的风险源进行监视和控制,后者是在项目实施过程中监督人们认真执行风险管理的组织和技术措施.对涉及整个项目管理过程中的风险进行应对.该过程的输出包括应对风险的纠正措施以及风险管理计划的更新.
总之,风险管理的每个步骤所使用的工具和方法详见表l:
2软件项目中的风险管理
2.1软件项目中的风险分类及成因分析
软件项目的风险主要体现在以下四个方面:需求、技术、成本和进度.软件项目开发中常见的风险有:
(1)需求风险.需求风险的形成,可以从三方面进行分析:首先是由于应用部门的介人与参与程度不够,考虑需求往往从部门或局部的角度出发;其次是项目组对需求的调研目标不明晰,分析不透彻,缺乏有效的需求变化管理所造成的.这大都是因为从事软件开发的都是“高科技人员”,都具有“从专业或学术角度出发”的特点,而往往忽视了对业务知识的深入了解,不能很好地理解甚至是误解客户的需求;第三,是由于缺乏与决策层进行深层次的交流,难以掌握企业的发展趋势,对需求的延伸性不明确.这些需求不确定性的风险,都可能会造成大量工作“跑题”浪费,甚至是到项目都快要完成时,依然出现应用部门对系统提出一些基本的业务需求,或是软件功能实现了,却发现实际业务已发生了变化,导致软件失去了应有的价值等,使时间和成本的投入成倍增长,甚至是系统无法正常投入使用.
(2)计划编制风险.计划编制风险主要体现在:计划是优化的“最佳状态”,但计划不现实,处于“期望状态”;计划、资源和产品定义全凭客户或上层领导口头指令,并且不完全一致,缺乏翔实的书面计划;计划基于使用特定的小组成员,而那个特定的小组成员其实指望不上;完成目标日期提前,但没有相应地调整产品范围或可用资源;产品规模(如代码行数、功能点以及与前一产品规模的百分比等)比估计的要大等.
(3)组织和管理风险.组织和管理风险大都是由于项目经理或管理人员缺乏项目管理知识,对项目的工作范围不明确,对总体计划、阶段计划的作用认识不足,对项目的风险估计不足,而造成计划与控制脱节,无法进行有效的项目进度管理;而且,由于项目管理人员的协调管理能力不足,执行力度不够,使得项目协调成本和时间成本大大增加,从而造成工作延误等.
(4)人员与开发环境风险.人员风险主要体现在缺乏激励措施,士气低下,开发人员和管理层之间关系不佳,导致决策缓慢,影响全局,从而降低了生产能力;项目后期加入新的开发人员,需进行培训并逐渐与现有成员沟通,从而使现有成员的工作效率降低;不适应工作的成员没有调离项目组,影响了项目组其他成员的积极性;由于项目组成员之间发生冲突,导致沟通不畅、设计欠佳、接口出现错误和额外的重复工作等.开发环境风险主要有:开发工具未及时到位或不如期望的那样有效,开发人员需要时间创建工作环境或者切换新的工具;新的开发工具的学习期比预期的长,内容繁多;设施拥挤、杂乱破损、未及时到位或者虽到位,但不配套(如没有电话、网线、办公用品等).
(5)设计技术和实现过程风险.设计技术风险可以直接导致项目失败.选择没有成功的案例或不熟悉行业业务的开发商;项目的目标、范围超过了项目组的实现能力;采用不熟悉或是欠成熟先进的开发工具、不符合行业特点的数据分析模型;设计质量低下,分别开发的模块无法有效集成,需要重新设计或制作;一些必要的功能无法使用现有的代码和库实现,开发人员必须使用新的库或者自行开发新的功能;代码和库质量低下,导致需要进行额外的测试,修正错误,或重新制作等,这都无疑会使项目处于毁灭性的风险之中.过程风险主要有前期的质量保证行为不真实,导致后期的重复工作;太不正规(如缺乏对软件开发策略和标准的遵循),导致沟通不足,质量欠佳,甚至需要重新开发;过于正规(如教条地坚持软件开发策略和标准),导致过多耗时于无用的工作等.
(6)客户与产品风险.客户风险主要表现在:客户的意见未被采纳,造成产品最终无法满足客户要求,要求重新设计或重做;客户没有或不能参与规划、原型和规格阶段的审核,导致需求不稳定和产品生产周期的变更;客户答复的时间(如回答或澄清与需求相关问题的时间)’以及决策周期比预期长;客户提供的组件质量欠佳,导致额外的测试、设计和集成工作,以及额外的客户关系管理工作.产品的风险主要表现在:开发额外的不需要的功能或依赖正在开发中的技术,从而延长了计划进度;严格要求与现有系统兼容或与其他系统(不受本项目组控制的系统)相连以及矫正质量低下的不可接受的产品,从而导致比预期更多的无法预料的设计、实现和测试工作等.
2.2常见的软件项目风险管理模型
针对软件项目中的风险管理问题,不少专家、组织提出了自己的风险管理模型.常见的主要风险管理模型有:连续风险管理模型(CRM)、Boehm模型和软件工程风险模型(SERIM).
(1)SEI的连续风险管理模型(CRM).SEICRM模型的风险管理原则是不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性.CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:风险识别、分析、计划、跟踪、控制.
(2)BarryBoehm模型.Boehm模型的思想核心是:10大风险因素列表.针对每个风险因素,都给出了一系列的风险管理策略.在实际操作时,Boehm以lO大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这lO大风险因素的解决情况进行总结,产生新的lO大风险因素表,依此类推.
Boehm模型的基本形式可描述为:RE=P(UO),IcL(UO),其中RE表示风险或者风险所造成的影响;P(uo)表示令人不满意的结果所发生的概率;L(uo)表示糟糕的结果会产生的破坏性的程度.
(3)软件工程风险模型(SERIM).SERIM模型要求从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等.它还提供了一些指标和模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力.
2.3常见的风险应对措施
风险分析活动分析的目的在于建立处理风险的策略.而风险规避的最好方式是把风险控制在项目启动阶段,把损失减小到最小程度.常见的风险应对措施有:
(1)建立畅通的沟通渠道和沟通策略.需求的不确定性风险很大程度上是由沟通不畅引起的.因此,在需求调研阶段,要多和应用部门沟通,了解他们真正的需求,最好能将目标系统的模型向应用部门演示,并得到反馈意见,直到双方都达成共识,形成双方认可的验收方案和验收标准,并做好变更控制和配置管理,尽量降低需求不确定性风险.
(2)配备高素质的项目管理人员.最好是具有丰富的项目管理经验,或是经过系统的项目管理知识训练的人员来担任项目经理,通过制定有效的项目管理计划,并认真执行落实,提高项目的可控性.同时,风险不是静止的、一成不变的,它会随着项目状况的变化而变化,因此,风险管理必须被作为一个日常的正式活动列入项目工作计划,成为项目管理人员的一个重要工作.
(3)建立一支协作高效的项目团队.技术部门有技术,业务部门有需求,因此,项目组中不仅要有开发商和技术部门的参与,更要有应用部门的参与,从而形成一个合作的项目工作团队,共同理解企业的战略规划和业务发展,从整体全局的角度,提出有效的信息化需求,共同研讨项目进展中出现的问题,共同控制项目进度,共同为项目质量把关.
(4)制定科学的风险管理计划.从风险管理的角度对项目规划或计划进行审核,建立“风险清单”,对每个可能存在风险的表现、范围、时间做出尽量准确的判断并对风险进行监控,提前做好应对准备.如针对需求风险,要制定相应的需求变更控制;针对技术风险,要安排核心技术人员全程参与开发等.
(5)选择合适的开发技术.虽然在系统设计时需要考虑新技术的发展和技术的先进性问题,但“最好的不一定是最合适的,最合适的才是最好的”,如果项目组的人员对所需开发的技术不熟,在满足业务需求的前提下,尽可能采用熟悉的技术来减轻项目在成本或进度方面的影响,也可以事先进行培训来减轻对项目的影响,以避免因技术瓶颈导致的项目失败.
3结束语
软件项目管理从某种意义上讲,就是风险管理.在项目风险管理中,存在多种风险管理方法与工具,软件项目管理只有找出最适合自己的方法与工具并应用到风险管理中,才能更好地适应快速而又无序变化的商业环境,才能尽量减少软件项目的风险,以确保在规定的预算和期限内更好地完成软件项目,从而促进项目的成功.
软件项H的有效管理,对项目的成败具有至关重要的作用。软件项目的风险体现存些方血,如何回避这些风险,存本文中进行了探讨,最后指出建立合理的管理流程,对软件项目的管理来说,是非常重要的。 论文关键词:软件项目:管流程;风险分析 0引言 软件项目管理的提出是在2O世纪70年代中期的美国,当时美国国防部专研究了软件开发不能按时提交,预算超支和质量达到用户要求的原因,结果发现70%的项目是因为管理不善...
数字程控调度机是煤矿企业生产调度的一个重要组成部分,显得及其重要。一旦发生故障,将使企业调度通信暂时陷于瘫痪状态,所造成的经济损失无法估量,而且其对煤矿生产安全潜在的威胁也无法预计。因此,加强对数字程控调度机的维护就显得十分重要。本文介绍了数字程控调度机的维护特点、硬件和软件维护以及数字程控调度机工作中其它注意事项,简述了数字程控调度机在企业生产调度通信中的重要性,对数字程控调度机实际生产运行维护...
主要介绍利用ASP技术设计和开发安阳钢铁网站,如何进行网站动态设计,以便于网站的维护与更新,并且体现了网站可更新性、可兼容性、可发展性的设计理念。 随着互联网技术的不断革新与发展,给全球经济带来新的革命,中国正在以迅捷的速度建立自己的互联网环境,随着这种环境的逐步形成,企业已经意识到网络对其本身的影响,从而纷纷建立起企业形象和商业宣传类型网站。主要是为了全面展现企业的整体理念,介绍公司的业务和宣...
随着互联网的广泛应用,网络信息安全问题越来越受到人们的关注。本文分析了目前网络信息安全领域存在的多种安全问题,提出了实现网络信息安全的防范措施。1引言随着Internet的迅猛发展,网络上各种新业务也不断兴起,比如电子商务、网上银行、数字货币、网上证券等,使得工作、生活变得非常方便,但病毒侵虐、网络犯罪、黑客攻击等现象时有发生,严重危及我们正常工作、生活。据国际权威机构统计,全球每年因网络安全问题...
由校园网运行和信息安全问题,提出加强校园网管理,提高教师和学生信息安全意识。并对具体的网络管理实施方法和信息安全保护措施进行探究和实践。 一、引言 随着校园网络建设的不断发展,学院在教学、管理、科研以及对外信息交流等多方面对校园网的依赖性日渐增强,以网络的方式来获取信息、存储信息和交流信息成为学院教师和学生使用信息的重要手段之一。然而,就目前的网络运行状况来看,校园网信息安全问题日益突出,网络...
随着计算机网络的迅猛发展,网络已经进入了千家万户,与此同时网络信息安全必然成了一个不可忽视的环节。上海交通安全信息网为广大市民提供交通安全信息、违蕈查询、邮件等多项服务,本文对此平台做了信息安全方面的研究,已经实际运用并取得了良好的效果。 论文关键词:网络信息安全防火墙负载均衡 1引言 随着计算机和电子通讯技术的飞速发展,网络的应用越来越广泛,国内政府部门都不约而同地意识到利用网络传递信息可...
本文介绍了研制《地理信息系统原理及应用》多媒体教学软件的必要性以及软件设计思路及开发过程,着重阐述了该教学软件的特色和教学效果。 一、引言 《地理信息系统原理及应用》是测绘工程、土地管理专业方向的专业课。作为“3s”之一的地理信息系统(GIS)是以空间数据库为基础,在计算机软硬件环境的支持下,对空间相关数据进行采集、管理、操作、分析、模拟和显示,适时提供空间和动态的地理...
摘要:加强通信网建设研究,需要更新思维、注重效能、讲求效益、加强管理。关键词:民航通信网;工程建设;维护手段;新标准随着新技术、新设备、新手段的广泛运用,民航通信网的建设水平、发展速度、建设规模还不能完全适应信息技术发展的要求,不能完全满足信息化发展对民航通信保障的要求。对此,我们必须加强通信网建设研究。一、更新思维,确立工程建设的新模式目前,国内电信事业发展迅猛,数字化、高速率的通信网已经覆盖全...
持续集成是极限编程12个基本原则之一,正在被越来越多的团队所采用。软件项目管理涉及到九大知识领域,贯穿于软件过程的始终,目的是为了让软件项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。持续集成这种软件开发实践,对于软件项目管理的各个领域的管理有着积极的作用。 一、引言 软件项目经理不但要用管理知识管理整个项目.还...
本文提出了一种适用于IEEE754-1985标准的浮点数除法器的设计体系。本文的除法器体系基于NewSvoboda-Tung除法算法原理,采用基数为8的MROR(maximallyredundantmaximallyrecorded)符号数位集实现。在NST除法器中,被除数和除数都必须经过预处理。本文采用了一种预处理的硬件设计方案,该方案的时间复杂度为一个固定的常数(不依赖于除数数位的长短)。在除...
影响因子:1.730
影响因子:0.000
影响因子:4.360
影响因子:0.740
影响因子:0.000
影响因子:0.931
影响因子:4.380
影响因子:0.000