2015/6/29

Scrum vs Kanban

Kanban vs Scrum 簡要說明並比較 scrum 以及 kanban,雖然兩者都屬於 agile managment 的方法,但在自由度的精神上,還是有些差異。一個 agile 團隊不會照單全收某個方法的所有工作指引,而是在透過討論與實際的驗證,決定該怎麼進行團隊管理,本文的作者認為可以整合 kanban 與 scrum 方法,調整為自己的團隊專屬的專案管理方法。

中文版 比較Kanban和Scrum

scrum

  1. 將所有成員分為數個 small, cross-functional, self-organizing teams
  2. 將整個專案切割為數個 small, concrete deliverables,並以 priority 以及預估的 effort 排序
  3. 將時間切割為 short fixed-length iterations (通常是 1~4 週),每一次 iteration 都能產出可 demo 可釋出的 code
  4. 持續跟客戶review release plan 並更新工作的優先順序,基本是以每一次 iteration 結束 release 的產出目標為基準。
  5. 每一次 iteration 之後,都要再 optimize process

kanban

  1. 將 workflow 以圖表視覺化
    切割工作項目,寫在卡片並貼在牆上
    在 workflow 中為每個工作 columns 命名工作階段
  2. 限制 WIP(work in progress),明確地限制每一個 workflow state 的 WIP 上限
  3. 估算 lead time(完成一個 item 需要的平均時間,也稱為 cycle time),持續改善 process 直到可以正確地估算 lead time

Agile 自由度

以下的圖表,將幾個管理方法放在 agile 自由度的光譜上度量,流程越複雜,細節越繁瑣的管理方法在左邊,輕量化,以軟體產出為主要目標,讓團隊更專注在專案開發上,減少專案管理 effort 的管理方法在右邊。



換句話說,Agile 就是讓團隊成員越自由,老闆不需要管什麼,就能自動把專案跟事情做好,但這應該只是理想,人與人之間還是需要一些溝通與資訊交換,才能確保軟體功能實作時,內部的資料邏輯與精神是一致的。

focus vs interrupts, repeatable vs exploratory innovation

Scrum 與 Kanban應用環境 文章中提到Scrum or Kanban? YES! 提出的一個比較的圖表。



二維的圖表可區分為五個區塊

  1. focus - innovation
    scrum
    同時需要專注在創新以及專案開發,並維持持續交付 deliverables
  2. focus - repeatable
    production line kanban
    例如生產線作業員、產品量產階段
  3. interrupts - innovation
    混合使用 scrum 與 kanban
  4. interrupts - repeatable
    support kanban
    例如客服中心、公司內部的 MIS,需要團隊持續維護,並作些微的調整與修改
  5. 中間
    kanban

類似的地方

  1. 都是符合 lean and agile 精神的管理方法
  2. 都使用 pull scheduling
  3. 都有限制 WIP (work in progress)
  4. 都利用 transparency 透明化來改善工作流程
  5. 都著重於儘早及經常交付可出貨的軟體
  6. 都是給 self-organizing team 使用
  7. 都要求把工作拆解成更小的工作細項
  8. 發佈計畫是根據資料(速度/前置時間)來持續優化

不同的地方

Scrum Kanban
timeboxed iterations prescribed (預先定義 itertation 的時間) timebox iterations optional (可區分 planning, release, process improvement 階段,且可以 event-driven 取代 timeboxed)
團隊 commits 每個 iteration 交付的工作量 commitment optional
velocity 生產率 作為流程改善與計畫的 metric Lead Time 生產週期 作為流程改善與計畫的 metric
cross-functional teams cross-functional teams optional 允許有 specialist teams
工作必須 break down 至 1 sprint 可完成的份量 沒有特定的 item size
burndown chart prescribed 沒有特定的 diagram
間接限制每個 sprint 的 WIP 直接限制每個 workflow state 的 WIP
estimation prescribed estimation optional
不能在進行中的 iteration 增加 item 只要團隊容量允許,就可以增加 item
由一個特定團隊維護 sprint backlog 數個團隊或多人共享一個 kanban board
有三個角色 PO/SM/Team 沒有預定的角色
sprint 結束後就重設 scrum board kanban board 是永久長存的 
預先定義 prioritized product backlog prioritization is optional

Reference

Scrum vs. Kanban:軟件開發新方法大比拚

Scrum 和 Kanban 的比較

從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup

硝煙中的Scrum和XP

看板管理

Kanban, Flow and Cadence

看板和Scrum——相得益彰

Kanban vs Scrum

Intro to Kanban in Under 5 Minutes (What is Kanban, Learn Kanban)

Scrum和Kanban比較的結論