看板(Kanban)

Kanban, Flow and Cadence
http://availagility.wordpress.com/2008/10/28/kanban-flow-and-cadence/
Posted by Karl Scotland

看板是一種機制用來在軟體開發過程中控制工作的進行, 看板可以定義成"視覺化的卡片".

原先看板是源自於豐田生產系統(Toyota Production System), 大野耐一在其著作豐田生產系統, 說:

豐田生產系統的兩大支柱是just-in-time和automation. 用來輔助這個系統的工具就是看板.

看板實踐了一個pull system以用來達成just-in-time的工作

為什麼一個看板系統看起來更適合軟體開發呢? 非常簡單, 軟體開發包含一堆工作, 它必須要經過一連串的階段來處理, 直到他完成為止. 也就是當一個工作在這個階段完成後, 它必須移往下一個階段的queue中,  當有人需要一個工作要去做時, 他可以從這個queue從拿一個工作出來做. 我們可以從下圖可以容易了解到:

這看起來非常像是agile的任務版, 可能多了一些步驟. 但是你可看到看板系統有些限制: Queue limits和WIP limits

Queue limits是為了要避免過早的工作, 也就是用來實踐Just-in-time. 通常這限制的大小要能夠讓團隊保持忙碌, 也就是讓大家都有事做. 此外它應該也要夠小, 以避免太多事情過早要決定如何處理. 最後, 理想的queue通常是FIFO, 但是不一定要很嚴格都是這樣, 可能要根據目前所擁有的技術和資源來決定, 因為有時候你可能還沒有ready到可以處理它.

WIP(Work In Progress)可以減少multi-tasking, 以最大化生產量, 和加強團隊合作.

減少multitasking主要有以下好處
1) 通常有20%會花在tasks之間的context switch, 所以較少的teaks會意味著較少時間的浪費(Gerald Weinberg, Quality Software Management: Systems Thinking)
2) 一次只做一個任務, 會讓任務進行的較快速

此外較少的任務正在處理(tasks in progress), 會使得團隊較能夠專注於較大的目標, 並淡化個人任務的強調, 因此讓大家會著重於團隊合作

有些人會擔心, 較少的任務正在處理可能會讓團隊成員閒置, 因為他們可能依項就沒有任何任務要做, 以下有些準則可以幫助這樣的問題

Can you help progress an existing kanban? Work on that.
Don’t have the right skills? Find the bottleneck and work to release it.
Don’t have the right skills? Pull in work from the queue.
Can’t start anything in the queue? Is there any lower priority to start investigating?
There is nothing lower priority? Find other interesting work.
They key question here are what constitutes lower priority investigative work or other interesting work.  Essentially it is work which won’t create any work downstream, will improve future throughput and can be paused as soon as existing kanban related work is available.  Lower priority work could be spikes or analysis for known impending work.  Other interesting work could be refactoring, tool automation, personal development or innovation.

WIP的size會根據團隊的性質而有所調整, 通常一開始會比較小, 之後再依狀況來增加. 不過也有人一開始設很大, 之後再往下調整.

使用Kanban的結果, 會使得Product backlog可以不用再被使用, 因為我們只專注於queue中的任務. 此外timeboxed iteration也可以不用, 因為任務只當有才需要出現.

arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()