1 Scrum、Kanban 简介
Scrum:
组织: 小规模、跨功能组织
工作:小而具体的交付物,按优先级排序,估算任务相对工作量
时间:固定大小的短迭代(1-4周),每个迭代结束可以对交付代码进行演示
优化:优化发布计划(每个迭代结束和客户一起检查发布目标,更新任务优先级);过程优化(回顾)
Kanban:
流程可视化:工作拆块,一张卡片一个任务,贴到白板上;每列一个名字,显示任务所处流程
限制WIP:(在制品,work in progress)明确每个状态最多同时进行的任务数
度量生产周期:完成任务的平均时间,即循环周期,对流程调优尽可能缩短生产周期,并使其可预测
2 二者关系-过程工具
工具:完成任务的东西;过程:工作方式;二者都属于过程工具,帮助提高工作效率
但并不全面,只给了一些明确的约束和指导;规范与适应各有利弊
敏捷被称作轻量级方法,不如传统方法规范,适应性更强;相对而言,Scrum更规范一些
工具只是辅助,不要被绑在一种工具上,可以剪裁但不要突破其基本约束
3 Scrum规定了角色
产品负责人(描绘产品远景,定义优先级);团队(实现产品);Scrum Master(消除障碍,带领过程运作)
Kanban没规定任何角色
无论Scrum和Kanban,都可以视需要添加角色
“少就是多”,当有疑虑时,先从少做起
4 Scrum规定了固定时长的迭代
迭代伊始-迭代进行中-迭代结尾;混合三种活动:计划、过程改进、发布
Kanban没有固定的迭代长度,可任选时间
Scrum也可以按需要选择不同的活动组合方式
可一个迭代三个活动;可一次计划,多个过程和发布;可多个计划和过程,一个发布
5 WIP
Scrum按迭代限制WIP,Kanban按流程限制WIP
Kanban直接限制WIP,Scrum间接限制WIP
6 经验主义
二者用的时候需要先进行试验,在根据自己的环境做调整。
这种方式有很多叫法:
Kaizen(持续改进,精益术语)
Inspect & Adapt(内省与调整,Scrum术语)
Empirical Process Control(经验式过程控制)
The Scientific Method(科学方法)
反馈环(改变-检查结果-从中学习-继续改变),一般反馈环越短越好,可以快速调整
7 Scrum在迭代内拒绝变化
Sprint中backlog一般不变,长度适中的sprint让团队有足够的时间全心全意把既定事情做完,同时产品负责人可有规律的调整优先级
Kanban原则是“一件出去,一件进来”,WIP驱动,看板团队多久响应变化屈居于多久完成手头事情
8 Scrum板在迭代之间重置
不同时期板子不同样子,Sprint结束后重新开始;看板图几乎是不变的
Scrum板归属团队,看板图对应流程,不非得一个团队
用看板时,需要建立基础,哪些人可以用,怎么用
9 任务拆分
二者都是增量开发,把工作拆分成小可
Scrum有时长限制,任务要匹配迭代长度
Kanban没有时长限制,有可能有一天完成的有一个月完成的任务
10 估算和生产率
Scrum估算相对大小,迭代结束时,每个任务大小相加,就得到生产率
看板没有估算,如果要承诺,就要思考如何预测
11 既精益又敏捷
二者和精益思想和敏捷价值观和原则时吻合的
如:
二者都是拉动式计划系统,和精益的JIT(准时化)库存管理原则一致,团队决定什么时候开始干活干多少活,团队就绪后把工作“拉过去”,而不是从外部“推进来”
二者都是基于持续的、经验主义的过程优化,和精益的Kaizen原则一致
二者都强调响应变化胜过遵循计划(看板比Scrum响应速度更块)
某个角度,Scrum也不那么精益,因为它把批量任务放到固定的迭代里面去;但相对每年交付几次,每两周一次迭代就显得精益了;如果Scrum 迭代在缩短,就像Kanban靠拢了。
不断尝试,选择适合团队的方式
12 小小差异
Scrum的优先级在下个Sprint调整,Kanban只要有人释放出来就可以随时调整
Scrum规定了站会、燃尽图
13 总结
相似性:
既精益又敏捷;
拉动式计划;
限制WIP;
以透明方式驱动过程改进;
关注尽早交付,频繁交付可发布软件;
自组织型团队,都可以视需要增加角色;
需要把工作拆分;
发布计划根据经验数据(生产率/生产周期)不断优化
差异: