对比 Scrum 与 Kanban:时间盒式的 sprint 与持续流动、角色、WIP 限制、指标,以及 East Agile Tracker 基于迭代的看板在两者之间所处的位置。
Scrum 和 Kanban(看板方法)是团队最常拿来比较的两种敏捷方法。两者都让工作可见,也都追求以小块交付。它们的区别在于如何把握工作节奏:Scrum 在固定的时间盒内做规划,Kanban 则持续拉动工作,并限制同一时间在制的工作量。
本页对两者进行比较。关于包括 XP 和 Lean 在内的整个方法家族,请参阅什么是敏捷开发?。
Scrum 简介
Section titled “Scrum 简介”Scrum 把工作组织进 sprint——固定的时间盒,通常为一到四周。每个 sprint 以 sprint 规划会开始,团队在会上挑选预计能完成的工作;以对所构建成果的评审和对团队工作方式的回顾结束。
Scrum 定义了三种角色:
- Product Owner——掌管产品待办列表及其顺序。
- Scrum Master——在流程上指导团队并清除障碍。
- Developers——构建增量。
主要的度量是速率:团队每个 sprint 完成多少工作,并据此制定下一个 sprint 的计划。见什么是速率?。
Kanban 简介
Section titled “Kanban 简介”Kanban 从团队已有的工作流出发。工作项在一块由多列组成的板上移动,各列代表不同阶段(例如 To do → In progress → Review → Done)。这种方法由三个理念支撑:
- 可视化工作流——每个工作项和每个阶段都在板上。
- 限制在制品(WIP)——每列都有上限;只有当一项离开时,新的一项才能进入。
- 管理流动——团队测量工作项耗时多久(周期时间、前置时间),并消除瓶颈。
Kanban 没有时间盒,也不规定角色。规划在队列需要补充时随时进行。
| Scrum | Kanban | |
|---|---|---|
| 节奏 | 固定的 sprint(1–4 周) | 持续流动 |
| 承诺 | 为该 sprint 规划的工作 | 不做批量承诺;有产能时再拉入 |
| 角色 | Product Owner、Scrum Master、Developers | 无规定 |
| 周期中途变更 | sprint 内不提倡 | 随时可以 |
| 限制工作量的方式 | sprint 的产能 | 每列的 WIP 上限 |
| 主要指标 | 速率、燃尽图 | 周期时间、前置时间、吞吐量 |
| 板 | 每个 sprint 重置 | 持续存在 |
总体而言,没有哪一种方法更好。Scrum 适合希望有规律的规划节奏、并依据过往 sprint 做预测的团队,例如按计划发布功能的产品团队。Kanban 适合到来时间难以预料、必须随到随处理的工作,例如支持、运维或维护。
许多团队把两者结合起来(“Scrumban”):既保留规划节奏,也留意在制的工作量。
East Agile Tracker 的定位
Section titled “East Agile Tracker 的定位”East Agile Tracker 以迭代为基础,这使它更接近 Scrum 和 eXtreme Programming,而不是 Kanban。对于上面的一些概念,它使用自己的术语:
- sprint 在这里叫作迭代。 每个项目把迭代长度设为 1–4 周。迭代会自动创建;没有需要开启或关闭的 sprint。见迭代。
- 待办列表是单一的有序清单。 产品负责人按严格的优先级顺序维护它,Backlog 会根据速率投影出即将到来的迭代。见用户故事与迭代规划。
- 速率决定计划的大小。 开启自动规划迭代后,当前迭代会填充到你的速率为止,不再多。见规划迭代。
- 每个故事都带有自己的状态。 故事依次经过 Unstarted → Started → Finished → Delivered → Accepted,状态显示在卡片上,而不是通过在看板列之间移动来表示。见状态机。
这里没有 WIP 限制,也没有不使用迭代的流动模式。被沿用下来的 Kanban 理念是可见性(每个故事及其状态都在同一块看板上)和流动指标:指标页面展示速率趋势、燃尽图,以及在迭代之间结转的故事。