What's Kanban
Kanban珊佣,源自日語“看板”(冷知識:Kanban 和漢語拼音一致),是由日本豐田公司的工程師大野大一于 1940 年發(fā)明的一套及時管理模式(Just In Time, JIT)柱嫌。JIT 的核心理念是:
讓正確的物資虎敦,在正確的時間,流動到正確的地方身隐,數量是剛剛好的數量
在敏捷軟件開發(fā)流行后,工程管理人員也將 Kanban 引入到了軟件開發(fā)當中唯灵,成為了與 Scrum 比肩的一套通用實現模式贾铝。雖然現代版 Kanban 比當年豐田幾只木架、幾張貼紙豐富得多埠帕,但是主要功能還是還是這么幾點:
- 可視化工作
- 限制進行中的工作(WIP)
- 最大化工作效率或流程
- 持續(xù)改善團隊秩序
Basic
Kanban 的基本組成其實非常簡單:一塊看板垢揩,一個泳道圖和幾張貼紙:
-
Kanban Board:
豐田用的看板非常簡陋,現代的開發(fā)團隊通常會使用敛瓷,例如trello叁巨,這種更專門的看板工具。上面提到過呐籽,看板的主要功能是可視化一個項目或是工作流锋勺。它能直觀地展示任務項,使團隊成員隨時查看每個任務的狀態(tài)狡蝶。
-
Kanban List or Lane
泳道圖的每一列表示項目進程的不同階段庶橱;每一個泳道上會貼一些卡片,代表該階段正在處理的任務贪惹。我們可以將整塊看板抽象為管道苏章,每個泳道就是管道內先后執(zhí)行的處理器,卡片從左往后通過管道后馍乙,完成產品交付布近;交付花費的時間我們稱為 Cycle time垫释,是 Kanban 的一個重要指標。
各泳道通常使用 To-Do撑瞧、Doing棵譬、Done 這類能明確表達流程先后順序的標簽,以幫助我們直觀地發(fā)現各個階段的瓶頸预伺。我曾看到過有些團隊的看板泳道是“高”订咸、“中”、“低”這種優(yōu)先級標簽酬诀,這個一般用作 planning 階段的任務池(backlog)脏嚷,常于 Kanban 結合使用。
-
Kanban Card
每張卡片代表的是一個任務項瞒御,它一般包括受托人父叙、截止時間、優(yōu)先級肴裙、分類趾唱、狀態(tài)等等 tag,現代開發(fā)工具一般都可以對這些 tag 進行篩選和查詢蜻懦。開發(fā)團隊通過對卡片進度的追蹤甜癞,可以了解到該任務的生命周期。
這里再廢話幾句宛乃,Kanban 在上世紀四十年代被發(fā)明出來的時候悠咱,確實是工業(yè)界的一次“認知升級”,簡單高效征炼,影響深遠析既。但是都這么多年了,其實也沒太多神秘光環(huán)了柒室,大家別再過分挖掘一塊板或是一張紙有什么內在的深刻的含義了渡贾。
-
Work in progress(WIP) Limits
Kanban 還有個核心概念叫做 WIP 限制,主要用來指定各階段的最大負荷雄右。限制 WIP 可以幫助領導干部更快地識別出工作流程中效率最低的那個階段,也就是交付管道中的瓶頸纺讲;盡早發(fā)現瓶頸能有效防止過度生產擂仍,并及時投入資源去解決最急切的問題。
WIP 限制是 Kanban 有別于其他敏捷開發(fā)模式的最大特色熬甚。通俗來說逢渔,Kanban 關注的其實是吞吐量:通過一定的資源調動來改善吞吐量,從而提升生產效率乡括;而不是依賴 deadline 來提升效率肃廓。
Kanban vs. Scrum
OK智厌,上文提到了另一種敏捷軟件開發(fā)模式 Scrum,它也常常給我們呈現一幅貼紙卡片板的形象盲赊。那 Scrum 和 Kanban 有什么區(qū)別呢铣鹏?
Role
角色分配是它們倆最直觀的區(qū)別。Scrum 有三個最基本的角色扮演:
- Product Owner:產品負責人哀蘑,主要職責是分析用戶需求诚卸,并將這些需求分解為各個子任務。他是各個任務優(yōu)先級的制定者绘迁,以及最終發(fā)布產品的決策者
- Scrum Master:Scrum 管理的執(zhí)行者合溺,俗稱“監(jiān)工”,負責人力和資源的調配缀台,指導和監(jiān)督 Scrum 開發(fā)流程的執(zhí)行和落實
- Team Members:就是具體干活的人棠赛,敏捷軟件開發(fā)比較強調主觀能動性,所以需要 member 們主動攬活膛腐,還能互相扶持
相比之下恭朗,Kanban 更簡潔,沒有強制的角色分配依疼,要求每個團隊成員自發(fā)地履行執(zhí)行和監(jiān)督的職能痰腮。當然,現實中保證會有一個領導干部的啦律罢,不過存在感稍弱于 Scrum膀值,還常常親自參與干活。
Workflow
工作流程上也有很大的區(qū)別误辑,Scrum 是基于迭代周期(Sprint)執(zhí)行的沧踏,所以強調“按時完工”;而 Kanban 更關注最大 WIP巾钉,所以不強調時間結點翘狱。
Kanban 和 Scrum 的管理工具都是白板+貼紙的組合,主流的看板工具(如 Jira砰苍、TargetProces潦匈、Trello)都可以滿足兩者的需求。但是 Kanban 的每一列必需列出最大的 WIP 限制赚导,要求每一列的卡片數量不得高于這個限制茬缩。
此外,Scrum 看板往往服務于一個較小組織吼旧,人力安排上要求這個組織包含全流程相關的所有技能凰锡,比如設計、測試、開發(fā)掂为、架構都能在這個組織里找到相應的角色裕膀,因此常常需要一個 member 擁有多種技能。
Kanban 相對應于一個較大組織的全流程管理勇哗,一個小組往往只負責其中幾個相鄰泳道昼扛;人力分工更加精細,更趨向傳統(tǒng)工業(yè)上的流水線管理智绸。
Which to choose
那到底是選 Kanban野揪,還是 Scrum 呢?顯然沒有明確的界碑瞧栗,不過有這么幾點建議可以用作參考斯稳。
-
選 Scrum
- 你可以相對容易地細分每個任務,并且這些細分的任務塊都能在規(guī)定時間內(比如兩周)完成
- 需要整個項目的高度可預測性迹恐,Scrum 專注于將 sprint 時間減到最少
- 如果團隊成員較新挣惰,Scrum 可以幫助大家更快地了解開發(fā)的全流程
-
選 Kanban
- 如果你的項目變更比較頻繁,包括需求殴边、人力憎茂、時間等等變更
- 任務塊很難細分,并且?guī)缀醪豢赡茉趦芍軆韧旯?/li>
- 團隊比較成熟且紀律良好锤岸,即便沒有指定 deadline 也能保證作業(yè)能及時完工
當然竖幔,我們也不必拘泥于教條,現實中常常把它們倆結合使用是偷,現在還給這種結合起了一個專業(yè)名詞拳氢,叫Scrumban。敏捷軟件開發(fā)的“敏捷”是簡單高效的意思蛋铆,大家千萬不要把它們搞成了玄學馋评;尤其是“原教旨主義”這一套,更是大可不必刺啦。
Benefits
OK留特,我們再來總結一下 Kanban 方法的優(yōu)點:
-
靈活性(Flexibility)
由于 Kanban 并沒有規(guī)定的時間限制,因而團隊可以更輕易地調整任務優(yōu)先級玛瘸,以便盡快解決生產瓶頸
-
透明性(Transparency)
團隊共用一張視圖蜕青,每個人都可以清晰地觀察到工作進度;領導干部能從更宏觀的視角觀察流水捧韵,并幫助制定提升計劃
-
關注度(Focus)
Kanban 的主要目標是控制 WIP 數量市咆,因此同一時間段內,一個小 team 只需要關注特定的任務數再来,也就擁有了更充裕的時間來解決最緊迫的問題
-
生產效率(Productivity)
從 1940 年代起,Kanban 就在各行業(yè)中被證明是一種行之可效的管理方式,生產團隊可以借助 Kanban 指標(Cycle time)制定長遠計劃芒篷,并提升生產效率搜变。
講了這么多的 Kanban 的好處,也說一下我認為的缺點针炉。Kanban 畢竟是脫胎于重工業(yè)時代挠他,強調的是組織性和紀律性,本質上還是將人放到流水線上操作篡帕;當生產線上的工人開始疲憊后殖侵,自然而然地會轉向“摸魚的藝術”。管理者在使用 Kanban 這類工具之外镰烧,也應加入更多有趣的內容拢军,以幫助團隊消除這類“疲憊感”。最后還是那句話——工具不是解決問題的關鍵怔鳖,人才是茉唉!