What's Kanban
Kanban,源自日語“看板”(冷知識(shí):Kanban 和漢語拼音一致),是由日本豐田公司的工程師大野大一于 1940 年發(fā)明的一套及時(shí)管理模式(Just In Time, JIT)。JIT 的核心理念是:
讓正確的物資,在正確的時(shí)間,流動(dòng)到正確的地方,數(shù)量是剛剛好的數(shù)量

在敏捷軟件開發(fā)流行后,工程管理人員也將 Kanban 引入到了軟件開發(fā)當(dāng)中,成為了與 Scrum 比肩的一套通用實(shí)現(xiàn)模式。雖然現(xiàn)代版 Kanban 比當(dāng)年豐田幾只木架、幾張貼紙豐富得多,但是主要功能還是還是這么幾點(diǎn):
- 可視化工作
- 限制進(jìn)行中的工作(WIP)
- 最大化工作效率或流程
- 持續(xù)改善團(tuán)隊(duì)秩序
Basic
Kanban 的基本組成其實(shí)非常簡單:一塊看板,一個(gè)泳道圖和幾張貼紙:

-
Kanban Board:
豐田用的看板非常簡陋,現(xiàn)代的開發(fā)團(tuán)隊(duì)通常會(huì)使用,例如trello,這種更專門的看板工具。上面提到過,看板的主要功能是可視化一個(gè)項(xiàng)目或是工作流。它能直觀地展示任務(wù)項(xiàng),使團(tuán)隊(duì)成員隨時(shí)查看每個(gè)任務(wù)的狀態(tài)。
-
Kanban List or Lane
泳道圖的每一列表示項(xiàng)目進(jìn)程的不同階段;每一個(gè)泳道上會(huì)貼一些卡片,代表該階段正在處理的任務(wù)。我們可以將整塊看板抽象為管道,每個(gè)泳道就是管道內(nèi)先后執(zhí)行的處理器,卡片從左往后通過管道后,完成產(chǎn)品交付;交付花費(fèi)的時(shí)間我們稱為 Cycle time,是 Kanban 的一個(gè)重要指標(biāo)。
Pipeline & Processors各泳道通常使用 To-Do、Doing、Done 這類能明確表達(dá)流程先后順序的標(biāo)簽,以幫助我們直觀地發(fā)現(xiàn)各個(gè)階段的瓶頸。我曾看到過有些團(tuán)隊(duì)的看板泳道是“高”、“中”、“低”這種優(yōu)先級(jí)標(biāo)簽,這個(gè)一般用作 planning 階段的任務(wù)池(backlog),常于 Kanban 結(jié)合使用。
-
Kanban Card
每張卡片代表的是一個(gè)任務(wù)項(xiàng),它一般包括受托人、截止時(shí)間、優(yōu)先級(jí)、分類、狀態(tài)等等 tag,現(xiàn)代開發(fā)工具一般都可以對(duì)這些 tag 進(jìn)行篩選和查詢。開發(fā)團(tuán)隊(duì)通過對(duì)卡片進(jìn)度的追蹤,可以了解到該任務(wù)的生命周期。
這里再廢話幾句,Kanban 在上世紀(jì)四十年代被發(fā)明出來的時(shí)候,確實(shí)是工業(yè)界的一次“認(rèn)知升級(jí)”,簡單高效,影響深遠(yuǎn)。但是都這么多年了,其實(shí)也沒太多神秘光環(huán)了,大家別再過分挖掘一塊板或是一張紙有什么內(nèi)在的深刻的含義了。
-
Work in progress(WIP) Limits
Kanban 還有個(gè)核心概念叫做 WIP 限制,主要用來指定各階段的最大負(fù)荷。限制 WIP 可以幫助領(lǐng)導(dǎo)干部更快地識(shí)別出工作流程中效率最低的那個(gè)階段,也就是交付管道中的瓶頸;盡早發(fā)現(xiàn)瓶頸能有效防止過度生產(chǎn),并及時(shí)投入資源去解決最急切的問題。
WIP 限制是 Kanban 有別于其他敏捷開發(fā)模式的最大特色。通俗來說,Kanban 關(guān)注的其實(shí)是吞吐量:通過一定的資源調(diào)動(dòng)來改善吞吐量,從而提升生產(chǎn)效率;而不是依賴 deadline 來提升效率。Bottleneck
Kanban vs. Scrum
OK,上文提到了另一種敏捷軟件開發(fā)模式 Scrum,它也常常給我們呈現(xiàn)一幅貼紙卡片板的形象。那 Scrum 和 Kanban 有什么區(qū)別呢?
Role
角色分配是它們倆最直觀的區(qū)別。Scrum 有三個(gè)最基本的角色扮演:
- Product Owner:產(chǎn)品負(fù)責(zé)人,主要職責(zé)是分析用戶需求,并將這些需求分解為各個(gè)子任務(wù)。他是各個(gè)任務(wù)優(yōu)先級(jí)的制定者,以及最終發(fā)布產(chǎn)品的決策者
- Scrum Master:Scrum 管理的執(zhí)行者,俗稱“監(jiān)工”,負(fù)責(zé)人力和資源的調(diào)配,指導(dǎo)和監(jiān)督 Scrum 開發(fā)流程的執(zhí)行和落實(shí)
- Team Members:就是具體干活的人,敏捷軟件開發(fā)比較強(qiáng)調(diào)主觀能動(dòng)性,所以需要 member 們主動(dòng)攬活,還能互相扶持
相比之下,Kanban 更簡潔,沒有強(qiáng)制的角色分配,要求每個(gè)團(tuán)隊(duì)成員自發(fā)地履行執(zhí)行和監(jiān)督的職能。當(dāng)然,現(xiàn)實(shí)中保證會(huì)有一個(gè)領(lǐng)導(dǎo)干部的啦,不過存在感稍弱于 Scrum,還常常親自參與干活。
Workflow
工作流程上也有很大的區(qū)別,Scrum 是基于迭代周期(Sprint)執(zhí)行的,所以強(qiáng)調(diào)“按時(shí)完工”;而 Kanban 更關(guān)注最大 WIP,所以不強(qiáng)調(diào)時(shí)間結(jié)點(diǎn)。
Kanban 和 Scrum 的管理工具都是白板+貼紙的組合,主流的看板工具(如 Jira、TargetProces、Trello)都可以滿足兩者的需求。但是 Kanban 的每一列必需列出最大的 WIP 限制,要求每一列的卡片數(shù)量不得高于這個(gè)限制。

此外,Scrum 看板往往服務(wù)于一個(gè)較小組織,人力安排上要求這個(gè)組織包含全流程相關(guān)的所有技能,比如設(shè)計(jì)、測試、開發(fā)、架構(gòu)都能在這個(gè)組織里找到相應(yīng)的角色,因此常常需要一個(gè) member 擁有多種技能。
Kanban 相對(duì)應(yīng)于一個(gè)較大組織的全流程管理,一個(gè)小組往往只負(fù)責(zé)其中幾個(gè)相鄰泳道;人力分工更加精細(xì),更趨向傳統(tǒng)工業(yè)上的流水線管理。
Which to choose
那到底是選 Kanban,還是 Scrum 呢?顯然沒有明確的界碑,不過有這么幾點(diǎn)建議可以用作參考。
-
選 Scrum
- 你可以相對(duì)容易地細(xì)分每個(gè)任務(wù),并且這些細(xì)分的任務(wù)塊都能在規(guī)定時(shí)間內(nèi)(比如兩周)完成
- 需要整個(gè)項(xiàng)目的高度可預(yù)測性,Scrum 專注于將 sprint 時(shí)間減到最少
- 如果團(tuán)隊(duì)成員較新,Scrum 可以幫助大家更快地了解開發(fā)的全流程
-
選 Kanban
- 如果你的項(xiàng)目變更比較頻繁,包括需求、人力、時(shí)間等等變更
- 任務(wù)塊很難細(xì)分,并且?guī)缀醪豢赡茉趦芍軆?nèi)完工
- 團(tuán)隊(duì)比較成熟且紀(jì)律良好,即便沒有指定 deadline 也能保證作業(yè)能及時(shí)完工
當(dāng)然,我們也不必拘泥于教條,現(xiàn)實(shí)中常常把它們倆結(jié)合使用,現(xiàn)在還給這種結(jié)合起了一個(gè)專業(yè)名詞,叫Scrumban。敏捷軟件開發(fā)的“敏捷”是簡單高效的意思,大家千萬不要把它們搞成了玄學(xué);尤其是“原教旨主義”這一套,更是大可不必。
Benefits
OK,我們?cè)賮砜偨Y(jié)一下 Kanban 方法的優(yōu)點(diǎn):
-
靈活性(Flexibility)
由于 Kanban 并沒有規(guī)定的時(shí)間限制,因而團(tuán)隊(duì)可以更輕易地調(diào)整任務(wù)優(yōu)先級(jí),以便盡快解決生產(chǎn)瓶頸
-
透明性(Transparency)
團(tuán)隊(duì)共用一張視圖,每個(gè)人都可以清晰地觀察到工作進(jìn)度;領(lǐng)導(dǎo)干部能從更宏觀的視角觀察流水,并幫助制定提升計(jì)劃
-
關(guān)注度(Focus)
Kanban 的主要目標(biāo)是控制 WIP 數(shù)量,因此同一時(shí)間段內(nèi),一個(gè)小 team 只需要關(guān)注特定的任務(wù)數(shù),也就擁有了更充裕的時(shí)間來解決最緊迫的問題
-
生產(chǎn)效率(Productivity)
從 1940 年代起,Kanban 就在各行業(yè)中被證明是一種行之可效的管理方式,生產(chǎn)團(tuán)隊(duì)可以借助 Kanban 指標(biāo)(Cycle time)制定長遠(yuǎn)計(jì)劃,并提升生產(chǎn)效率。
講了這么多的 Kanban 的好處,也說一下我認(rèn)為的缺點(diǎn)。Kanban 畢竟是脫胎于重工業(yè)時(shí)代,強(qiáng)調(diào)的是組織性和紀(jì)律性,本質(zhì)上還是將人放到流水線上操作;當(dāng)生產(chǎn)線上的工人開始疲憊后,自然而然地會(huì)轉(zhuǎn)向“摸魚的藝術(shù)”。管理者在使用 Kanban 這類工具之外,也應(yīng)加入更多有趣的內(nèi)容,以幫助團(tuán)隊(duì)消除這類“疲憊感”。最后還是那句話——工具不是解決問題的關(guān)鍵,人才是!

