Scrum简介
我们不是靠一个庞大的团队,花大量时间造出庞然大物;而是用小团队在短时间内
做出小块的东西来,在有规律的集成中组装出全貌
看板
工具=用于完成任务或达成目的的任何东西
过程=工作方式
Scrum 和看板都是过程工具,它们讲的是做哪些事情能够在一定程度上帮助你提高工作效率。
Scrum 的规范性比 XP 弱,因为它没有规定任何具体的工程实践。但它又比看板规范,因为它规定了迭代和跨功能团队之类的东西。
看板几乎对任何做法都是开放的。它仅有的约束就是将流程可视化和限制在制品。它离做什么都行只有几步之遥,但仍有令人惊异的力量。
Scrum 规定了三种角色:产品负责人(描绘产品远景,定义优先级)、团队(实现产品)、 Scrum Master(消除障碍,带领过程运作)。
看板没规定任何角色。
固定时长的迭代是 Scrum 的基础。你可以选择迭代长度,但一般都会在一定时间内
让迭代长度固定不变,继而形成节奏。
代码基本上是可以发布的(经过测试可以交付)。然后团队进行回顾,讨论如何改进过程。
所以 Scrum 的迭代就是一段长度固定的单声部旋律,混合了三种活动:计划、过程改进、(理想中的)发布。
Scrum 的 Sprint backlog 显示了当前迭代(迭代也就是 Scrum 术语中的 Sprint)要完成哪些任务。它们一般都用墙上的卡片展示,被称作 Scrum 板(Scrum board),或是任务板(Task board)。
那 Scrum 板和看板图(Kanban board)有什么区别呢?
那这两块样板的区别是什么呢?喏──就是看板图中间那一列上的那个小字 2 啊。就是那点东西。 2 的意思是“不管什么时候,这一列上最多有两个任务”。
换成 Scrum 的话,团队大可以把所有东西都放到 Ongoing 那一列里面去!但因为迭代本身的范围是固定的,所以 Scrum 依然有个潜藏的限制。看板直接限制了 WIP,Scrum 是间接限制的。
所以,Scrum 和看板都是限制 WIP 的,只是方式不同。
Scrum 的 WIP 按单位时间限制。
看板的 WIP 按流程状态限制。
如果各项任务的规模差异很大,那可能就得考虑用故事点或是其他尺寸单位来定义WIP 上限了。有些团队会花时间把任务都拆分得大小差不多,从而避免费心考虑用什么单位限制 WIP,也减少了估算的时间(你或许会认为估算也是浪费)。任务大小相近,就更容易创建一个平滑流动的系统了。
Scrum 和看板都是经验主义的产物,你用的时候需要先进行试验,然后根据自己的环境作调整。实际上,你必须得先试验。 Scrum 和看板都没给出一切问题的答案,它们只是给了一些基本约束,以此驱动过程改进。
改善(Kaizen。即持续改进,精益术语),内省与调整(Inspect& Adapt,Scrum 术语),经验式过程控制(Empirical Process Control),乃至科学方法(The Scientific Method)。
它最核心的一点就是反馈环。改变 => 检查结果 => 从中学习 => 继续改变。一般而言,反馈环越短越好,这样可以快速调整过程。
看板的原则是“一件出去,一件进来”(由 WIP 驱动),所以看板团队的响应时间(多久才能响应优先级的变化)就等于他们要花多长时间才能把手头的事情做完。
crum 的平均响应时间等于 sprint 长度的一半。
在 Sprint 的不同时期,Scrum 板通常有不同的样子:
看板图的样子几乎是一成不变的──你不需要把板子清理干净,重新开始。
Scrum 团队只会承诺他们认为能在一个迭代里面做完(基于他们对“完成”的定义)的任务。如果任务太大了,一个 Sprint 放不下,团队跟产品负责人就会寻找方法拆分,直到能放下为止。如果任务都比较大,迭代就会较长(虽然一般都不会超过四周)。
看板团队努力缩短生产周期,保持顺畅流动,而这些因素会间接推动团队把任务拆分成相对较小的片段。但是看板对任务规模没有明文规定一定要在某个时间内做完。在同一张板上,我们可能会既有 1 个月做完的卡片,又有一天能做完的卡片。
在 Scrum 里面,团队要对每个承诺的任务估算其相对大小(=工作量),到迭代结束的时候,把每个任务的大小相加,就得到了生产率。生产率是度量团队能力──我们每个 Sprint 能交付多少东西──的指标。下面是平均生产率为 8 的一个例子。
知道平均生产率为 8 是件好事,因为我们可以据此合理推测接下来的 Sprint 能做完多少任务,继而做出合理的发布计划。
Scrum 和看板跟精益思想和敏捷宣言里面的价值观和原则是相当吻合的
Scrum 规定了经过优先级排序的产品 backlog
Scrum 的优先级是通过产品 backlog 排序体现的,优先级的变化会在下一个(不是当前的)Sprint 生效。
Scrum 规定了每日立会
Scrum 团队每天都会在同一时间同一地点开一个短会(最多 15 分钟)。这个会议的目的是让大家知道工作进展,计划当天任务,识别严重问题。它有时被称作每日立会,因为一般都是站着开的(站着开时间短,大家也更有精神)。
Scrum 规定了燃尽图
Sprint 燃尽图每天更新,展示当前迭代还剩多少工作没做。燃尽图的主要目的是便于尽早发现实际进度跟计划的偏差,好作出调整。
累积流图(Cumulative Flow diagram)的一个例子。它生动地展示出流动的平滑与否,WIP 如何影响生产周期。