敏捷开发 Scrum vs Kanban,如何选择?

两大方法

虽然敏捷诞生只有20年的时间,但却帮助了很多企业取得了成功,在这期间也出现了各种敏捷方法论和思想体系,这篇文章,我们试图去讨论一个问题:对于准备实施敏捷的团队,在Scrum和Kanban两种方法之间如何选择?(特别说明:有人会说Kanban其实是一套思想体系,不是方法论,这里我们不想陷入概念之争,只想解释他们适用的场景,所以下文中都会称呼他们为方法,而不会刻意加以区分)。

Scrum和Kanban两者都作为符合精益思想和敏捷的思考结果,他们之间必然会有一些相似点:

  • 两者都限制开发中工作数目
  • 两者都是通过透明度来驱动过程改进
  • 两者都提倡提及时且稳定的交付价值
  • 两者都基于自组织型团队
  • 两者都要求把工作细分
  • 两者都是基于经验数据持续优化

再来看看两者之间的一些区别:

下面结合实例来演示Scrum和Kanban这两种方法如何在Worktile Agile中体现。

Scrum

在标准的Scrum流程定义中,有两个关键的产物:Product Backlog和Sprint Backlog,以及四个关键的会议:计划会议、每日立会、评审会议和回顾会议。
在Worktile Agile产品中,我们把Product Backlog分为需求和缺陷,其中需求部分使用Epic-Feature-User Story三级体系来表示。

  • Epic:史诗,表示比较大的特性,开发周期一般是1-3月,用于产品路线图的规划
  • Feature:特性,表示相对小一些的特性,开发周期一般是1-3周,用于产品版本的规划
  • User Story:用户故事,表示最小的用户场景,开发周期一般是1-3天,用于迭代规划。

图1 Worktile Agile中需求管理

在每个迭代开始时会召开计划会议,全员都会参加,这个会议最重要的事情就是确定Sprint Backlog,由Product Owner按照优先级介绍Product Backlog,然后团队决定是否把某一个条目放入当前迭代。

图2 Worktile Agile中迭代规划

迭代进行的时间内,每天都会有10-15分钟的站立会议,团队中每个成员基于Worktile中的迭代任务板介绍前一个工作日所做的事情,以及遇到的问题。

图3 Worktile Agile中的迭代任务板

迭代结束时召开评审会议,在评审会议上每个人基于产品演示自己在这个迭代中所完成的成果,团队成员可以针对完成的事项提一些建议。在评审会议结束后,团队成员会一起召开迭代回顾会,回顾会是Scrum迭代实践中的最后一环,也是最重要的一环,迭代回顾会将整个迭代形成了闭环。回顾会上大家提出的问题通过迭代回顾面板记录。

图4 Worktile Agile中的迭代回顾面板

在Scrum实践中,大部分团队都会忽视版本管理,迭代是针对Scrum团队的活动行为,而版本管理是针对产品的,它定义的是一个批量的概念,用于版本进度管理和交付风险管理,明确在一个版本中的最终交付物,Worktile Agile中你可以创建版本并把它与迭代关联,或者只是单纯的设置某个用户故事/缺陷属于某个版本

图5 Worktile Agile中的版本管理

Kanban

对于一个团队采用Kanban方法来管理是否能够成功,取决于使用Kanban后能否为你的团队带来以下几点改进:

  • 帮助团队可视化整个链条的价值流动
  • 帮助团队识别价值流动中的风险点
  • 帮助团队度量价值流动中的各种浪费,并加以消除

基于这些考虑,在Worktile Agile中的Kanban项目类型,目前支持以下的能力:

  • 能够清晰定义在制品WIP
  • 能够清晰定义在制品限制WIP Limit
  • 明确定义DoD
  • 支持多泳道分割

图6 Worktile Agile中的Kanban项目

在Worktile Agile中的同一个项目中,支持同时创建多个看板,便于你根据业务场景的不同,或者团队角色的不同定义多个看板,并且可以针对每个看板的需要进行个性化的配置。

图7 根据团队的需要个性化你的看板

因地制宜

讲完了Scrum和Kanban的基础知识,以及在Worktile Agile中对于Scrum和Kanban的支持,我们来看看在实际团队落地时,如何结合实际情况在二者之间选择。

    1. 如果你的团队是产品导向型的,推荐使用Scrum;如果是研究导向型的,比如性能优化、编码优化等不确定性非常大的,推荐使用Kanban。
    2. 团队规模适中,5-9人左右,并且有跨功能团队成员,推荐使用Scrum;相反如果你的团队规模比较小,只有2-5人左右,推荐使用Kanban,相对效率较高。
    3. 产品或者项目交付是按照一定的周期来计算,比如每2周或每个月要求有一个新的版本,推荐使用Scrum;如果产品或者项目的交付不是按周期来计算,而是按照某个特定的事件为标志,比如性能提升了10%发布一个新版,推荐使用Kanban。
      当然这些只不过是一点经验之谈,具体还要看团队的实际情况,因地制宜,来推动敏捷在团队的真正落地,而不是流于形式。

本文作者:Worktile CTO Terry

Worktile 官网:worktile.com

文章首发于「Worktile官方博客」,转载请注明出处。

原文地址:https://www.cnblogs.com/worktile/p/12659886.html

时间: 2024-07-29 09:13:12

敏捷开发 Scrum vs Kanban,如何选择?的相关文章

柯南君: 教你看敏捷开发のScrum是怎样工作的?

柯南君 教你看敏捷开发のScrum是怎样工作的? 如今敏捷开发是越来越火,人人都在谈敏捷.人人都在学习Scrum和XP,柯南君的朋友"远哥"是一位项目leader.柯南君与远哥促膝长谈.远哥也毫不避讳.知无不言言无不尽.把自己对Scrum的理解和自己工作中的经验积累与柯南君分享,在这里柯南君取代远哥与大家分享一些经验. 一. 什么是敏捷开发? 敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的开发方法. 怎么理解呢?首先.我们要理解它不是一门技术,它是一种

敏捷开发 Scrum 综述

敏捷开发 Scrum 综述 这一星期学习了敏捷开发,然后阅读了相关的书籍,从网上查找了很多相关的资料,对敏捷开发scrum有了更加深刻了理解,对敏捷开发做了如下总结: 一.什么是敏捷开发? 敏捷开发提倡的“增量迭代.及时交付”的思想.这种模式能最大程度地不偏离客户需求的本质. 敏捷不是指某一种具体的方法论.过程或框架,而是一组价值观和原则.符合敏捷价值观和原则的开发方法包括:极限编程( XP), Scrum, 精益软件开发( Lean Software Development), 动态系统开发方

一张图带你了解敏捷开发Scrum

最近我公司在全力推行敏捷开发Scrum,感觉效率提升很大,所以简单分享下敏捷开发Scrum. 00.敏捷Scrum宣言: 一.重点的一张图 图中体现了SCRUM框架,包括3个角色.3个工件.5个活动.5个价值,下面一一说明. 二.3个角色 对应重点图右上角: Product Owner:简称PO, 产品负责人,  负责维护产品订单的人,代表利益相关者的利益. Scrum Master:简称SM,可以理解为Scrum主管,为Scrum过程负责的人,确保scrum的正确使用并使得Scrum的收益最大

敏捷开发-Scrum 实战

最近把之前学习 Scrum 的资料整理为一篇文档,在接下来的团队和项目开发中,根据项目的情况引入 Scrum 的一些实践,提高团队成员之间的协作能力和项目的交付质量. 参考资料: <轻松Scrum之旅-敏捷开发故事>.<敏捷无敌> 硝烟中的Scrum 和 XP 火星人敏捷开发手册 Scrum-Checklists 维基百科:http://zh.wikipedia.org/wiki/Scrum Scrum 工具 禅道 JIRA+GreenHopper Scrum 中的角色 Scrum

记敏捷开发——Scrum

前言 首先说说为什么会接触到敏捷开发,因为自己跳槽了,进入一家新的互联网公司,公司用的是敏捷开发的开发模式,进行产品开发的迭代.公司的产品是一个线上平台,说白了就是电子商务,主要做智能办公,其中涉及到一些东西就不一一细说了.回到正题,其实自己也一直想接触这种模式,一来是这种开发模式被越来越多的企业所采用,二来是自己也想学习一些心得东西来提高自己的水平.之前任职于一家科技公司,时间久了就觉得比较乏味.思考良久,还是决定换个环境,换种思维,接下来说重点. 主题 ————以下是我搜集的一些资料————

柯南君 教你看敏捷开发のScrum是如何工作的?

现在敏捷开发是越来越火,人人都在谈敏捷,人人都在学习Scrum和XP,柯南君的朋友"远哥"是一位项目leader,柯南君与远哥促膝长谈,远哥也毫不避讳,知无不言言无不尽,把自己对Scrum的理解和自己工作中的经验积累与柯南君分享,在这里柯南君代替远哥与大家分享一些经验. 一. 什么是敏捷开发? 敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的开发方法. 怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用

敏捷开发— —Scrum 学习笔记

敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作.面对面的沟通(认为比书面的文档更有效).频繁交付新的软件版本.紧凑而自我组织型的团队.能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用. 如果要实行一个很好的scrum,通常要满足两点:一.团队有三名或以上的研发工程师:二.团队内有一名

敏捷开发 scrum管理

项目准备阶段 1.产品经理将整体项目拆分成不同的单独模块,每个模块尽量细化到能够自成一体.例如app的登录注册模块,不能仅仅就是登录注册这两个界面,而是要将所有与这有关的需求整合到一块.要达到的效果就是用户直接能用这个功能. 2.开发团队根据需求列表,做工作量的预估和安排. 开发准备阶段(每一次迭代都是都是一种冲刺) 1.项目技术主管搭建项目框架(框架高水准要求),并将这次迭代从全局方面来进行细化. 2.项目成员根据主管的安排,细化每个人的工作量以及完成时间,具体方式如下: 下图所展示的是计划纸

敏捷开发Scrum学习

官方:http://baike.baidu.com/link?url=VGFzdJpuHX3g90kIX6l1QABWMmBNyf30sTGuEcJ6OJVMq0Cot1G9Imbu1gls-xpI6i4zNZEbia3fLz9LV8guvq 转自:http://www.cnblogs.com/taven/archive/2010/10/17/1853386.html