0 引言
软件项目风险是一种不确定的事件或情况,一旦发生,会对软件项目目标产生某种正面或负面的影响。风险有其成因,同时,如果风险发生,也导致某种后果。举例来说,风险成因可能是需要获取某种许可,
或是项目的人力资源受到限制。风险事件本身则是获取许可所花费的时间可能比计划的要长,或是可能没有充足的人员来完成软件项目开发工作。以上任何一种不确定事件一旦发生,都会给软件项目的成本、进度计划、或质量带来某种后果。
风险情况包括软件项目环境中可能导致项目风险的某些方面,例如,不良的项目管理,或对不能控制的外部参与方的依赖。软件项目风险既包括对项目目标的威胁,也包括促进项目目标的机会。
风险源于存在于所有软件项目之中的不确定因素。已知风险是那些已经经过识别和分析的风险。对于已知风险,进行相应计划是可能的。虽然项目经理们可以依据以往类似项目的经验,采取一般的应急措施处理未知风险,但未知风险常常是很难管理的。
软件开发组织对风险予以关注,是因为风险会给项目成功带来威胁。对于那些对项目构成威胁的某些风险,如果这些风险与所冒风险的回报相平衡,那么,这些风险可能会被接受。例如,对于可能延期的进度可以采用快速跟进,冒此风险是为了实现更早的完成日期。
有些风险则是一些机会,对于这些风险可能应当努力追求,以便使项目目标受益。要成功完成项目,软件开发组织必须在项目的全过程中贯彻执行风险管理。衡量软件开发组织的风险管理是否尽责的一个方法是看它是否致力于收集有关项目风险和风险特性的高质量数据信息。
在软件开发过程中,涉及的风险主要包括三类:与软件开发直接相关的工程类风险、与管理相关的开发环境类风险、过程类风险。成功的项目经理关注的是他们的项目成功的关键因素。类似的,要成功地管理项目,我们必须关注风险管理的四个主要因素:人、过程、基础架构以及实施。
风险管理活动贯穿于项目的整个生命周期。在项目立项后就应启动风险管理活动。项目经理对项目内部的风险管理负责,可指定项目风险管理负责人组织风险管理小组进行识别、分析和跟踪处理风险。风险管理过程包括制定风险管理计划、识别风险、分析风险、制定风险应对计划、监控和应对风险、风险管理收尾等5个活动。
其中识别风险、分析风险、制定风险应对计划、监控和应对风险4大活动是在项目的生命周期中将定期或事件触发地重复进行的活动。接下来我们就从这四个方面阐述软件项目的风险管理策略。
1 识别风险
软件开发过程中的风险是已知、未知或不可知的。已知风险是项目中的一个或多个人注意到的。未知风险是哪些项目组的人员在一定条件(机会、提示和信息)下会暴露的风险。不可知风险是指那些甚至于理论上都不可预测的风险。
在风险识别中可以使用的信息收集技术,包括头脑风暴法、dephi法、访谈等。头脑风暴法:头脑风暴法可能是最常用的风险识别手段。其目标是获得一份全面的风险列表,以备在将来的风险定性和定量分析过程中进一步加以明确。
一般由项目团队承担这项任务。在一位协调员的领导下,这些人员产生对项目风险的想法。他们在一个广泛的范围内进行风险来源的识别,并且在会议上公布这些风险来源,让大家一起参与检查。然后根据风险的类型进行风险的分类。
Dephi法:Dephi法是专家们就某一主题,例如工期,达成一致意见的一种方法。该法需要确定项目风险专家,他们匿名参加会议。协调员使用问卷征求重要项目风险方面的意见。然后将意见结果反馈给每一位专家,以便进行进一步的讨论。