敏捷開發中Kanban的實作方式

Kanban 「看板」方法

「看板」是一種生產管理系統,由1940年代的豐田汽車公司發明。名稱源自日文「看板」。看板方法用在軟體開發是由David Anderson於2010著書所倡導,屬於一種敏捷軟體開發方法。在軟體開發過程,可以使用用「看板卡」(經常為便利貼)來執行看板。這些卡片不是作為提高生產量的信號,而是用於記載生產數量和標記生產過程。在虛擬看板系統中,會使用虛擬看板卡。在軟體開發中,我們採用虛擬看板系統來限制在製品(WIP)。

Kanban 「看板」原則

圖一、看板原則
  • Visualize (視覺化)

創建代表每個工作項目的卡片和一個板狀的可視覺化的工作流程,以追踪每個項目的當前狀態。

  • Limit work in process (限制在製品數目)

將你同時處理的項目數量設定一個限制。同時處理的項目越少,每個項目的完成速度就越快。限制在製品將開始出現改進機會。

  • Manage flow (管理流程)

在整個工作流程中快速、不間斷地管理流程。這是你不斷改進工作流程的旅程的開始。

Kanban Visualize (看板視覺化)

團隊在執行專案時,專案進行中各項信息需要可視化,讓團隊以更佳的可視化方式呈現其工作負荷和工作流程;通過可視化的工具了解工作的工作實現有效的進度和協作改進。要通過看板實現這一目標,需要有明確的政策並使用卡片信息的方式。而最著名的可視化工具:Kanban看板。

圖二、視覺化–看板、工作流程及卡片

視覺化–看板和工作流程

依據專案進行方式,每個欄都表示一個工作階段。最基本的工作流程看板會有待辦事項、進行中,以及完成等欄。在任務完成前,個別任務 (以看板上的卡片表示) 會在欄之間移動。(如圖二)。

視覺化 — 工作項目卡片

追踪工作項目最常用的方法是創建一個小卡片來代表代辦、進行中或是完成的工作。 它可以是索引卡或是便條紙:任何易於使用和在看板上移動的卡片。
大家可以看到看板上會有著許多黃色小卡,這些卡片都明確的記錄著每一個被提出來的需求。僅管每一間公司的需求定義上都不盡相同,但功能背後所具備的3W(Who、What、Why),相信定義上都是一樣的。

視覺化– 一般工作項目卡片的內容

  • 清楚描述工作項目內容 (例: User Story)
  • 以姓名或圖像顯示此工作項目之負責人
  • 若有截止日期,應在固定位置以醒目顏色提醒
  • 專案若有使用管理軟體,可標示此工作項目之編號
  • 工作若遇阻礙,應醒目標示
  • 以不同顏色卡片代表不同類型工作
  • 顯示工作進度
  • 顯示工作大小
  • 紀錄工作流程資料
  • 紀錄工作心情

Kanban Limit work in process (看板限制在製品數目)

看板限制在製品是驅動你在專案進行改進的一種手段。 以獲得更好更有效益專案流程的進行。
用於軟件開發的在製品(WIP),相當於:

  • 尚未實施的規範
  • 尚未整合的程式碼
  • 尚未經過測試的程式碼
  • 還沒有在產品中的程式碼

限制 WIP 是看板核心原則之一。這並不意味著你應該做更少的工作,而是你應該同時做更少的工作。有效掌握準時交貨時間(Lead time)。

交貨時間(Lead time)是工作項目完成整個過程所需的時間。通常指一張卡片從進入看板起點,流動至看板終點後所需要的時間,也可以明確的表示為一個功能(或是任務、或是修復一個BUG..等,取決在你的卡片類型)。而使用看板的目的,除了使流動明確之外,最大的目標就是縮短每一張卡片的lead time,相反的,當lead time 越長,通常這張卡片作出來的效益也就會越低。

另外週期(Cycle Time)是每一個階段需要完成的時間,通常有兩種作法。

  • 依據階段來作區分,例如每一張卡片在進行中移動到完成的時間,所以需求、分析、開發、測試會共有四個CycleTime。
  • 依據階段屬性來作區分,例如需求可能是屬於團隊裡PM的工作,需求就會有一個CycleTime。分析與開發都是開發組工程師的工作,那就可以共用CycleTime。(如圖三)

這部分倒是沒有硬性規定,可以依據實際上大家運作看板的狀況來作調整。

圖三、Kanban  Cycle time、Lead Time

Kanban Manage flow (看板管理流程)

看板流程(Kanban  Flow)

  • 流程是一種系統,在該系統中每一部分工作,都是為客戶創造價值。從流程中的一個步驟完成後直接轉移到下一個步驟,依此類推,直到達客戶手中,這些步驟之間沒有任何等待時間或批次處理 .
  • 這種連續的流程將每個過程都變成了一個緊密相連的鏈條,其中所有步驟都相互連接。
  • 流程如果某事停止或中斷,則沒有其他工作可執行,所有問題無處可藏。
  • 流程迫使團隊思考,通過這種思考,他們成為更好的團隊成員。

為什麼要管理流程?

  • 假使管理流程可完成一個專案執行,其中每個步驟需要相連接,就沒有延遲、沒有排隊、沒有批次、沒有等待。
  • 管理流程可為你提供靈活性和責任能力、更好的風險管理、更快的反饋,從而提高品質,提高可預測性從而增加信任,減少加速請求,並更快地持續交付價值。
  • 假使這還不夠,流程還可揭示改進的機會,並為你的改進工作提供了一個願景:更快的流程。

使工作流程更順利的方法

  • 限制 WIP (Limiting work in process)
  • 減少等待時間 (Reducing waiting time)
  • 移除障礙 (Removing blockers)
  • 避免重做 (Avoiding rework)
  • 跨職能團隊 (Cross-functional teams)
  • 服務級別協定或前置時間目標 (SLA or lead-time target)
  • 每日站立會議 (Daily standup)

延伸閱讀

敏捷開發中SCRUM的實作方式

學習AI和資料科學,你需要懂的職能和學習地圖

在AI和資料科學領域有哪些專業的工作職位?需要哪些關鍵工作和能力?

作者:劉德泰

現職:
1111人力銀行數位策略顧問
17Sharing.org公益知識分享平台發起人
經歷:
緯育股份有限公司 總經理
資訊工業策進會數位教育研究所 主任
經濟部工業局「國家型數位學習與典藏產業推動計畫」-協同計畫主持人
經濟部工業局「國際化軟體人才暨產業技師培育計畫」-計畫主持人
中華民國數位學習學會常務監事

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

回到頂端