📄 一句话概括
迭代式把【见东西】提前——实测 4 轮每轮澄清 5 条,第 1 轮结束就有可运行版本;见到的时间从第 5 阶段提前到第 1 轮。
📝 本节和前面几节的关系
11.4 讲完瀑布式的天花板,这一节讲怎么绕过去:把交付切成小份、每份都能用。
一、迭代式的两个动作
切小:把整个系统切成若干轮,每轮几周,每轮交付一个能用的版本。 复用:每轮的版本都基于上一轮,不是重做,是长大。 关键在【能用的版本】——不能用的半成品不算迭代,那只是瀑布式切段。
二、实测:4 轮澄清 20 条
第 1 轮澄清 5 条、剩 15 条;第 2 轮再 5 条;到第 4 轮 20 条全清。 第 1 轮结束就已经有能跑的东西,客户可以拿来提意见。 对比瀑布式:它要到第 5 阶段才见到——迭代式把这件事提前了 4 轮。
三、迭代不等于没计划
每一轮的范围是定死的,跟瀑布式一样要冻结。 变的只是【后续轮次的内容】——那部分本来就不清,提前定死才是浪费。 所以迭代式是【小步冻结】,不是【不冻结】。
四、它也有代价
每轮都要收尾:可运行、可演示、可交付,比一次性做完更费心。 前期要先把骨架搭好,否则第一轮做不出能用的东西。 客户要参与:不给反馈的迭代,等于分成几段的瀑布。
五、动手 Demo:灵活响应变化的迭代式开发流程
模拟 4 轮迭代,每轮澄清 5 条需求。 看第 1 轮结束时能见到什么、全部澄清要几轮。
total, per_round, clarified = 20, 5, 0
for i in range(1, 5):
clarified += per_round
print(i, clarified, total - clarified)
# 1:5/15 2:10/10 3:15/5 4:20/0
实跑输出:
--------------------------------------------------------------------
灵活响应变化的迭代式开发流程
--------------------------------------------------------------------
迭代式把【见东西】提前,**每轮都交一个能用的版本**。实测 4 轮:
轮次 累计澄清需求 仍不清楚
-----------------------------------
1 5 15
2 10 10
3 15 5
4 20 0
迭代轮数 4 轮
每轮澄清 5 条
第 1 轮结束时就能用 是(可运行版本)
全部澄清需要 4 轮
**对比瀑布式:它要到第 5 阶段才见到东西,而迭代式第 1 轮就见到了。**
**所以【见到】这件事被提前了 4 轮**,改错的成本也就低了 4 次机会。
**注意迭代不等于没计划**:每一轮的范围是定死的,**变的只是后续轮次的内容。**
实测:4 轮每轮澄清 5 条,第 1 轮结束就有可运行版本,第 4 轮全部澄清。 【见到】的时间从瀑布式的第 5 阶段提前到第 1 轮。 迭代不等于没计划:每轮范围照旧冻结,变的只是后续轮次。
30 秒实验
- 把你的项目切成 4 轮,写出第 1 轮交付后客户能看到什么。
- 检查你上一轮交付的东西是不是【能用的】。
常见误区
- 以为迭代就是边做边改需求。每轮范围照样冻结。
- 以为把瀑布切成四段就是迭代。不能用的半成品不算迭代。
自测三问(点开对答案)
1. 迭代式的两个动作是什么? —— 切小(每轮几周)与复用(每轮基于上一轮长大),每轮必须是能用的版本。 2. 实测澄清过程如何? —— 4 轮每轮 5 条,第 1 轮结束就有可运行版本,第 4 轮全清。 3. 代价是什么? —— 每轮都要收尾可交付更费心、前期要搭骨架、客户必须真的参与反馈。- ☐ 11.6 打破诸多限制的 XP
相关笔记
- 瀑布式开发流程的极限 — 要绕过去的墙
- 打破诸多限制的 XP — 把实践做到极致
- 快速编写优秀软件的敏捷宣言 — 迭代背后的价值观
- 🧩 面向对象是怎样工作的 · 索引