通常认为传统项目(以瀑布开发模型为代表的)的开发管理中,风险管理是非常重要的一个环节。在项目进展过程中,风险不但直接影响到项目计划的制定,同时在计划制定后,也一直要不断的识别新的风险和原有风险的跟踪,尽量避免风险转换为问题,从而影响项目使得无法达成预期。
scrum采用迭代开发技术,通过持续集成、自动测试、频繁交付、客户参与等已经极大程度上降低了传统意义上的开发风险,而且从scrum框架上来说,对于风险管理并没有具体的要求,那么在scrum中还需要风险管理吗?如果需要,将采用什么方法来进行管理呢?
我想,在采用scrum方法的开发团队中,对于风险可能极易忽略。至少我所在的团队在风险管理上就认识不足,或者没有找到合适的方法和工具来进行风险管理。对于这个主题的关注,让我寻找到了很多不同的风险管理方法,其中一些对于传统的项目管理也是适用的。
下面是将要关注的方法:
1.风险矩阵(风险热度图)
2.风险概述图
3.风险燃尽图
先看看传统项目管理上被广泛使用的风险矩阵,这一方法也是可以应用在敏捷项目管理中。
传统项目管理中的风险一般通过风险曝光系数,或者风险系数来揭示的,其核心是:
风险系数=风险概率×风险影响
如果对应到CMMI Level3的风险管理看看,则需要满足一系列的管理实践。
1.1.3. SG1 风险管理准备
1.1.3.1. SP 1.1 确定风险来源和类别
1.1.3.2. SP 1.2 定义风险参数
1.1.3.3. SP 1.3 建立风险管理策略
1.1.4. SG2 识别和分析风险
1.1.4.1. SP 2.1 识别风险
1.1.4.2. SP 2.2 风险评估、分类和排序
1.1.5. SG3 缓解风险
1.1.5.1. SP 3.1 制定风险缓解计划
1.1.5.2. SP 3.2 实施风险缓解计划
我一般使用风险识别、风险分析、风险应对和风险跟踪四个活动来进行风险管理。
风险识别:
风险识别常用的方法有访谈法,头脑风暴法和检查清单法。这些方法可以独立使用,也可以综合使用。
1. 访谈法
访谈法是在风险识别中使用的一种信息收集技术,通过访谈资历更深的项目经理或相关领域专家进行风险识别。项目经理选择合适的人选,事先向他们作有关项目的简要介绍,并提供必要的信息,如项目进度和相关假设条件等,由访谈对象提供可能存在的风险分析。
2. 头脑风暴法
由项目经理组织头脑风暴会议,通过项目组成员之间或项目干系人之间的讨论,收集来自各方面的意见和观点,并加以整理、综合,形成有价值的信息,从而发现风险的存在。
3. 检查清单法
项目经理使用《项目风险检查表》进行逐项检查,根据《项目风险检查表》的结果,如果有一项为“是”,则需要进一步的风险识别,即根据《项目风险检查表》中的内容,结合项目实际信息,进行更进一步的分析。
风险来源:
风险类别根据风险来源的不同,细分为如下几种:
- 商业风险
- u 管理风险
- 技术风险
- n 需求开发
- 需求管理
- 分析设计
- 实现
- 集成测试
- 功能测试
- 系统测试
- 交付
- 验收测试
- 风险分析
风险概率一般取0~1中间的数字,风险影响一般会取一个整数来表示。如下示例。
经常使用的会有3分法、4分法和5分法,其概率和影响限定在一定取值范围或者阶段内,使用定性或者定量方式,将风险参数进行排序;如下图,绿色表示低等级风险,黄色表示中等级风险,红色表示高等级风险等等。
风险概率:
风险影响:
风险系数:
风险系数=风险概率×风险影响
如果这样进行风险标记则更加形象:(1和2表示对应的风险条目)
风险应对:
风险应对指采用的风险规避策略的选择和计划。
比如对于高、中、低等级风险的管理要求等等都可以包括在内。一般情况下,低等级风险可以不用特意关注,中等级风险需要规避措施并按月度进行报告,高等级风险不但需要规避措施,并且需要应急措施,同时要按周或者双周进行报告。
风险规避策略一般包括规避、转移、缓解、接受四种。根据风险自身特性和项目特性的不同,可以选择其中的一个或多个作为风险的规避策略
1. 规避
所谓规避,就是通过变更项目计划,从而消除风险或风险产生的条件,或者保护项目目标免受风险影响。虽然项目团队永远不可能消除所有的风险,但某些特定的风险还是可能规避的。如可以减小项目范围以避免高风险的行为;增加资源或者时间,采用熟悉的技术来代替新技术等
2. 转移
所谓转移,就是把风险及其后果转移到第三方。该风险并没有消失,但将管理该风险的责任转由另一方来承担。大多数公司都不愿意在没有现金回报的情况下为其他公司承担风险,因此这种策略会影响到项目预算。转移风险的方法一般包括两种:
购买相关的保险;
通过签订合同把特定的风险转移给相关厂商。
3. 缓解
缓解是设法将某一负面风险事件的概率和(或)其影响降低到一个可以承受的限度。早期采取措施,降低风险发生的概率或风险对项目的影响,比在风险发生后再亡羊补牢要更为有效。对照风险可能的概率和其影响,缓解的成本应当是合理、可接受的。
风险缓解的方法可能有如下几种方式:
风险缓解可能采取一个会降低问题的新行动。例如,采用不太复杂的过程进行更多的测试或选择更为可靠的供货商。
改变条件以降低风险发生的概率。例如增加资源或者放宽工期要求。
采用技术预研来确定最终的方案。
如果不能降低风险发生的概率,则可以针对决定风险严重性的环节采取措施,以减轻风险带来的冲击。例如无法降低故障率时,可以采用备份措施。
4. 接受
这种手段意味着项目团队决定以不变的项目计划去应对某一风险,或项目团队不能找到其它合适的风险预防策略。积极的接受行动包括制定一个应急计划,以备风险发生之用。消极的接受行动不需要采取任何措施,仅让项目队伍在风险发生时,去应对风险。
风险应急:
风险应急指的是,如果规避措施都无效,风险真的发生了,该如何应对。
应急措施适用于项目进行中发生的已识别的风险。提前制订应急计划能够大大减少风险发生时应对行为的成本。如果风险有很大的影响,或所选择的应对策略并不完全奏效,那么就应着手编制一个应急措施。应急措施可能包括分配应急储备,研发备用方案和变更项目范围。
最通常的风险接受措施是为了应对已知风险,建立相应的应急储备,包括一定量的时间,资金,或其它资源
风险跟踪:
定期的风险跟踪和再评估,对于新风险的识别和原有风险的管理都是非常有效的手段。
通常的跟踪可以按周、双周、月、季度或者里程碑等事件处进行。 |