📄 一句话概括
四种流程放在四种情形下打分,最高分也只有 11 分(满分 12)——瀑布式在【需求稳定】拿满分、在【需求多变】只有 1 分;选流程要看项目,不看流行。
📝 本节和前面几节的关系
11.1~11.14 讲完流程与敏捷,这一节收口:没有标准答案。
一、实测:没有满分的流程
四种流程(瀑布/迭代/XP/Scrum)在四种情形(需求稳定/多变、小团队/大团队)下打分。 最高 11 分(迭代式),最低 8 分(XP),满分 12。 没有一个是满分——这本身就是结论。
二、同一套流程两副面孔
瀑布式在需求稳定拿 3 分,在需求多变只有 1 分。 XP 在小团队拿 3 分,在大团队只有 1 分——它的纪律要求太高,人多了难统一。 所以问【哪个流程好】是个坏问题,该问【我这个项目像哪种情形】。
三、怎么选
先看需求的稳定性:稳,瀑布最省;不稳,必须迭代。 再看团队规模:大团队要冻结的接口,小团队要轻的流程。 最后看技术底子:代码改不动时,先修结构,别急着上敏捷。
四、不要迷信也不要排斥
迷信的代价:把别人的流程照搬,水土不服就怪团队。 排斥的代价:什么都没改,问题原样留着。 正确姿势:先量自己的情形,再挑能解决当前最大痛点的那一项。
五、动手 Demo:不存在最好的开发流程
四种流程在四种情形下打分(3 很合适、1 不合适)。 看最高分与最低分,以及同一流程在不同情形下的落差。
flows = ["瀑布式", "迭代式", "XP", "Scrum"]
score = {"瀑布式": [3, 1, 2, 3], "迭代式": [2, 3, 3, 3],
"XP": [1, 3, 3, 1], "Scrum": [2, 3, 2, 3]}
for f in flows:
print(f, sum(score[f]), max(score[f]) - min(score[f]))
# 瀑布 9 落差2 / 迭代 11 落差1 / XP 8 落差2 / Scrum 10 落差1
实跑输出:
--------------------------------------------------------------------
不存在最好的开发流程
--------------------------------------------------------------------
四种流程放在四种情形下打分(3 = 很合适,1 = 不合适)。实测:
流程 需求稳定 需求多变 小团队 大团队
-------------------------------------------------------
瀑布式 3 1 2 3
迭代式 2 3 3 3
XP 1 3 3 1
Scrum 2 3 2 3
瀑布式 合计 9 分
迭代式 合计 11 分
XP 合计 8 分
Scrum 合计 10 分
总分最高的是 迭代式(11 分)
总分最低的是 XP(8 分)
**注意最高分也只有 11 分(满分 12)**——**没有一个流程在所有情形下都合适。**
**瀑布式在【需求稳定】拿满分,在【需求多变】只有 1 分**——同一套流程,两副面孔。
**所以 11.15 的结论很硬:选流程要看项目,不是看流行。**
实测:最高 11 分(迭代式)、最低 8 分(XP),满分 12——没有满分。 瀑布式在需求稳定拿满分、在需求多变只有 1 分,同一套流程两副面孔。 所以选流程要看项目情形,不是看流行。
30 秒实验
- 给你的项目在四个情形上打个标签,看最像哪一种。
- 按这个标签挑一个流程,写出它要解决的那个最大痛点。
常见误区
- 以为存在放之四海的流程。最高分也只有 11 分。
- 以为照搬大厂流程就能成功。情形不同,流程就得变。
自测三问(点开对答案)
1. 实测最高分是多少? —— 迭代式 11 分(满分 12)——没有一个是满分。 2. 瀑布式为什么两副面孔? —— 需求稳定时拿 3 分,需求多变时只有 1 分;冻结的产物在变化面前是负担。 3. 选流程看哪三点? —— 需求稳定性、团队规模、技术底子(代码改不动先修结构)。- ☐ COLUMN 编程往事 过去不被允许的XP
相关笔记
- 限制修改的瀑布式开发流程 — 拿满分的那种情形
- 灵活响应变化的迭代式开发流程 — 总分最高的那种
- 敏捷开发源于面向对象 — 技术底子那一条
- 🧩 面向对象是怎样工作的 · 索引