资源描述:
《浅谈软件项目的风险管理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
浅谈软件项目的风险管理【】风险管理是软件项目管理的重要部分,只有进行有效的风险管理才能控制项目的成本、进度。本文分析了软件项目风险的类型,阐述了软件项目风险管理的过程,重点探讨了风险规划中不同策略的应用。 【关键词】软件项目风险管理风险识别风险规划 一、引言 随着计算机技术的不断提高和计算机应用领域的不断扩大,软件产品的规模和复杂度也迅速增加。个体式的软件开发方式已经不能适应软件发展的需求,越来越多的软件开发企业将软件项目管理应用到实际的开发过程中。软件项目开发过程主要依赖人的脑力劳动,劳动成果仅为程序代码和技术文件等这些智力产品,因此,相比其它项目管理,软件项目管理更加复杂。这种复杂性也导致软件项目开发难度越来越大,软件项目的风险也越来越多。 二、软件项目中的风险类型 在软件项目的开发过程中存在着大量风险,这些风险可以归纳为以下几种类型: 1.需求风险。在确定软件项目目标时,往往存在需求的不确定性。主要风险因素有:⑴用户对软件要实现的目标模糊,需求描述不准确;⑵用户调整自身业务流程,导致产生新的需求;⑶在新的需求产生时,缺少有效的需求变更管理过程。如果不及时对需求风险进行控制,将会对软件项目的后期开发埋下潜在的威胁,甚至导致项目的失败。 2.技术风险。随着软件技术的飞速发展,项目组成员的技术可能不能满足软件项目开发的需要,这将影响软件项目开发的成功。主要风险因素有:⑴缺乏对项目组成员进行最新技术的培训;⑵项目组成员对相关技术、方法理解的不一致性;⑶项目组成员相关领域工作经验缺乏。 3.产品规模风险。软件项目的风险是直接与软件产品的规模成正比的。主要风险因素有:⑴产品规模估算方法;⑵产品规模估算的可信度;⑶产品规模与以前产品规模平均值的偏差;⑷产品的用户数;⑸复用的软件数。 4.管理风险。管理风险主要来自于项目组成员的组织有效性,表现在:⑴责任与分工不明确,引起不协调的行为、不合理的工作负担以及工作重点不突出;⑵项目缺乏有效的人员激励机制;⑶ 缺乏时间和人员对产品进行必要的内部评审;⑷项目组成员之间缺乏必要的沟通,导致成员冲突;⑸对用户不切实际的承诺;⑹管理制度不落实。另外,项目经理的领导者素质也是不可忽视的,它也关系到项目的成败。 5.外部风险。很多风险都是由于项目的外部环境或因素造成的。当外部环境或因素改变时,必然造成项目成本预算的偏差,造成项目成本风险的增加。 6.商业风险。商业风险主要体现在:⑴开发的软件不是市场真正所要的;⑵开发的软件不再符合公司的软件产品策略;⑶没有得到预算或人员的保证。 三、软件风险管理过程 软件风险管理是软件项目管理的重要内容。软件项目风险管理过程包括风险识别、风险评估、风险规划、风险监控。 1.风险识别 风险识别就是要识别出项目风险之所在和引起风险的因素,并对其后果做出定性估计。只有识别出这些风险才有可能避免这些风险,并在必要时控制这些风险。在风险识别时常用的方法有:头脑风暴法、德尔菲法、风险条目检查表法、访谈法等方法。 头脑风暴法:将项目组全体成员召集在一起,针对项目可能存在的风险进行自由讨论。项目组成员在主持人的引导下自由发言,不受限制,然后风险管理人员整理发言,得到一份全面的风险列表,以备在将来的风险定性和定量分析过程中进一步加以明确。 德尔菲法:邀请项目风险专家,以匿名的形式参与会议。协调员使用问卷征求重要项目风险方面的意见。然后将意见结果反馈给每一位专家,以便进行进一步的讨论。反复经过几轮意见征求与讨论,就可以在主要的项目风险上达成一致意见,减少数据方面的偏见。 风险条目检查表法:它是最常见也是比较简单的风险识别方法。利用一组提问来帮助管理者了解项目在各个方面可能存在的风险。在风险条目检查表中,列出了所有可能的与每一个风险因素有关的提问,使得风险管理者集中来识别常见的、已知的和可预测的风险。 访谈法:通过访谈资深项目经理或相关领域的专家进行风险识别。负责风险识别的人员选择合适的人选,事先向他们作有关项目的简要说明,提供必要的项目信息。这些访谈对象依据他们的经验、项目的信息,以及他们所发现的其他有用方法,对项目风险进行识别。 风险识别不是一次性的行为,而应有规律地贯穿于整个项目中。 2.风险评估 风险评估是指对识别出的风险做出定量和定性的分析,估计出风险发生的概率和产生后果的严重程度。通过风险评估,项目组成员可以加深对项目自身和环境的理解,尽可能使得项目可能的风险都经过系统的考虑,从而确定开发软件项目的最佳方案。常用的风险评估方法有:概率分布法、层次分析法、访谈、盈亏平行分析法、决策树法等。 概率分布法主要是按照理论或者主观调整后的概率进行评估的方法。每个风险的概率值可以由项目组成员自己进行估算,然后求得一个平均值来表示该风险的概率值。此外,还可以对风险造成的影响进行划分等级,形成一种分析评价矩阵,并赋予一定的加权值来定性评价风险的大小。 3.风险规划 识别风险并对风险进行评估后,为了有效地对风险进行控制,需要制定风险规划,并在软件项目的开发过程中严格执行,以达到将风险的不利影响降至最低。在风险规划中主要应用的策略有:回避风险、转移风险、减轻风险、自担风险。 回避风险:通过变更项目计划,消除风险或风险产生的条件,从而使项目免受影响。 转移风险:不消除风险,而是将风险的结果连同应对的权利转移给第三方。 减轻风险:将发生风险的概率或风险的影响降至可以接受的程度。 自担风险:不改变项目计划,有意识接受风险,考虑风险造成的后果如何应对,制定应对计划或退出计划。 根据不同条件,不同的环境或者不同的问题可以选择不同的策略。可以将风险发生概率高低以及风险后果损失大小,组成了一个四维空间,如图所示: ①概率发生率高,后果损失较小; ②概率发生率比较低,后果损失小; ③概率发生率高,后果损失大; ④概率发生率比较低,后果损失大。 针对四种情况,可以采取不同的策略: ①如果发生概率高,损失比较小,可以采用化减风险或者是风险减轻的措施。 ②如果风险发生概率比较高,后果损失也较大,可以采用回避风险策略。就是设法把工作通过保险、外包或其它方式转移出去。 ③如果发生概率比较低,后果损失较大,设法将风险转移。 ④如果发生概率比较低,后果损失也较小,这种风险适合自己承担。因为它本身不会对目标产生太大影响。 4.风险监控 风险规划制定完成后,在软件项目开发过程中不断对这些风险进行跟踪,按照风险规划采取措施控制风险,将风险造成的影响降至最小,并监视剩余风险、识别新的风险,更新风险规划。 四、结束语 在整个软件项目开发过程中,风险是无处不在的,我们无法完全避免风险,但是可以借助风险管理的方法与工具有效地管理风险,这样才能尽量地减少风险,保证软件项目在规定的预算和期限内达到预期的目标。 然而,不少软件开发企业忽视风险管理,缺乏风险意识,造成软件项目经常延期、超出预算,或者失败。作为软件开发企业,应当加强风险意识,运用科学的方法来进行风险管理,建立适合企业自身的风险管理机制,长期有效地在软件项目的开发过程中加以实施,以保证软件项目开发顺利完成。 【