抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

敏捷风险管理

2009 年 2 月 01 日

风险管理包括风险评估、舒缓风险影响以及监控风险。很多敏捷用家相信敏捷开发项目风险管理过程跟传统项目差不多,虽然这过程在敏捷的内容中较为轻盈,但是在找寻、过滤、优先化以及制造解决方案上的步骤跟传统项目中很接近。

Mike Cottmeyer 提出以敏捷开发去识别和舒缓风险影响更为有效,他指出:

敏捷开发方式之所以能有效管理风险因为风险管理过程建立在我们执行项目的结构上,这隐含的意思就是风险在项目中无处不在,风险清单不能包括所有风险,也不 能透过团队会议和定期的风险评估来减轻风险,风险处理必须是不能抽离的思想,我们减轻风险的策略不是处于项目以外,而是影响着如何规划和安排工作的本质。

他把风险分成三类

  • 业务风险 – 涉及项目付运能否带来它所预期的价值
  • 技术风险 – 涉及技术方案在若干时间及资金下的可行性
  • 后勤风险 – 涉及人与其他基建之间的假设

根据 Mike 所说,敏捷开发的本质就是要求频密的付运、定时的检察和调整,这本身已经是风险管理。

但是也有人认为敏捷开发不是固有地处理风险。

Jurgen Appelo 认为敏捷项目经常缺乏风险的关注。

他认为,

Prince2、PMBOK、CMMI 都有包含风险管理的部份,但敏捷方法的书本上就很少明确地看到风险管理的内容,对此我感到莫名其妙。

他同時指出,项目经理经常埋头在项目里,而忽略了整体宏观形势,这导致严重缺乏对风险管理的关注。

另外, James Shore 认为有效的风险管理能帮助团队作出更实在的承诺,他建议使用风险倍数(risk multiplier)和 Burn-up 图来管理项目有关的风险。

风险倍数包括常见的风险,例如人事变动、要求改变、工作上的障碍之类,这些风险倍数让你更准确地于设定日期和估计需要多少故事点数(story potints)。

James 建议在团队使用较为精确的开发过程(相对于风险较高的开发过程,可参考James 网站上这例子),而且速度(velocity)固定、每个故事都在迭代完结时做到"Done Done"(不仅完成客户需要的功能,而且没留下支持团队的工作,原文出至于James 的网站,亦可参考" The Power of Done "一文)的情况下使用以下的风险倍数。

风险倍数

机会率 精确的开发过程所使用的倍数 內容 10% 1 几乎没可能 50% 1.4 伸延目标–只得一半机会,有机会再去完成 90% 1.8 几乎可以成事的承诺(这些倍数来至 DeMarco 和 Tim Lister 的 RISKOLOGY 模拟器(详文可参考「与熊共舞」一书)以及 Todd Little 的分析数据

这风险倍数使用方式如下:

(假设团队的速度为 14,十个迭代后发布的话,那么当前可运用的故事点数有 140 点)

机会率 能完成的故事点数 內容 10% 140 (140 ÷ 1) 几乎没可能 50% 100 (140 ÷ 1.4) 伸延目标–只得一半机会,有机会再去完成 90% 78 (140 ÷ 1.8) 几乎可以成事的承诺从以上例子中:

让你可以跟项目有关人士和管理人员说:「我们几乎肯定会在发布前完成当中的 78 点,所以我们先承诺完成功能 A、B 和 C,我们有一半机会能完成总共 100 点,所以我们安排功能 X、Y 和 Z 作为伸延目标,完成好 A、B 和 C 之后再去完成他们的。」

所以风险管理在敏捷项目中就如传统项目一样,都是核心部份,重点在于适当的重视、有效地处理而基于这里作出承诺。

查看英文原文 Agile Risk Management

译者附注:

James 的网站有更多关于其风险倍数的内容,亦可参考他所写的"The Art of Agile Development"一书,特别是此文没有包括的 Burn-up 图。此外,风险倍数的使用还有其他注意的地方:

  • 「承诺」背后的意义,值得思考的就是「承诺」到底是什么、管理人员如何理解和使用这里作出的「承诺」。要知道,这些还是机会率,如果最后变成合约,又或者客户拿来争议的「论点」,那么也是没有意思的。
  • 风险倍数的由来,这里的 1、1.4 和 1.8 是如何得出呢?到底又有多适合您的项目情况呢?就连 James 自己的网页上 也有这样一句 “I’m guessing somewhat at how accurately they apply to XP. The most accurate approach is to calculate your own risk multipliers from past project history, but most companies don’t track that data” (我在猜这些数字对极限编程的情况有多准确,最准确的方式还是根据过往项目纪录来计算您的风险倍数,但很多公司根本不会记下这些数据),所以千万不要把这 些数字看成什么魔幻数字。
  • 延续上面这点,如果公司为了提供「承诺」而去收集项目相关数据,这是否对容户有所得益呢?容户为什么要投资金钱给开发公司去收集数据?客户又如何可以知道投资金钱让公司收集这些数据可以有所回报呢?

其他方法如 Prince2、PMBOK 或 CMMI 等对风险管理都有值得参考之处,而跟敏捷有关的独特观点则是减少开发上浪费而没必要的过程和活动,之前在「 Scrum 的风险管理」也有相关的讨论。

还有,要好好管理风险,评估形势的能力很重要,甚至比其方法更重要,例如如何猜量我们是否在"风险较高进行开发"呢?这里其实可以套用 Stacey 模型和 Cynefin 模型来辅助。

2009 年 2 月 01 日 19:223812
用户头像

发布了 21 篇内容, 共 45676 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

用FL Studio基础版制作一首完整的电音

奈奈的杂社

音乐制作 编曲 电音 电音制作 中国电音

连企业业务模式都搞不清楚,何谈研发体系建设?

菜根老谭

研发体系

微前端架构初探

徐小夕

Java 前端 前端开发 微前端 前端进阶

Spring 源码阅读环境的搭建

程序员小航

spring 源码 环境安装 源码阅读 spring 5

接口测试和性能测试的区别

测试人生路

软件测试 性能测试 接口测试

K8S CSI 容器存储接口 (二):如何编写一个CSI插件

silenceper

Kubernetes Kubernetes源码 CSI

区块链版权应用开发,区块链助力版权保护

13530558032

浅谈原子操作

阿里云基础软件团队

内核

极客大学 - 架构师训练营 第十周总结

9527

Java开发利器之重试器

Java老k

Java

当艺术品遇上区块链:金丝楠木艺术品溯源

CECBC区块链专委会

区块链 溯源 艺术品

【2020GET】即构科技蒋宁波:教育行业客户需求的核心是什么?

ZEGO即构

看了 5 种分布式事务方案,我司最终选择了 Seata,真香!

程序员内点事

Java 分布式事务 seata

谁说产品经理和程序员之间不能和平共处?

华为云开发者社区

DevOps 产品经理 用户地图

一口气看完45个寄存器,CPU核心技术大揭秘

程序员架构进阶

cpu 操作系统 寄存器 核心

Linux笔记(二): vim 基本操作

Leo

Linux 学习 前端进阶训练营

区块链可信数据服务平台搭建解决方案

t13823115967

区块链 可信区块链

红外遥控接收发射原理及ESP8266实现

IoT云工坊

人工智能 物联网 esp8266 红外遥控 pwm

淘宝APP高并发架构设计pdf已开源:从架构分层到实战维护,挑战全网

Java~~~

Java 编程语言 高并发 淘宝 高并发系统设计

架构师训练营第十周作业

我是谁

极客大学架构师训练营

Windows环境下如何进行线程Dump分析

Java老k

Java dump

Linux 服务器开发学习路线总结(配图 c/c++ )后台开发、Golang后台开发、后端技术栈

Linux服务器开发

golang Linux 后台开发 后端开发 Linux服务器

实体经济的数智化要塞,为什么是供应链?

脑极体

GitHub 标星 1.3k+,一款超赞的用于字符串处理的 Java 8 库,附带源码分析

沉默王二

Java GitHub 字符串

性能优化:线程资源回收

AI乔治

Java 架构 JVM 性能调优

区块链赋能保险理赔,宁波开启“零感知理赔”试点

CECBC区块链专委会

区块链 保险理赔

原理实践,全面讲解Logstash+Kibana+kafka

996小迁

Java 程序员 架构 面试

Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

比伯

Java 架构 面试 编程语言 计算机

区块链溯源有哪些优势?区块链产品溯源系统搭建

13530558032

LeetCode题解:17. 电话号码的字母组合,回溯,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

一文搞懂所有HashMap面试题

云流

编程 面试 计算机

Study Go: From Zero to Hero

Study Go: From Zero to Hero

敏捷风险管理-InfoQ