文档章节

使用看板进行敏捷开发

黄勇
 黄勇
发布于 2014/01/29 17:41
字数 1738
阅读 14708
收藏 232

今天想与大家分享一款敏捷开发工具“看板”,该词汇来自于岛国,当我看到看板的英文时,我真的惊呆了,看板竟然就是 Kanban?!

我们可以结合 Scrum 与 Kanban,让项目管理更加有效,让资源分配更加合理,让绩效考核更加公平!

  • 对于项目经理而言,最担心的就是项目进度不可控,不知道每位开发人员具体的工作进度,有了 Kanban 一切都是那么地清晰。

  • 对于开发经理而言,最担心的就是资源分配不合理,忙的人忙死,闲的人闲死,有了 Kanban 一切都是那么地自然。

  • 对于开发人员而言,最担心的就是绩效考核不公平,“凭什么我做的比他多,拿的工资却比他少?不公平啊!”有了 Kanban 一切都是那么地公平。

可见,项目经理、开发经理、开发人员拥有了 Kanban,也就拥有了和谐与快乐!


那么 Kanban 到底是什么呢?我们先来看看这张表格吧:

image

下面我们来理解一下这个表格吧!

  • 这个表格有 5 列:Backlog(原始需求)、Selected(被选中的需求)、Develop(开发阶段)、Deploy(部署阶段)、Live(上线阶段)

  • 其中 Develop 阶段包括 2 个子阶段:Ongoing(进行中)、Done(已完成)

  • 包括 3 中角色:产品经理(红色小人)、开发人员(蓝色小人)、部署人员(绿色小人),其实还有项目经理,只是他/她贯穿于始终,所有就没有画出来了。

在 Backlog 中放置了许多小卡片,它们在 Kanban 中被称为 WIP(Work In Process,在制品)。对于产品经理而言,WIP 是需求,而对于开发人员与部署人员而言,WIP 却是任务。

实际这些 WIP 卡片上都带有一些文字描述,包括:标题、描述、优先级等信息。

需要注意的是,Selected、Develop、Deploy 下方有一个数字,该数字表示此阶段中最多可以放置的 WIP 数量。例如,在 Selected 中最多只能放 2 个 WIP;在 Develop 中(包括它的子阶段)最多只能放置 2 个 WIP。这里的数字只是一个示例,具体多少可根据团队实际情况而定。有一个经验公式可以参考“WIP 上限 = 团队规模 * 2 - 1”,减 1 表示大家需要协作,例如:4 人的团队,WIP 上限是 7。

也许有人会提出,为什么没有 Test 阶段?—— 这个可以有,这里只是一个示例而已,你不妨自行加上去。

对于多个项目而言,可以在这张表格中添加更多的泳道(行),每一行相当于一个项目,所有的项目进度清晰明了。

好!继续我们的 Kanban,有意思的事情即将发生!


image

产品经理挑选了 2 个 WIP 到 Selected 中,此时,由开发经理决定该任务的技术难度,并由项目经理将任务分配到指定的开发人员,也可将同一个任务分配给两个人,让他们去结对编程。

开发人员(架构师与程序员)可对 Selected 中的需求进行工作量评估,可采用投票的方式进行,最终给出一个合理的评估值,整个估算过程,项目经理无需参与,主要是开发人员共同完成。

开发经理可以对任务设置一个“分值”,这个分值可直接影响到后续的绩效考核,所以对大家来说,这个分值是公开可见的,谁做的多,谁做得少,一目了然。当然,开发人员也可以主动承担具有更具挑战的任务(为了锻炼自己,也为了多拿点钱),但任务分配的决定权始终在项目经理手中。


image

现在假设 A、B 两个任务已经分别被不同的开发人员处理了,那么这些任务就应该移动到 Ongoing 中,同时,产品经理可以从 Backlog 中挑选出 2 个优先级较高的需求到 Selected 中。这样就保证 Selected 与 Develop 都达到了 WIP 的上限。


image

有人已经把 A 做完了,那么 A 就可以移动到 Done 中了。随后,部署人员就可以开始干活了。


image

部署人员就可以将 A 从 Done 中移动到 Deploy 中,表示部署人员正在做这件事情。同时,做完了 A 任务的开发人员可以再做其它新任务,只需从 Selected 中移动到 Ongoing 中,移动这件事情不是开发人员随意操作的,而是有项目经理负责的。产品经理发现 Selected 中只有一个 D,就可以考虑放入一些新的需求了。


image

此时,部署人员遇到了问题,发现 A 部署的时候总是报错,跑不起来了。同时,其他开发人员也完成了 B 任务。


image

完成了 B 任务的开发人员本来是可以做新需求的,但项目经理发现 Develop 中只能放 2 个任务,所以肯定是后面的阶段出现了问题,导致整个流程受阻了。项目经理可以灵活调度人力资源,集中火力解决现在所遇到的问题。


image

所以项目经理不得不放弃新的任务,去让开发人员去帮助部署人员来解决问题。此时,其他的开发人员还在进行 C 任务。


image

部署的问题还没来得及解决,此时 C 任务也完成了,同时,产品经理也放入了新的 K 需求,确保 Selected 这个水池是装满水的。


image

整个部署问题看起来比较搞人,所有的开发人员全都上阵了,集中更多人的智慧,解决这个棘手的问题。此时,产品经理不能放入更多的需求,由于此时 Selected 已经满额了。其实,开发人员面对太多的需求时,往往都会倍感压力,身心憔悴。


image

看来这个部署问题,确实够折腾的,连产品经理都过来了凑热闹了。但他或许不懂技术,但多个人多个头脑吧,正所谓“当局者迷,旁观者清”,最终经过大家的努力,肯定会攻克这座碉堡!


image

几天之后,Kanban 流程依旧是稳定的,大家分工协作,人力资源合理利用。大家是一个团队,目标就是把项目做好,不会因为自己的事情做完了就闲置了。


我们不妨将这张表格贴到墙上去吧!让每个员工都可以看到,让过路的老板们也可以看到我们的辛苦努力,这确实是一种非常好的项目管理方法!

image

© 著作权归作者所有

共有 人打赏支持
黄勇

黄勇

粉丝 6216
博文 121
码字总数 216155
作品 1
浦东
CTO(技术副总裁)
加载中

评论(47)

车夫
车夫
“看板上墙”是为了查看及时,需要分析的时候往面前一站或者坐在位置上就可以分析。同时,以看板为依据的站立式晨会能够起到“打击瞌睡虫”以及“提神醒脑”的功效。如果把看板做成软件,看板的功效率是个问题,目前看来把看板贴在墙上既能给办公室增添“逼格”,也能灵活变化。 好了,俺的牛逼吹完了
行走的班渠
行走的班渠

引用来自“Deajoha”的评论

mark

我们在做互联网金融,房租分期月付,叫斑马王国,最近在招聘工程师,有兴趣的话加我微信聊,微信号bentleyban
黄勇
黄勇

引用来自“haitaosoft”的评论

引用来自“黄勇”的评论

1. 如果公司有条件的话,可以搞一个大屏幕液晶电视,把他挂在墙壁上,项目经理可在电脑上操作,然后在显示在电视。每个人都可以看,但不能随意移动,只有项目经理才能控制。
2. 我认为没有必要维护两个看板了,不管是一级任务还是二级任务,都是任务,可以在任务卡片上标注一个任务级别(或父任务号)。
3. 没有必要分两套,任务看板只能是一套,分多了就是去了它的意义,信息也不够集中了。
@haitaosoft

如果不能左右、上下滚屏,再大(分辨率)的屏幕都无法在一屏内显示完。。。。
几个屏幕接起来,可能也不一定。。。。行、列多的话

而不能滚动的屏幕,又太浪费。。。。

是啊,所以最简单的方式还是白板或墙壁,这个又便宜又环保:)
haitaosoft
haitaosoft

引用来自“黄勇”的评论

1. 如果公司有条件的话,可以搞一个大屏幕液晶电视,把他挂在墙壁上,项目经理可在电脑上操作,然后在显示在电视。每个人都可以看,但不能随意移动,只有项目经理才能控制。
2. 我认为没有必要维护两个看板了,不管是一级任务还是二级任务,都是任务,可以在任务卡片上标注一个任务级别(或父任务号)。
3. 没有必要分两套,任务看板只能是一套,分多了就是去了它的意义,信息也不够集中了。
@haitaosoft

如果不能左右、上下滚屏,再大(分辨率)的屏幕都无法在一屏内显示完。。。。
几个屏幕接起来,可能也不一定。。。。行、列多的话

而不能滚动的屏幕,又太浪费。。。。
黄勇
黄勇
1. 如果公司有条件的话,可以搞一个大屏幕液晶电视,把他挂在墙壁上,项目经理可在电脑上操作,然后在显示在电视。每个人都可以看,但不能随意移动,只有项目经理才能控制。
2. 我认为没有必要维护两个看板了,不管是一级任务还是二级任务,都是任务,可以在任务卡片上标注一个任务级别(或父任务号)。
3. 没有必要分两套,任务看板只能是一套,分多了就是去了它的意义,信息也不够集中了。
@haitaosoft
haitaosoft
haitaosoft

引用来自“黄勇”的评论

引用来自“haitaosoft”的评论

1、顶部的标题,还分多行?
如:Develop 2/Ongoing Done
为什么不直接分2列?

2、任务
能不能直接以树形的工作任务分解做替代?
这样,会带来一个问题:任务们不是一个层次的。。。

3、人员
能不能以树形的行政组织关系做替代?
这样,也会带来一个问题:人员们不是一个层次的。。。

多层次的必要性:
不同的人,可能关注的层面不同
领导更关注更大层面的任务(项目或项目的一级分解)或人员(部门或项目组)
基层更关注更具体的任务或人员

有点打算以delphi先开始实行一个客户端的程序,试一试看板的理解

1. 因为需要保证 Develop 上的任务上限等于 Ongoing 与 Done 的任务上限之和。
2. 任务是否具有层次结构,这些可能不会对看板有影响(我个人认为)。
3. 不建议将人员分级,而是建议将人员分角色,让项目经理管控整个项目即可。
将这张看板贴在公司的墙上或白板上,不同层次的人都可以关注整个项目的进度,老板知道员工在做什么,员工也知道自己该做什么。
以上仅为个人理解,欢迎交流与讨论。

昨天在一本电子书里看到:【无论是任务墙还是看板,都不鼓励使用电子系统,而是使用实体墙】
有点放弃的了。。。

1、那就是说各列的数量上限可以有一些约束关系,然后就可以全部摊开为一层了
2、有可能3个2级任务=1个1级任务
只看1级任务的看板 和 只看2级任务的看板,需要维护2套吗?
3、同2类似
只看部门的看板 和 只看项目小组的看板,需要维护2套吗?

Tom-Lin
Tom-Lin
尤其是,如果添加了 测试阶段,开发人员1(组) 开发的 任务A 出现 Bug,难道还要让其它的开发人员去改任务A 的 bug?
Tom-Lin
Tom-Lin
还有,如果因为部署任务A出现问题,导致项目延误,绩效怎么算?对其它开发人员公平吗?
Tom-Lin
Tom-Lin
这里有个问题,任务A 是由 开发人员1(组) 开发的,但部署任务A遇到问题的时候, 开发人员1(组) 正在开发 任务C,那么,项目经理排谁去解决 任务A 的部署问题?由 开发人员1(组) 去解决,还是由 开发人员2(组) 解决?又或是其它什么方法?
黄勇
黄勇

引用来自“haitaosoft”的评论

1、顶部的标题,还分多行?
如:Develop 2/Ongoing Done
为什么不直接分2列?

2、任务
能不能直接以树形的工作任务分解做替代?
这样,会带来一个问题:任务们不是一个层次的。。。

3、人员
能不能以树形的行政组织关系做替代?
这样,也会带来一个问题:人员们不是一个层次的。。。

多层次的必要性:
不同的人,可能关注的层面不同
领导更关注更大层面的任务(项目或项目的一级分解)或人员(部门或项目组)
基层更关注更具体的任务或人员

有点打算以delphi先开始实行一个客户端的程序,试一试看板的理解

1. 因为需要保证 Develop 上的任务上限等于 Ongoing 与 Done 的任务上限之和。
2. 任务是否具有层次结构,这些可能不会对看板有影响(我个人认为)。
3. 不建议将人员分级,而是建议将人员分角色,让项目经理管控整个项目即可。
将这张看板贴在公司的墙上或白板上,不同层次的人都可以关注整个项目的进度,老板知道员工在做什么,员工也知道自己该做什么。
以上仅为个人理解,欢迎交流与讨论。
来自农行软开的看板站会秘籍和敏捷转型经验

农行软件开发中心二部从2017年底开始启动敏捷转型,以春天工程为试点项目组,探索出了一套适合传统银行的敏捷开发模式。 作为这个团队的外部敏捷教练,我有幸参与了这个团队转型的全过程,目...

leixu
04/25
0
0
著名看板任务管理工具推荐:使用Trello开展KANBAN工作法

最早接触看板是在敏捷开发的SCRUM模式中,当时每天早上大家都会站在一个看板前,团队每一位人员都向大家介绍昨天和今天的任务情况,并把相应的卡片移动到合适的栏位(TODO、DOING、DONE)。后...

yaotingxi
2015/11/03
0
0
[译] 敏捷、Scrum和看板:这些词到底是什么鬼?

当一个软件开发人员听到关于“新的JavaScript框架”或者“新的IDE”的新闻时,他不需要问多的问题的就能明白它是什么。但如果他听到的是”新的敏捷框架“时,他很可能会点点头,假装他知道...

暗夜在火星
2016/02/28
380
0
定制你自己的敏捷方法:选择适合用于你的敏捷方法

本文要点 你的团队是独一无二的。你的敏捷方法应反映团队所处的环境。 在团队层,通常会以时间箱或计划、演示和反思的节奏来开展工作。 为治理流程,研究你的WIP(在办任务)以搞明白你自己的...

Johanna Rothman
2017/12/11
0
0
大道至简,阿里巴巴敏捷教练的电子看板诞生记

导读:经历了从物理看板到电子看板的反复实践,阿里巴巴敏捷教练问菊体会最深的是“大道至简”,她说:“堆砌复杂的功能是容易的,提供简单方便的用户体验是困难的。”那么阿里巴巴的电子看板...

云效平台
01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
1
0
12.17 Nginx负载均衡

Nginx负载均衡 下面的dig看到可以返回2个IP,就是解析出来的IP,这样我们可以做负载均衡。 dig www.qq.com 1.vim /usr/local/nginx/conf/vhost/fuzai.conf 2.添加如下配置 upstream qq //定义...

芬野de博客
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部