🧩 第十一章 衍生:敏捷开发
📄 一句话概括

迭代式把【见东西】提前——实测 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 秒实验

  1. 把你的项目切成 4 轮,写出第 1 轮交付后客户能看到什么。
  2. 检查你上一轮交付的东西是不是【能用的】。

常见误区

  1. 以为迭代就是边做边改需求。每轮范围照样冻结。
  2. 以为把瀑布切成四段就是迭代。不能用的半成品不算迭代。
自测三问(点开对答案) 1. 迭代式的两个动作是什么? —— 切小(每轮几周)与复用(每轮基于上一轮长大),每轮必须是能用的版本。 2. 实测澄清过程如何? —— 4 轮每轮 5 条,第 1 轮结束就有可运行版本,第 4 轮全清。 3. 代价是什么? —— 每轮都要收尾可交付更费心、前期要搭骨架、客户必须真的参与反馈。

相关笔记