22/3/14
上海交通大学计算机系1
第十讲 风险管理 第十讲 风险管理
如果你不主动地击败风险,它们就会主动击败你
——Tom Gilb
22/3/14
上海交通大学计算机系2
1. 1. 风险概述 风险概述
A risk is whatever may stand in the way to success or in the way of achieving
major milestones
Success is meeting the entire set of all
requirements and constraints, and satisfying
stakeholder expectations.
22/3/14
上海交通大学计算机系3
1.1 1.1 风险类别 风险类别
Direct risk: the project has a large degree of control
Indirect risk: the project has little or no control
Example:
Resource risks
People, skills, funding,…
Business risks
Competition, ROI, supplier interfaces,…
Technical risks
Unproven technology, uncertain scope,…
Schedule risks
Only 24 hours in a day,…
22/3/14
上海交通大学计算机系4
1.2 1.2 风险来源 风险来源
三种类别的风险: 估计本身的困难带来的风险
以前没有进行过的任务更难估计,因而有效的积累过去完成 任务的信息将有助于降低风险
在计划阶段的假设
在每一个计划步骤中,都有所假设,因而对列出每一假设以 及假设不成立后带来的后果,有助于降低风险
无法预计的事件
需求的变化
高级程序员怀孕离开
所需的硬件可能没有被及时交付
……
22/3/14
上海交通大学计算机系5
2. 2. 软件风险管理 软件风险管理
软件风险
管理过程风险 技术过程风险
项目 过程 产品
22/3/14
上海交通大学计算机系6
2.1 2.1 风险管理基本概念 风险管理基本概念
基本概念 目标:明确定义的目标加上可度量的成功标准界定了可接受的风 险范围
不确定性:未知的因素
损失:如果没有潜在的损失,就没有风险
时间:我们需要时间来预料和防止问题的发生
选择:没有选择,就没有风险管理
制定明智的决策:意识、洞悉和理解风险是我们作出明智决策的 基础
应对风险:风险行动计划
防患于未然:风险管理是减少有代价的重复劳动的主动决策
22/3/14
上海交通大学计算机系7
2.2 2.2 风险管理的基础结构 风险管理的基础结构
制定政策
定义标准过程
风险管理培训
检验一致性
改进实践22/3/14
上海交通大学计算机系8
2.3 2.3 创建风险管理的气氛 创建风险管理的气氛
如果所有项目人员没有重视风险认识,不管使用 什么技术,风险管理将起不到任何作用。
因而,创造一个能够自由讨论风险对项目的影响 的氛围特别重要,那些经常提出负面意见的人可 能更能够在早期发现潜在的风险。22/3/14
上海交通大学计算机系9
2.4 2.4 风险管理技术 风险管理技术
有很多的风险管理模型,但是多数都是类似的。22/3/14
上海交通大学计算机系10
风险识别( identification) 将所有能够影响项目成功执行的风险列出
风险估计( estimation) 对每一个危险的可能性和影响进行评价
风险评估 (evaluation) 将风险进行排序并确定风险规避策略
风险计划 (planning) 构造一个意外计划,如果合适,可以加入到项目任务 结构中,对于小项目,风险管理由项目经理负责,对 于大项目,风险管理可能由全职风险经理负责。
22/3/14
上海交通大学计算机系11
风险控制( Control) 处理项目中的问题并尽量降低问题的影响。
风险监测( Monitoring)
风险定向 (Directing) 和风险职员分配( Staffing)22/3/14
上海交通大学计算机系12
3. 3. 风险识别 风险识别
风险类别 普通风险 (generic risks)
如对需求的误解
关键人员生病
特殊风险 (specific risks)
在风险识别时从下列方面考虑: 应用因素:
应用的特性是一个关键因素,如简单的数据库应用系统,实 时的分布式系统,
应用的规模
对于我们不理解的所
有事物,我们是它们
的奴隶-作家 Verno
n Howard
22/3/14
上海交通大学计算机系13
人员因素
人员的经验和技能显然对项目产生很大影响
成员的满足程度和人员的离开
项目因素
项目及其目标清晰的定义以及所有成员对其有清楚的认识,如果不 能够达到这一点将给项目带来风险
如果没有一个公认的、正式的质量管理计划将给项目带来风险
项目方法
使用正规的项目管理方法将降低风险
但第一次使用某种方法将带来风险
硬件 / 软件因素
在新的硬件 / 软件上开发可能会有高风险
在一种硬件 / 软件平台上开发的软件安装在另一种硬件 / 软件平台 上可能会有风险
22/3/14
上海交通大学计算机系14
彻底改变因素
对原系统进行彻底改变会带来风险,增量式或者渐进式改变将降低 风险
供应商因素
许多依靠外部供应商的支持,那些无法直接控制的供应商将带来风 险。
环境因素
环境改变可能影响项目的成功
如税收法律的改变可能会对工资管理系统的开发带来问题
健康和安全因素
对于软件项目来说一般不是一个普遍问题,但是对于那些用在危险 场合的实时软件来说,也是一个因素
22/3/14
上海交通大学计算机系15
练习 练习
请根据上述各种因素列出工资系统中所有可能的 问题。
应用因素: 开发的系统是否需要与其它系统接口?
不同的解决办法是否有非常大的差异?
人员因素 学院中的人员是否对评价系统或者外部系统有足够经 验?
学院中的职员是否对使用近似的系统有经验?
22/3/14
上海交通大学计算机系16
练习 练习
项目方法 我们能够对该项目使用标准方法吗?
学院是否对该类型的项目建立过程定义?
硬件因素 项目中是否需要购买新的硬件?
是否我们能够在与实际的硬件平台相似的平台上测试 软件包?
彻底改变因素 在系统整个改变前是否能够运行一个替代系统?
主文件是否能够从现存的系统中转化来?
22/3/14
上海交通大学计算机系17
练习 练习
供应商因素 是否我们有从备选供应商处购买软 / 硬件的经验?
我们考虑的供应商是否已经确定?
环境因素 是否有对系统发生影响的学院重组的计划?
是否有一些对项目产生影响的政府法规方面的改变?
22/3/14
上海交通大学计算机系18
3.2 3.2 风险评估过程 风险评估过程
由一个评估小组实施
评估准备
公司
反映与项目关系的组织图表
开发系统的类型
技术专长域
工程师的人数
项目数据
预算
进度
软件大小估计
与政府、主要承包方、联合承包方 等的关系
与系统工程、质量保证等的关系
子承包方和供货商的责任
参与工作中各环节的人数
系统描述
应用描述
系统、软件模块图
主要功能
项目历史
发生在项目中的意外事件
被推迟的技术问题
使工程位于正规的重要决定
当前关心的问题
22/3/14
上海交通大学计算机系19
如何访谈 介绍:欢迎,自我介绍,参与者自我介绍
目的:强调“识别和估计风险”的意义,明确会议的时间
保密性:保证保密
访谈过程:自由发言,避免发言者“本位主义”
结束语:感谢
访谈结束 评估已知风险
评估访谈会话
风险分类
风险输入风险数据库
22/3/14
上海交通大学计算机系20
4. 4. 风险分析 风险分析
风险的可能性 (risk likelihood) :危险发生的概率
对项目的影响程度 (risk impact)
风险的重要性: 风险暴露量
Risk exposure=risk likelihood*risk impact
Risk impact 一般以金额为单位,而 likelihood 以概率 为单位。
22/3/14
上海交通大学计算机系21
如何定量化的评价风险的影响是一个难题。 1. 简单的评分方法
2. 将可能性和影响分为高,中,低级别
3. 将可能性和影响给出 1 到 10 之间的分值(较好)
22/3/14
上海交通大学计算机系22
例子 例子
22/3/14
上海交通大学计算机系23
风险排序 (Prioritizing) 管理风险的策略有两条:
通过降低风险的概率和影响从而降低风险暴露量
建立意外计划
由于管理风险需要一定的成本,因而需要对风险进行 排序。——“人们通常用 80 %的钱解决 20 %的问题”
22/3/14
上海交通大学计算机系24
基于给分的方法计算风险暴露量存在一些问题。并非 R6 的重要 性就是 R5 的两
倍
R2 不一定 比 R5 更重
要
22/3/14
上海交通大学计算机系25
影响分析的其它因素 对风险评估的自信性
复合风险:风险之间有依赖关系
风险的数量:能管理的风险是有限的
行动成本( Cost of Action): 某些风险,一旦识别出来
,可以以很少的代价就处理掉,而有些风险则需要很 大的代价
风险降低杠杆( risk reduction leverage )
22/3/14
上海交通大学计算机系26
5. 5. 风险降低 风险降低
危险预防( hazard prevention ) 提前计划会议能够预防关键人员不能出席会议的危险
概率降低( likelihood reduction ) 通过原型能够降低由于需求不清带来的问题
风险避免( risk avoidance ) 增加估计时间和减少功能能够避免项目超时风险
风险转移( risk transfer ) 比如外包
意外计划( contingency planning )22/3/14
上海交通大学计算机系27
练习 练习
请考虑各个风险的风险降低策略
在编码阶段需求描述的改变 保证原始的需求描述经过了高层的同意并采用一个高 的变更条件。
项目的分析阶段花费的时间超过期待。 仔细估计分析阶段花费的时间。
将活动分割成更小的活动,并对它们重新估计。制定 意外计划。
人员生病影响关键活动。 考虑是否有合适的代理分析人员或者编程人员。
22/3/14
上海交通大学计算机系28
练习 练习
人员生病影响非关键活动。 制定可以从其它项目中召集的人员的值班表
模块编码耗费过长的时间。 仔细检查评估过程并将其与过去的项目相比较。
模块测试显示设计阶段的错误或不足。 使用更直接的方法来校对设计-形式化方法或结构化 预排方法。
22/3/14
上海交通大学计算机系29
风险降低策略 风险降低策略
人员短缺 staffing with top talent
job matching
team building
training and career development
early scheduling of key personnel
不现实的时间和成本估计 multiple estimation techniques
design to cost
incremental development
recording and analysis of past projects
standardization of methods
22/3/14
上海交通大学计算机系30
开发了错误的功能 :
improved project evaluation;
formal specification methods;
user surveys;
prototyping;
early users manuals
开发了错误的用户界面 :
prototyping;
task analysis;
user involvement
22/3/14
上海交通大学计算机系31
需求在后续阶段的变化 : Stringent change control procedures
High change threshold
Incremental prototyping
Incremental development(defer changes)
外部供应组件没有能够及时交付 Benchmarking
Inspections
Formal specifications
Contractual agreements
Quality assurance procedures and certification
22/3/14
上海交通大学计算机系32
外部执行任务没有及时完成 Quality assurance procedures
Competitive design or prototyping
Teambuilding
Contract incentives
软件的实时性无法保证 Simulation
Benchmarking
Prototyping
Tuning
Technical analysis
22/3/14
上海交通大学计算机系33
采用的开发技术过于困难
Technical analysis
Cost-benefit analysis
Prototyping
Staff training and development
22/3/14
上海交通大学计算机系34
6. 6. 风险监控 风险监控
前 10 个风险列表,包括本周排序,上周排序,已上列表周数,风险,风险化解进展
中间检查
风险官员22/3/14
上海交通大学计算机系35
22/3/14
上海交通大学计算机系36
7. 7. 评估进度计划的风险 评估进度计划的风险
使用 PERT(Program Evaluation and Review Tech nique) 评价不确定性的方法
PERT 与 CPM 同时出现,具有类似性
每个活动的持续时间的估计包括: 最可能时间( Most Likely Time ): m
乐观时间 (Optimistic Time) : a
悲观时间 (Pessimistic Time) : b
期待时间22/3/14
上海交通大学计算机系37
练习 练习
计算期待持续时间Activity duration(weeks)
Activity Optimistic (a) Most likely(m) Pessimistic(b) Expected(te)
A 5 6 8 6.17
B 3 4 5 4.00
C 2 3 3 2.83
D 3.5 4 5 4.08
E 1 3 4 2.83
F 8 10 15 10.50
G 2 3 4 3.00
H 2 2 2.5 2.08
22/3/14
上海交通大学计算机系38
通过期待持续时间可以用类似于 CPM 中前向路 径方法计算项目结束日期
问题:此处获得的日期是否为最早结束日期?22/3/14
上海交通大学计算机系39
练习 练习
请计算项目周期Activity duration(weeks)
Activity Optimistic (a) Most likely(m) Pessimistic(b) Expected(te)
A 5 6 8 6.17
B 3 4 5 4.00
C 2 3 3 2.83
D 3.5 4 5 4.08
E 1 3 4 2.83
F 8 10 15 10.50
G 2 3 4 3.00
H 2 2 2.5 2.08
1
2 A
B 3 4
C D
E 5 F
H 6
G
22/3/14
上海交通大学计算机系40
练习 练习
结果可以表达为“我们期待项目在……天完成”1 0
2
3 4
5
6
t=6.17A t=4.00B
t=10.5F
t=2.83E t=4.08D
t=2.83C
t=2.08H
t=3.00G 6.17
4 9
10.5
13.5
Target Event date
number
Standard deviation Expected
date
22/3/14
上海交通大学计算机系41
活动标准偏差 活动标准偏差
活动标准偏差( Activity Standard Deviation)
计算方法: s=(b-a)/6Activity Activity durations (weeks)
Optimistic (a)
Most likely (m)
Pessimistic (b)
Expected (te)
Standard Deviation(s)
A B C D E F G H
5 3 2 3.5
1 8 2 2
6 4 3 4 3 10
3 2
8 5 3 5 4 15
4 2.5
6.17 4.00 2.83 4.08 2.83 10.50
3.00 2.08
0.50 0.33 0.17 0.25 0.50 1.17 0.33 0.08
22/3/14
上海交通大学计算机系42
达到目标的可能性 达到目标的可能性
计算步骤 计算每个项目事件的标准偏差
计算具有目标期限的事件的 z 值
将 z 值转换为概率
22/3/14
上海交通大学计算机系43
达到目标的可能性 达到目标的可能性
项目事件的标准偏差的计算方法与计算项目期待 时间计算时采用的方法是类似的。
两个标准偏差的和是两者的平方和再求平方根。22/3/14
上海交通大学计算机系44
达到目标的可能性 达到目标的可能性
请计算 2 , 4 , 5 事件的标准偏差1 0 0
2
3 4 0.5310
5 10
6 1.2215
t=6.17A S=0.50
t=4.00B
S=0.33 F t=10.5 S=1.17
t=2.83E s=0.50
t=4.08D s=0.25
t=2.83C
S=0.17 H t=2.08 S=0.08
t=3.00G S=0.33 6.17
4 9
10.5
13.5 0.50
0.33
1.17
22/3/14
上海交通大学计算机系45
达到目标的可能性 达到目标的可能性
计算 Z 值Z=(T-te)/s
T :目标日期, te :期待时间, s :标准偏差22/3/14
上海交通大学计算机系46
达到目标的可能性 达到目标的可能性
将 z 值转化为概率不能完成的概率
22/3/14
上海交通大学计算机系47
练习 练习
请计算事件 4 , 5 不能 在 10 周前完成的概率
事件 4 , z=1.89 ,概率:
3%
事件 5 , z=-0.43 概率: 6 8 %
1 0 0
2
3 4 0.5310
5 10
6 1.2215
t=6.17A S=0.50
t=4.00B
S=0.33 F t=10.5 S=1.17
t=2.83E s=0.50
t=4.08D s=0.25
t=2.83C
S=0.17 H t=2.08 S=0.08
t=3.00G S=0.33 6.17
4 9
10.5
13.5 0.50
0.33
1.17
22/3/14
上海交通大学计算机系48
达到目标的可能性 达到目标的可能性
PERT 的优点
基于仿真的方法22/3/14
上海交通大学计算机系49
8. 8. 问题 问题 (issue) (issue) 管理 管理
Issue Identifications
Issue Classifications
Issue Ownership Assignment
Issue Tracking
Exercise:
Postal Service wants to deliver a brand new online package tracking system(PTS)(including package info entry system, package info lookup system, tracking system, package labeling system, package scanning system, package positioning system)
Pick 3 and describe how do you make sure the issues get resolved