敏捷方法最大的固有优势之一是管理敏捷项目的不确定性。为了更好地理解这一点,我们需要先了解以下两者之间的区别:
- 一种经验过程控制模型
- 定义的过程控制模型
经验和定义的过程模型
在这种情况下要理解的关键是与经验过程和定义过程之间的区别。
经验过程控制模型
敏捷基于经验过程方法 –“经验”一词意味着“基于实验或观察”。
当您使用经验过程方法时,
- 你接受在开始之前你不知道你可能想知道的关于项目的一切
- 该过程旨在调整解决方案和流程,以便随着项目的进展发现学习的解决方案。
定义的过程控制模型
“定义过程”是可重复的,并且从一个项目到下一个项目并没有显着变化
- 它产生的结果是非常可预测的,而“经验过程”专门用于支持适应性而不是可预测性。
- 因此,经验过程更适合具有高度不确定性的项目。
敏捷项目的不确定性
理解敏捷项目不确定性的一个非常强大的概念是“Stacey 复杂性模型”,如下所示:
这个模型有两个不确定因素:
要求不确定性
一个方面是需求的不确定性 – 项目的目标和要求以及他们知道客户是否真能确定自己想要的是甚么?
技术不确定性
另一个方面是技术的不确定性 – 对问题的技术解决方案以及与技术解决方案相关的风险级别的理解程度如何?
这是一个非常重要的概念,因为处理不确定性的能力在当今项目开发中最关键的,而且大量计划驱动的项目并不能很好地应对高水平的不确定性。
不确定性管理
计划驱动项目中通常发生的事情是项目经理在启动项目之前尝试将不确定性水平降低到可接受的水平:
- 在项目开始之前尽可能地解决需求中的任何不确定性,并且
- 尽量消除尽可能多的技术风险
这通常会导致使用久经考验的技术,并且在进入新的和未定义的用户需求方面并没有太大的作用。当然,其缺点是技术方法可能会在发布后的相对较短的时间内过时,也可能导致解决方案非常平庸。
“管理不确定性”是什么意思?
让我澄清“管理不确定性”的含义。
- 对某些人而言,不确定性就像是攻击项目的不冶之症并导致其失败。传统的项目管理思想强化了这种方法,以尽可能地降低项目中的风险和不确定性
- 我不这么认为,不确定性也可能代表超出预期的机会,项目产生所创做的价值及机会以倍数的高於其风险和不确定性直
- 如果通过降低风险和不确定性来强制项目去适应计划驱动模型,您可能会最大化项目的可预测性,以满足成本和进度目标,但最大限度地降低项目产生的价值
总结
以下是一些重要观点的摘要:
- 不应忽视不确定性,根本不管理。不确定性通常与机会直接相关
-
幸运的是,这不是一个黑白决定:
- 一种完全僵化的,计划驱动的方法,几乎没有不确定性和
- 完全自适应的方法,具有极高的不确定性。
正确的做法是使方法适应项目中的不确定性水平,而不是将项目强制拟合到某种一成文变的預訂好的方法(无论它可能是什么)。开发一种管理不确定性的智能方法需要更多的技能; 这个需要:
- 能够 客观地 评估项目中的不确定性水平
- 理解经验和定义的过程模型
- 更深入地了解这些方法背后的原理,了解如何将两者融合在一起以适应这种情况
这才是有效的敏捷项目管理方法的本质。
References
- What is Burndown Chart in Scrum?
- What is the Role-Feature-Reason Template?
- Sprint Increment vs Potential Shippable Product vs MVP vs MMP
- Write SMART Goals & INVEST for User Stories
- What is DEEP in Product Backlog?
- How to Write Product Vision for Scrum Project?
- How to Use Scrum Board for Agile Development?
- Who Create Product Backlog Items or User Stories in Scrum?
- What is Agile Estimation?
- What is Story Point in Agile? How to Estimate a User Story?