摘要
定义
看板方法,由 David Anderson 创立,它脱胎于大野耐一所创立的丰田生产方式(TPS),以及埃利亚胡·高德拉特(Eli Gol-dratt)的约束理论(TOC),并结合统计质量控制(SQC)、排队论(QT)、工业工程(IE)、软件成熟度模型(CMMI)等多个领域的知识,在软件开发社区中获得了极高的关注度,并迅速传播开来。
历史
大卫·J.安德森(David J. Anderson)
看板(Kanban)(大写字母“K”开头)方法指的是自 2006—2008 年间在 Corbis 公司涌现的渐进增量式的过程改进方法学。这是一个渐进的(evolutionary)和增量式的(incremental)过程。
看板(kan-ban)(小写字母开头)是一个日语词汇,英文字面意思是“信号卡”(signal card)。
看板资源
- 大卫·安德森公司 David J. Anderson and Associates http://www.djaa.con
- The Limited WIP Society http://www.limitedwipsociety.org
- “看板开发”雅虎讨论小组 http://finance.groups.yahoo.com/group/kanbandev/
- Kanban101 http://www.kanban101.com
Kanban 例子 1
背景
团队是一个很小的开发团队,他们为一个大的保险公司服务,负责新发布的手机银行应用。这个团队负责在手机银行这个应用中开发新特性,同时还要支持和维护已经发布的版本。
开发出现了问题
- 我们经常延迟交付
- 估算常常不准
- 整个团队忙得不可开交
- 优先级不清楚
- 需求来自四面八方
- 互相不清楚谁在干什么
白板
- 把项目原来在 Jira 中的工作内容贴在白板上。
- 每个工作项一个记事贴。
- 我们一般称电子工具为‘信息冰箱’。
白板:可视化工作
- 你无法对自己没有看到的进行改进。
- 让隐藏的工作无所遁形。
- 为每个工作项建立一个即时贴即可轻易做到。
- 帮你理清:
- 谁在干什么
- 你正在处理的工作
- 进行中的工作数量
- 工作可视化之后,信息将散播给看到的每个人。
工作流映射
工作项
卡片上有什么内容?
- 从卡片上你可以看到工作项的进展状态。
- 能够决定下一步如何处理。
- 常见的属性为:
- 工作项描述
- 电子系统中的唯一标识
- 完成期限
- 谁在处理这个工作项
- 工作类型(比如 bug 或者常规工作)
硬币传递游戏
硬币传递游戏说明
- 你们中 4 个人请围着桌子坐下来,其他人分别选择一个坐下的同事站在其身后,并掏出手机打开计时器。
- 每个人要把所有硬币翻一遍,然后传递给下一个人。当所有人都翻过所有硬币之后,他们就完成了工作,并交付给了客户。20 枚硬币。
- “我来作为客户,为整个工作流计时。我会记录两个时间,一个是第一枚硬币到达我这里的时间,一个是所有 20 枚硬币到达我这里的时间。”
- 我们会玩三轮这个游戏,第一轮的规则是每个工人需要把所有 20 枚硬币翻完后传递给下一个工人;每次翻 5 枚硬币;每一批次翻 1 个硬币。
硬币传递游戏结果
Work in Progress(WIP)
- 在制品 (WIP)是同时进行中的工作数量,减少在制品使其快速流过整个工作流,即前置时间缩短。
- 我们不再关注是否每个工人的工作都是最有效率的;
- 在最后一轮中,前置时间是最短的,但每个工人的工作时间都延长了,从个人来看工作效率下降了,但整个团队的效率最高。
限制在制品 1
- 致力于减少同时处理的工作项
- 批量规模越小,前置时间越短
- 流动效率提升的同时资源效率会有所降低
- (类似传递硬币的游戏或模拟方法是教人抽象概念的很有力的方式)
限制在制品 2
- 立即实施:停止立项并开始完成
- 限制在制品将使改进机会浮出水面
- 着手改进后会获得更快的流动
- 不要企图找到一个唯一正确的数字作为团队的在制品限制规模。
- 在制品限制不是仅为了设立规则,而是为了触发讨论
紧急工作
快速通道
- 处理特殊情况的常用方式,如紧急工作
- 通常在白板上刻划为单独通道
- 快速通道的相关规则如下:
- 任何时候最多只能有一个工作项在快速通道内
- 每周最多有一个紧急工作
- 快速通道内的工作项无需计入在制品限制
度量
度量
- 有利于团队改进
- 团队自己选择度量指标,但不要将度量指标用于绩效考核
- 两个常用的度量指标为:
- 前置时间是整个工作流的时间
- 吞吐量是一定时间段内完成的工作项数量
看板例子 2
(来自 Kanban and Scrum making the most of both 一书)
看板不是?
- 看板并不是一种软件开发生命周期的方法学,也不是一种项目管理的方法。
- 实施看板时,需要当前已经有一些在运行的过程,这样便可应用看板来逐步改变当前运行的过程。
Kanban 与 Scrum
- 看板更加适应支撑维护团队
- Scrum 更加适应全新开发团队(不绝对)
Scrum 和看板都是过程工具
- Scrum 和看板都是适应性很强的,但相对而言,Scrum 更规范一些。Scrum 多了些约束,少了些选择。
- RUP 的规范性相当强——它有 30 多种角色,20 多种活动,70 多种工件;
- XP(极限编程)比 Scrum 又规范一些。它囊括了 Scrum 的大部分内容,还多了很多相当具体的工程实践,例如测试驱动开发和结对编程。
- Scrum 的规范性比 XP 弱,因为它没有规定任何具体的工程实践。但它又比看板规范,因为它规定了迭代和跨功能团队之类的东西。
- Scrum 和 RUP 的主要区别在于,RUP 给你的东西太多了,你得自己把不需要的东西去掉;而 Scrum 给你的东西太少了,你得自己把需要的东西加进来。
- 看板几乎对任何做法都是开放的。它仅有的约束就是将流程可视化和限制在制品。它离做什么都行只有几步之遥,但仍有令人惊异的力量。
别把自己绑在一种工具上
把工具搭配着用,用在合适的地方。
无法想象几乎不用 XP 的 Scrum 团队还能成功。很多看板团队也在做每日立会(Scrum 实践)。有些 Scrum 团队也把 backlog 条目写成用例(RUP 实践),还会限制队列大小(看板实践)。只要有用就行。
不过我们还是要关注每样工具有哪些约束的。假如你在用 Scrum,又决定不用固定时长的迭代(或是其他任一款 Scrum 的要素,3355),就不要说你在用 Scrum 了。Scrum 本身已经足够浓缩了,如果你去掉一些东西,然后还叫它 Scrum,那这个词就失去了意义,只会带来困扰。
经验主义
Scrum 和看板都是经验主义的产物,你用的时候需要先进行试验,然后根据自己的环境作调整。
它最核心的一点就是反馈环。改变=>检查结果=>从中学习=>继续改变。一般而言,反馈环越短越好,这样可以快速调整过程。
- 平均生产周期。每次有任务到达“Done”这一列(不管它叫什么吧,反正是最右边那一列)的时候就更新数据。
- 瓶颈。典型症状就是 X 列里面堆满了卡片,但是 X+1 列里空空如也。找找板上哪里有“气泡”吧。
寻找 WIP 例子
资源利用率低:
WIP 上限提醒我们要采取行动,改善瓶颈;而不是把没完成的工作堆个没完。
但要是 WIP 当初设成 4 的话,我们早就能有所反应了,这样平均生产周期还能表现得好点。所以这是要平衡的。我们度量平均生产周期,不断优化 WIP 上限,以此优化总生产周期。
Kanban 与 Scrum 的相似性
- 都是既精益又敏捷、都是拉动式计划、都限制了 WIP。
- Scrum 的 WIP 按单位时间限制;看板的 WIP 按流程状态限制。
- 都以透明的方式驱动过程改进。
- 都关注于尽早交付、频繁交付可发布的软件。
- 根基都是自组织型团队。
- 都需要把工作拆分。
- 发布计划都是根据经验数据(生产率/生产周期)不断优化的。
Kanban 与 Scrum 的差异
Scrum | 看板 |
---|---|
规定了固定时长的迭代。 | 固定时长的迭代是可选的。计划、发布、过程改进等活动可以各有各的节奏。它可以由事件驱动,不用非要固定时长。 |
团队承诺当前迭代做完一定量的工作。 | 承诺是可选的。 |
用生产率作为计划和过程改进的默认度量手段。 | 用生产周期作为计划和过程改进的默认度量手段。 |
规定了跨功能团队。 | 跨功能团队是可选的。可以有专职团队。 |
任务必须分解,以便在 1 个 Sprint 里面能做完。 | 没规定任务规模。 |
规定了燃尽图。 | 没规定专门的图表形式。 |
间接限制(每个 Sprint 的)WIP。 | 直接限制(每个工作流状态的)WIP。 |
规定了估算。 | 估算是可选的。 |
不能往进行中的 Sprint 里面加任务。 | 只要有人手富余就可以加任务。 |
一个 Sprint Backlog 归一个团队所有。 | 一张看板图可以由多个团队或多人共用。 |
规定了三种角色(PO、SM、Team) | 没有规定任何角色。 |
每个 Sprint 之间重置 Scrum 板。 | 看板图一直保留着。 |
规定了经过优先级排序的产品 backlog。 | 优先级排序是可选的。 |
参考文献
- Anderson, David J. (April 2010). Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press. ISBN 0-9845214-0-2。
- Marcus Hammarberg and Joakim Sunden. 2014. Kanban in Action (1st ed.). Manning Publications Co., Greenwich, CT, USA。
- http://www.infoq.com/minibooks/kanban-scrum-minibook