项目管理指南 · 项目管理基础
迭代与增量开发详解
迭代开发和增量开发是大多数现代交付方法背后的两个相关理念。迭代是指通过反复循环进行改进;增量是指以可用的部分进行交付。
要点总结
- 迭代是指通过循环进行改进;增量是指分部分交付。
- 敏捷将两者结合起来。
- 在需求不确定时使用它们。
定义
| 迭代 | 增量 | |
|---|---|---|
| 理念 | 通过反复循环完善解决方案 | 逐块构建解决方案 |
| 示例 | 经过多轮评审不断改进的粗略设计 | 先登录,再搜索,然后支付 |
| 收益 | 学习和质量在每个循环中不断提升 | 用户更早获得价值 |
两者结合使用
敏捷框架,例如 Scrum 将两者结合起来:每个冲刺交付一个可用的增量,每个循环都会根据反馈改进先前的工作。其结果是既能尽早获得价值,又能持续学习。
历史
早在“敏捷”一词出现之前,至少从 20 世纪 50 和 60 年代起,迭代与增量开发就已用于大型工程项目群。参见 敏捷的历史.
适用场景
- 需求不确定或可能发生变化。
- 来自用户的早期反馈很有价值。
- 解决方案可以分部分交付和使用。
- 需要逐步降低风险。
常见问题
迭代开发等同于敏捷吗?
敏捷采用迭代和增量开发,但增加了客户协作和自组织团队等价值观。
瀑布式项目可以采用迭代开发吗?
一些预测型项目会在阶段内加入迭代,特别是在设计和原型制作方面。
什么是迭代开发?
通过反复循环完善解决方案,每次都根据反馈加以改进。
什么是增量开发?
逐块构建解决方案,每个增量都会增加可用的功能。
迭代开发和增量开发有什么区别?
迭代是通过反复循环来改进同一事物;增量则是不断添加新的部分。敏捷框架将两者结合起来。
增量开发的示例是什么?
先发布登录功能,然后是搜索,再然后是支付,使用户在每个部分就绪时即可从中获得价值。
迭代开发的示例是什么?
先制作一个粗略的设计,然后通过与用户进行多轮评审不断改进,直到满足他们的需求。
何时应该采用迭代与增量开发?
当需求不确定、早期反馈很有价值、解决方案可以分部分使用并且需要逐步降低风险时。
迭代开发有多久的历史?
至少从 20 世纪 50 和 60 年代起,它就已用于大型工程项目群。参见 敏捷的历史.
什么是迭代开发的螺旋模型?
由 Barry Boehm 在 20 世纪 80 年代提出的一种风险驱动的迭代模型,每一圈都包括计划、风险分析、构建和评估。
Scrum 采用迭代开发还是增量开发?
两者兼有。每个冲刺交付一个可用的增量,每个循环都会根据反馈改进先前的工作。