Kanban敏捷开发

Kanban是敏捷开发(Agile Development)的一种实现模式。

早在1940年,日本丰田公司已借鉴超市库存的管理方法来改善自身的工作流程。超市在管理库存的时候,总希望库存量尽可能与消费者的需求接近,以减少不必要的库存。只要库存量能够及时根据消费者的需求量来调节,超市就能极大地提高仓库的运行效率,从而最终为自身和消费者都创造价值。丰田公司采用了这种及时管理模式(Just In TimeJIT)。

在丰田公司内部,当一个组完成现有任务并准备好接受下一个任务时,它会把这个信息通过向其他组递出一张卡片,或者Kanban,来传达。虽然现代Kanban工作流程有了很大改进,但是它依然保留着Just In Time的核心理念。

简单来说,及时制度(JIT)主要的核心是“让正确的物资,在正确的时间,流动到正确的地方,数量是刚刚好的数量。” -- Wikipedia

这种管理模式同样适用于管理软件开发。


尽早发现瓶颈

假设一个小组的工作流程为一个pipeline。如果里面的testers一周只能测试5个features,那么即使developers一周能实现10个新features,整个小组一周也只能交付5个features。这里,testers就是pipeline中的瓶颈。

假如这个瓶颈没有被发现,那么testers面前的任务就会堆积如山,尽管如此,整个小组的效率并没有得到提高。

如果问题得不到解决,developers辛辛苦苦实现出来的新features无法及时投放市场,最终将可能导致错失商机。更有严重的是,如果testers为了提高效率,降低对质量的要求,将有可能导致低质量的代码进入到产品中。 从另外一个角度来说,如果团队及时发现瓶颈所在,就能对此作出调节。比如,他们可以调派更多的testers,或者让部分developers帮助完成部分的test automation工作。

所以,我们回到一开始的主题,看看Kanban如何及时地向团队反馈当前的瓶颈!

举一个栗子

Kanban管理模式简洁而有力。一个简单的Kanban系统甚至可以由一张大纸板,和贴在上面的便签组成。

在这个系统中,大纸板上画有多个列表。一个列代表一个的工作步骤,一张便签即代表一个的任务。每个任务都经过这个工作流程从最左边的列流向最右边的列。每个列顶部有一个数字limit,代表该列最大便签容量。

这个容量limit是Kanban和管理模式最大的不同。通过限制某步骤的最大容量,Kanban能够防止过度生产(overproduction),并动态地揭示流程的瓶颈。

Limiting work-in-progress reveals the bottlenecks so you can address them.

在下面的栗子中,Test一栏已经达到了它最大的工作容量3,不能够放入新的任务。Analysis和Development因为Test进度的原因,无法把已经完成的任务挪到下一栏,也到达了它们的最大容量(3和5)而不能放入新任务。通过Kanban表格,团队发现Test成为了瓶颈,并开始思考如何帮助testers改进测试环节的效率。

当testers完成了一个任务之后,这个任务便签就被挪到Deploy一栏。

由于现在Test一栏终于可以接受新任务了,Test、Development、Analysis从各自上一栏中挪入一个新的任务便签。

从上面的例子可以看出,Kanban能够动态地展示团队工作流程的瓶颈。一旦Project Manager发现某个环节影响到团队进度,ta可以及时调配资源改进这个环节。

四大核心原则

Kanban从脱胎自丰田公司的工程管理方法以来,在不同领域都有发展出具有领域特色的实现形式。虽然形式多样,但是它们始终遵循着下面一些核心原则。(Kanban有四大原则和五大原则两种不同说法,这里我们采用了较为流行的四大原则说法)

为了表述准确,我们这里直接引用了文章 LeanKit:What is Kanban? 中对这四大原则的阐释。

  • Visualize the workflow
  • Limit Work in Process
  • Focus on Flow
  • Continuous Improvement

Visualize the workflow
By creating a visual model of your work and workflow, you can observe the flow of work moving through your Kanban system. Making the work visible—along with blockers, bottlenecks and queues—instantly leads to increased communication and collaboration.

Limit Work in Process
By limiting how much unfinished work is in process, you can reduce the time it takes an item to travel through the Kanban system. You can also avoid problems caused by task switching and reduce the need to constantly reprioritize items.

Focus on Flow
By using work-in-process (WIP) limits and developing team-driven policies, you can optimize your Kanban system to improve the smooth flow of work, collect metrics to analyze flow, and even get leading indicators of future problems by analyzing the flow of work.

Continuous Improvement
Once your Kanban system is in place, it becomes the cornerstone for a culture of continuous improvement. Teams measure their effectiveness by tracking flow, quality, throughput, lead times and more. Experiments and analysis can change the system to improve the team’s effectiveness.

Scrum vs. Kanban

KanbanScrum 虽然有很多相似的概念,但是它们是两种不同的项目管理方法。这里,我们引用文章 Atlassian: A brief introduction to kanban 中的一个表格来比较两者之间的不同。

Item SCRUM KANBAN
Cadence Regular fixed length sprints (ie, 2 weeks) Continuous flow
Release methodology At the end of each sprint if approved by the product owner Continuous delivery or at the team's discretion
Roles Product owner, scrum master, development team No existing roles. Some teams enlist the help of an agile coach.
Key metrics Velocity Cycle time
Change philosophy Teams should strive to not make changes to the sprint forecast during the sprint. Doing so compromises learnings around estimation. Change can happen at any time

有的团队把KanbanScrum两种方法糅合成一种叫做Scrumban的方法。这个方法吸取了Scrum中固定长度的Sprint和各种角色(Product OwnerSprint Master等等)概念,同时也吸收了Kanban中“Focus on Flow” 和 “Limit Work In Progress”等原则。但是,刚开始采用Agile的团队建议只采取ScrumKanban中的一种,在熟练掌握所选方法后才根据团队特点进行相应的糅合或创新。

参考资料

Kanban敏捷开发
Atlassian: A brief introduction to kanban
LeanKit:What is Kanban?
Kanban Blog:What is Kanban?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,355评论 0 23
  • 人生应当常过在细节处,若总是行事匆匆则很难有心态和机会去发现生命里的美好,囫囵吞枣是吃不出真正的滋味的。因此我们需...
    山贼爷阅读 428评论 0 2
  • 因为言言最近都七点左右自然醒,理所当然去幼儿园都能赶上早操时间。昨天我还想说平时在家能唱能跳的,刚好可以将...
    言为心声hl阅读 167评论 0 0
  • 阿混 故乡有条河叫汤溪河,汤溪河水冰凉清沏,是个极好的天然冰箱。夏日,早早地将啤酒西瓜放在河水里,...
    阿混胡子阅读 164评论 0 0