软件项目的风险管理策略
作者: 来源: 文字大小:[大][中][小]
软件项目风险是一种不确定的事件或情况,一旦发生,会对软件项目目标产生某种正面或负面的影响。风险有其成因,同时,如果风险发生,也导致某种后果。举例来说,风险成因可能是需要获取某种许可,或是项目的人力资源受到限制。风险事件本身则是获取许可所花费的时间可能比计划的要长,或是可能没有充足的人员来完成软件项目开发工作。以上任何一种不确定事件一旦发生,都会给软件项目的成本、进度计划、或质量带来某种后果。因此,我们必须完善风险管理策略。
风险情况包括软件项目环境中可能导致项目风险的某些方面,例如,不良的
项目管理,或对不能控制的外部参与方的依赖。软件项目风险既包括对项目目标的威胁,也包括促进项目目标的机会。
风险源于存在于所有软件项目之中的不确定因素。已知风险是那些已经经过识别和分析的风险。对于已知风险,进行相应计划是可能的。虽然项目经理们可以依据以往类似项目的经验,采取一般的应急措施处理未知风险,但未知风险常常是很难管理的。
软件开发组织对风险予以关注,是因为风险会给项目成功带来威胁。对于那些对项目构成威胁的某些风险,如果这些风险与所冒风险的回报相平衡,那么,这些风险可能会被接受。例如,对于可能延期的进度可以采用快速跟进,冒此风险是为了实现更早的完成日期。
有些风险则是一些机会,对于这些风险可能应当努力追求,以便使项目目标受益。要成功完成项目,软件开发组织必须在项目的全过程中贯彻执行风险管理策略thpxb.com。衡量软件开发组织的风险管理策略是否尽责的一个方法是看它是否致力于收集有关项目风险和风险特性的高质量数据信息。
在软件开发过程中,涉及的风险主要包括三类:与软件开发直接相关的工程类风险、与管理相关的开发环境类风险、过程类风险。成功的项目经理关注的是他们的项目成功的关键因素。类似的,要成功地管理项目,我们必须关注风险管理策略的四个主要因素:人、过程、基础架构以及实施。
风险管理策略贯穿于项目的整个生命周期。在项目立项后就应启动风险管理活动。项目经理对项目内部的风险管理负责,可指定项目风险管理策略负责人组织风险管理策略小组进行识别、分析和跟踪处理风险。风险管理过程包括制定风险管理计划、识别风险、分析风险、制定风险应对计划、监控和应对风险、风险管理收尾等5个活动。
其中识别风险、分析风险、制定风险应对计划、监控和应对风险4大活动是在项目的生命周期中将定期或事件触发地重复进行的活动。接下来我们就从这四个方面阐述软件项目的风险管理策略。
风险管理策略一、识别风险
软件开发过程中的风险是已知、未知或不可知的。已知风险是项目中的一个或多个人注意到的。未知风险是哪些项目组的人员在一定条件(机会、提示和信息)下会暴露的风险。不可知风险是指那些甚至于理论上都不可预测的风险。
在风险识别中可以使用的信息收集技术,包括头脑风暴法、dephi法、访谈等。头脑风暴法:头脑风暴法可能是最常用的风险识别手段。其目标是获得一份全面的风险列表,以备在将来的风险定性和定量分析过程中进一步加以明确。
一般由项目团队承担这项任务。在一位协调员的领导下,这些人员产生对项目风险的想法。他们在一个广泛的范围内进行风险来源的识别,并且在会议上公布这些风险来源,让大家一起参与检查。然后根据风险的类型进行风险的分类。
Dephi法:Dephi法是专家们就某一主题,例如工期,达成一致意见的一种方法。该法需要确定项目风险专家,他们匿名参加会议。协调员使用问卷征求重要项目风险方面的意见。然后将意见结果反馈给每一位专家,以便进行进一步的讨论。
这个过程经过几个回合,就可以在主要的项目风险上达成一致意见。De-phi法有助于减少数据方面的偏见,并避免个人因素对结果产生的不适当的影响。访谈法:可以通过访谈资深项目经理或相关领域的专家进行风险识别。项目管理培训
负责风险识别的人员选择合适的人选,事先向他们作有关项目的简要指点,并提供必要的信息,如WBS和假设条件清单。这些访谈对象,依据他们的经验、项目的信息,以及他们所发现的其他有用供方,对项目风险进行识别。
此外我们还可以借由“检查表”的方式来识别风险:从以往类似软件项目和某些其他信息来源中积累的历史信息和知识,可以用于编制风险识别检查表。使用检查表的一个优点是它使风险识别工作快而简单。
它的不足之处在于我们不可能编制一个详尽的风险检查表,检查表的使用者可能会被表中的条目所局限。要注意发现那些在标准检查表中未列出的,而又似乎与某一特定项目相关联的风险。检查表应详细列出项目所有可能的风险类别。
所以,将审核检查表作为每一项目收尾程序中的一个正式步骤,来完善可能风险的清单和风险说明则是非常重要的。
风险管理策略二、分析风险
一般来说,在一个软件开发项目中可能识别出数十个风险,在思考如何应对这些风险之前,我们必须对这些风险展开分析,以确定哪些风险是关键的、容易发生的,即对风险进行优先级排序。这里提供一个比较简易但是非常实用的方法,我们称之为风险的级别,
它是风险发生概率和风险危害性两个参数的乘积。风险危害性指如果风险发生了它会造成多大的危害。可以用0到1之间的小数来量化危害。概率取值可以是0和1之间的任意一个小数,和概率一样,危害也是一个主观值,不可能很精确,因此我们一般取一位小数。
一个风险所造成的影响很可能是多方面的,例如,同时影响进度和成本,一般按叠加的方式取值。
风险管理策略三、制订风险应对计划项目经理博客
识别风险并对风险进行量化分析之后,需要进行风险控制,即制定风险计划并在项目进展过程中按计划开展活动,将风险的综合影响降低至项目可以接受的结果。制订风险计划的第一步是确定风险应对策略,也就是采用什么样的方式来处理风险。
一般有四种风险应对策略:规避、转移、减轻、接受。风险规避:通过变更项目计划,从而消除风险或产生风险的条件,或者保护项目目标免受风险的影响。虽然项目队伍永远不可能消除所有的风险,但某些特定的风险还是可能规避的。
在项目早期出现的某些风险事件可以通过澄清需求、获取信息、加强沟通、听取专家意见的方式加以应对。减少项目范围以规避高风险工作;增加项目资源或时间;采用一种熟悉的,而不是创新的方法;或规避使用一个不熟悉的分包商。这些都可能是风险规避的例子。
风险转移:设法将某风险的结果连同对风险进行应对的权利转移给第三方。转移风险只是将管理风险的责任转移给另一方。它不能消除风险。例如,软件离岸外包可解决不同国家的工程师享受不同的工资待遇。
高成本软件风险被转移到享受高工资的小组。在美国,用子承包方来开发软件可转移高薪
员工管理费用的风险。风险减轻:设法将某一负面风险事件的概率和/或其影响降低到一种可以承受的限度。早期采取措施,降低风险发生的概率或风险对项目的影响,比在风险发生后再亡羊补牢要更为有效。
风险减轻采用的形式可能是执行一种减少问题的新的行动方案。例如,采用更简单一些的作业过程、进行更多的地震试验或工程技术试验、或挑选更稳定的卖方。它可能涉及变更环境条件,以使风险发生的概率降低。例如,增加项目资源或给进度计划增加时间。
风险减轻可能需要进行模型开发,以减少由模型放大所带来的风险。接受风险:这也是应对风险管理策略之一,它是指有意识的选择承担风险后果。觉得自己可以承担损失时,就可以采用这种风险管理策略。例如,经理们期望员工自愿流动的百分比较低。
更换一个入门级工程师的费用,可能与为留住此人而提升他的福利所花费的费用一样。这是的策略是接受经过培训的人员调离项目的风险,付出的代价便是雇用顶替他们的人所花的费用。确定了风险应对策略后,对识别的关键风险可以形成风险计划文档,输出为《关键风险应对表》将其文档化。
文档化后的风险应对计划将是风险跟踪的依据,这份计划也将在项目进展过程中不断更新,补充新发现的风险、删除综合影响小的风险。
风险管理策略四、监控和应对风险
风险计划制定完成后,在项目进展过程中需要对这些风险进行不断的跟踪,按计划采取项目的措施,并监控风险的变化情况。为使风险的跟踪过程更加有效,可以确定一些触发器,以及时采取措施。风险管理策略小组应该确定风险的跟踪和交流机制,
譬如包括:关键风险清单中的风险阈值每周跟踪;里程碑处重新进行风险评估,并将结果记录到里程碑报告中。此外风险管理策略小组的跟踪结果应该形成状态报告,发送给项目经理和相关的人员。
最后,强调风险管理策略的升级机制,因为有很多问题的确在底层或者项目经理一层还是不容易协调或决策的,那么这个时候我们就要积极上报给上一层甚至更高层领导来争取资源。