Why:为什么要讨论敏捷项目风险管理

学习Scrum Guide的方法论,可以比喻为在游泳池里面练习游泳。而运用Scrum Guide为企业在现实市场大潮中的潮起潮落中用好和解决实际项目问题确为何那么困难。总结起来因为有很多不被Scrum Guide所描述的部分其实却是非常重要的。

比如,敏捷项目风险管理,就是其中之一。
其实,敏捷的节奏性和迭代性使其非常适合于管理产品开发和相关项目中常见的各种风险。敏捷实践所带来的好处和价值不容置疑,我们不能因为它的某些缺失,而完全放弃掉,这样同样也会放弃掉敏捷所带来的好处。而是将其他的优秀管理实践结合到敏捷管理中,同时保持敏捷本身的原则不变。如何正确的将风险管理纳入 敏捷项目管理,又不会破坏敏捷本身的优势,正是此文要探讨。

传统方法假设需求是定义明确和稳定的,同时风险也是可预知的,在这种条件下风险可以被传统方法所捕捉和建模。然而敏捷模式下(迭代性和快速变化)对传统的风险识别方法来说是很大的挑战。

为了有助于应对不确定性和获得预期结果,敏捷模式下的方式是这样的:

  • 用引导工作坊、敏捷建模AM进行需求理解和细化
  • 用原型设计、架构刺探实施探索式设计方法
  • 用增量的方式交付解决方案

这一点在高度创新的解决方案中尤其明显。在这种模式下,客户和交付团队既要相互协作,以反复确定最终解决方案的范围和内容,同时又要应对上行和下行风险。

  • 上行风险类似于通过持续不断的交付,不能扩大市场占有率,并获得更多的业务营销增长的风险。
  • 下行风险类似于交付物无法实现、不能成功交付、没有达到客户预期,失去客户,最终失去市场。

然而,遍寻敏捷文献,贯穿着一种明显的倾向,就是一贯的完全专注于下行风险,而没有考虑到机会的开发和利用。这种观点单一视角的认为,风险必须需要被考虑用来暴露潜在的消极后果。此外,还有一种盛行的观点认为,有敏捷就够了,因此没有必要更明确地关注风险的识别、评估、处理和监控。

尽管如此,还是有一些方法论,例如基于动态系统开发方法(DSDM)的敏捷 项目管理(AgilePM)采纳了与风险社区(Risk community)实践较为一致的风险管理方法。此外,敏捷社区(Agile community)越来越多的人认识到(就不确定性而言的)风险和学习之间的关联。

What:敏捷风险管理实践都有哪些?

在现实中,风险可能是微妙而复杂的,缺少经验的人难以对其进行识别和管理。不论选择哪一种敏捷方法,都需要敏捷风险管理以解决以下问题:

  1. 识别项目中的威胁和机会,以平衡期望的回报和追求回报过程中的风险。这不仅需要对项目中的风险偏好和承受能力有一个彻底的了解,还需要对各个团队成员的风险倾向以及社会文化因素对风险管理的影响有所认识。
  2. 基于风险暴露(敞口)并通过与敏捷实践相一致的方式辨识适当的风险应对策略,并对风险应对策略进行优先级排序,例如,接受、缓解、利用。

敏捷对传统项目管理 风险识别实践的借鉴和移植,可以专注于透明化,可视化,信息共享,权责共享,自组织。

敏捷实践中,对 风险应对策略有:

  1. 在Product Backlog中纳入风险应对的相关任务。
  2. 使用风险缓解看板,风险缓解看板是一种计划工具,其中各种活动在代表不同阶段的各泳道之间移动,这些泳道分别对应计划、进行中、已完成。
  3. 用户故事地图(后面还会提到)。

能够通过对风险的监控判断风险是否被有效和高效的方式管理。这也包括意识到迭代层的残余风险,以及这些残余风险如何影响项目的整体风险。

因此,无论以何种形式出现, 敏捷风险管理都是敏捷项目治理的基础。在敏捷环境下,敏捷风险管理可以理解为推动风险的可视化,确保与风险相关的集体所有权和问责制,并在往往是按以人为本的原则建立的环境中为知情决策提供支持(例如,集体主义、自组织和自我授权)。

虽然敏捷实践者常常能说出他们基于什么在工作(例如,用户故事)、适用哪些质量标准(例如,“ 已完成”的定义),然而他们很少能够说清楚他们的工作对整体项目风险有何影响,或者他们为风险管理做出了何种贡献。

为了保证团队异质性、高效反馈回路和精益决策的价值不被侵蚀,将成熟的风险管理技术集成到敏捷项目需要谨慎。因此, 有必要采用与敏捷宣言中的偏好和原则相一致的风险管理方法,而不是简单地将传统的风险实践嫁接到敏捷过程。事实上,经验表明,使用通常存在于敏捷项目中的工件(例如,Product backlog或Kanban),这是可能实现的。

When:什么时候实施敏捷项目风险识别?

风险管理可分为如下不同的阶段:

  • 识别
  • 评估
  • 处理
  • 监控

那么在敏捷实践中什么时候,又如何正确实施?
敏捷项目的节奏表明,风险的识别和评估以及风险措施的制定应一起纳入迭代计划。在以产品为导向的方法中(例如,Scrum,XP),这相当于 Sprint 计划;然而,在以项目为中心的方法(例如,AgilePM),这应该在每个时间盒(即,以启动和规划活动开始、紧随执行工作并以回顾结尾的结构化和固定时间段)的起点发生。此后,风险的处理和监控可以纳入迭代层的日常实践。

传统和敏捷项目风险管理之间的一个主要区别是,风险的所有权由项目团队成员以类似于用户故事(即敏捷需求)和相关任务分配的方式来确定。这就将风险管理者的传统角色转换为一个确保风险管理任务被关注和被实施的角色。这些功能可以很容易地通过现有的敏捷角色(例如,Scrum Master,DSDM 项目经理)承担。

风险识别与评估

由于风险和后果经常被混淆,风险的识别往往比人们想象的困难。例如,假设有一个将 Web 应用程序从物理基础架构迁移到一个虚拟基础架构的项目,其中一种担忧是该应用程序在迁移后是否仍然能被访问。许多人可能认为 Web 应用程序的不可用性是一个项目风险,但这实际上是失败迁移的后果。真正存在于不确定性中的风险是首先导致了web应用程序的不可访问(例如,关于虚拟基础架构系统设置是否正确的疑问,或者 Web 应用能否通过域名系统 [DNS] 寻址)。 风险和后果之间的这种混淆是特别有害且不易被察觉的,因为它会对风险管理活动造成误导。

鉴于围绕风险认识的微妙细节,敏捷团队的最好技巧之一是基于“是什么-为什么”的实践(图 1 )。这就需要一个小组头脑风暴会议,以发现项目可能出现的风险问题,随后分析每件事情为什么可能会发生。前者识别后果,后者涉及风险。事实上,在讨论为什么一个事件可能会发生时,听到关于不确定性的明确陈述,这种情况并不少见。例如,在前面提到的迁移示例中,可以对 Web 应用程序的不可访问性(是什么)进行进一步分析,以揭示各种各样的风险(为什么),例如,虚拟服务器的配置或 DNS 条目的正确性,从而能够识别有意义的对策。这种方法的优点在于它的简单,特别是对于那些由于更长于多面手技能而疏于专家级风险管理实践的团队而言。此外,由于业务和技术多种多样,常见于敏捷团队的多样性可以视为寻找可能的风险的一项优势。但是,举行这类讨论会时,不要专注于纯粹的消极事件(例如,通过询问什么可能出错),而要保持讨论的开放性,以发现该项目可利用的机会。

因此在敏捷风险管理实践中,我们更多的应该关注于:
Oppotunity replace the Negative result—— 在“消极结果”中看到“机会”。

根据传统实践,风险应被记录在风险登记簿中。然而,该工件必须始终保持可见性,其中的风险所有权属于团队成员,并与用户故事或其他敏捷项目任务一致的方式进行维护。这可以通过将风险登记簿放在所有团队成员能够访问的地方、并鼓励他们尽可能经常和尽可能早地提供反馈(例如,更新、补充、修正)来实现。

风险评估涉及对风险暴露的测定(其中 T 恤型号即可满足要求,例如,使用Small,Medium、Large和Extra Large表示量级)和基于风险所在的暴露带对风险打分(用于之后的风险监测)。这个分数需要考虑固有风险,并应包括需求或任务中涉及的内容,以及如何完成这种需求或任务(例如,使用减少风险的敏捷技术)。风险暴露也是风险优先定级的核心内容;反过来,风险优先定级也表明了为了应对项目风险而开展学习的紧迫性。如下图,风险暴露带评估和风险打分:

(风险暴露带)

(风险登记簿)

风险处理

风险评估提供确定风险响应(例如,避免、接受、利用)所需的输入。有些风险可以通过开展具体活动(称为敏捷风险管理中的“风险任务分配”)来解决,有些则需要关注活动所采取的方式(称为敏捷风险管理中的“风险标记”)。例如,开发产品用户界面时出现的需求风险可能会鼓励团队使用结对编程——一种两个个体协同工作的敏捷技术—— 来执行所有这类用户故事。因此,在稍后的迭代过程中,团队会识别所有受影响的活动,并将其标记以关联与该风险处理决策(例如,可能使用一个双头的图标作为视觉提示,以使用如 图 2 所示的结对编程)。

风险缓解看板会让人想到对风险相关任务进行颜色编码(例如,绿色为契机,红色为威胁),以支持风险的可视化。顺带地,这些做法也可以延伸到其他的敏捷工件,包括描述Epic和构成它们的用户故事之间关系的敏捷故事地图,如 图 2 所示。这使得风险分布展示出优质的可视化效果,甚至能检测出风险分析可能不足的地方(例如,没有明显的上行或下行风险的用户故事集)。

风险监控

在风险评估期间,用于衡量固有风险的分数可以用来构建跟踪总体风险管理工作的风险燃尽图。这个设置类似于故事点燃尽图,也向团队昭示存在一种无法完全消除的迭代剩余风险(由用户故事的累积剩余风险、策略转变、策略共享相关的风险构成)。此外,它清楚地显示出风险管理中的动态,而其他方式则可能不会如此清楚(例如,次级风险可能会导致图表上升而非下降)。在一种被称为“风险墙”的实践中,建议同时寻找风险燃尽和其他风险相关制品(如风险登记表、风险缓解看板或用户故事地图),以提高透明度,并积极征求团队反馈。

结论

敏捷得到比以往任何时候都更加广泛的应用,而其在风险管理、治理和相关事项中的位置仍然是一些组织的障碍。但是,随着这些挑战的应对措施被发现并融入敏捷方法论和项目实践中,这一点正在开始改变。这不仅提供了有关风险管理的监督和问责制,同时也保证了敏捷在就其提供的价值而言的好处方面不会受到损害。

敏捷项目风险管理——识别项目中的威胁和机会相关推荐

  1. PMP项目管理项目风险管理

    目录 1 项目风险管理概述 2 规划风险管理 3 识别风险 4 实施定性风险分析 5 实施定量风险分析 6 规划风险应对 7 实施风险应对 8 监督风险 1 项目风险管理概述 项目风险管理的目标在于提 ...

  2. 软件项目风险管理介绍

    软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响.软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目 ...

  3. 项目风险管理专栏︱资深IT项目管理人士谈项目风险管理

    项目风险管理-项目风险管理概述 项目风险是一种不确定的事件或条件,一旦发生,会对项目目标产生某种下面或负面的影响.风险有其成因,同时,如果风险发生,也导致某种后果. 1.项目风险是一种不确定的事件或条 ...

  4. 什么是项目风险管理?要如何执行风险管理?

    项目风险管理是项目管理中重要组成部分之一,其影响着项目是否能成功最终交付的关键.虽然项目经理都无法准确地预测未来项目结果,但可以应用一种精简的风险管理流程来预测项目管理中的不确定性,并将这些不确定因素 ...

  5. 项目风险管理规划的内涵

    1.项目风险管理规划的内涵[选择题必考,判断说法正确与否] 项目风险管理规划是从全局的角度对风险管理过程(包括风险识别.估计.评价.应对.监控等)进行的一个总体规划. 项目风险管理规划是指决定如何着手 ...

  6. MES系统项目风险管理解决方案

    软件项目风险管理是保证软件工程项目顺利实施的重要环节,针对企业特点,阐述了在软件研发中产生风险的原因,讨论了软件项目管理风险管理控过程.以某具体软件项目的开发和实施为背景,将主成分分析和相关性分析等方 ...

  7. 第18章 项目风险管理

    文章目录 18.1.2 风险的分类 按照性质划分(纯粹.投机) 按照产生原因(自然.社会.政治.经济.技术) 18.1.3 风险的性质(客观.偶然.相对.社会.不确定) 项目风险管理6个过程(规划风险 ...

  8. 软件项目 风险管理用到的实践_软件项目风险管理方案

    软件项目风险管理方法 软件项目风险管理方法 在上世纪 60 年代, 西方世界的软件危机使人们 开始清醒得认识到软件开发过程的高复杂性,许多学 者致力于通过软件标准化,并提出一系列软件过程模 型,将系统 ...

  9. 信息系统项目管理师-项目集、项目组合管理考点笔记

    项目集和组合管理的区别 项目: 经常被作为实现组织战略计划的一种手段. 项目集: 是一组相互关联且被协调管理的项目.协调管理是为了获得对单个项目分别 管理所无法实现的利益和控制.项目集管理重点关注项目 ...

最新文章

  1. Zepto源码分析-架构
  2. Gstreamer基础知识介绍
  3. 回顾国产手机4年沉浮,仍然只是靠这三招翻身
  4. IDEA中安装Restfultookit插件实现根据 URL 直接跳转到对应的方法定义
  5. WindowsXP正版验证方法
  6. [转载]Mac使用vim命令修改配置文件内容
  7. 一行代码能做什么? 看到最后一个我终于忍不住...
  8. 【Arduino基础教程】PM2.5粉尘检测传感器
  9. V4L2Gstreamer媒体控制工具(五)
  10. php扩展intl安装不成功,phpstudy开启php_intl扩展启动弹出错误的解决方法
  11. EtherCAT工业以太网的主要特点
  12. 最小函数依赖集,候选码,保持3NF依赖性的分解例题
  13. webview的一些使用小窍门和需注意的地方
  14. 百度年龄计算机在线使用,百度精准年龄计算器在线计算app
  15. 老马闲评数字化(4)做数字化会不会被供应商拿捏住
  16. JVM 上篇(4):虚拟机栈
  17. linux配置rsync排除某些目录,10个linux rsync命令排除文件/目录
  18. Warning[w6]
  19. 实现复数类中的运算符重载(含有double类型)
  20. 2020知道答案C语言,C语言及逆向2020知到答案

热门文章

  1. 一提到Reference 百分之九十九的java程序员都懵逼了
  2. 在应用中简单进行蓝牙通信
  3. 复制ABB机器人系统
  4. Makefile编写及一个简单的Makefile架构实现
  5. 2021年临一中高考成绩查询,2021年高考落下帷幕 莘莘学子开启新征程
  6. VC++ 2010 创建高级Ribbon界面详解(2)
  7. 15.4 普通克里金插值
  8. 67行代码实现:模拟手机九宫格输入法
  9. 华为干部分类赋能手册(珍藏)
  10. 如何理解三大微分中值定理?