看板方法是用於高效管理軟件開發流程的新技術。看板方法源自豐田的“及時生產”(JIT=just-in-time)系統。盡管生產軟件是一項創造性活動,與批量生產汽車有所不同,但是生產線管理背后所蘊含的原理仍然適用。

一個軟件開發的流程可以看作是一段自來水管道,特性需求從一端進入,經過改進的軟件從另一端涌現出來。
在管道內部,存在着各種各樣的工序,有的是非正式的臨時工序,有的是非常正式的階段性流程。在本文中,我們假設一個簡單的階段性流程:(1)分析 需求,(2)開發 代碼,(3)測試 軟件運行正常。
瓶頸的影響
在管道中的瓶頸會限制工作的流動。管道的整體吞吐量被限制為瓶頸的吞吐量。
用我們的開發管道為例:如果測試人員每周只能測試5個特性,而開發人員和分析人員每周能夠生產10個特性,整個管道的吞吐量就只有每周5個特性 ,因為測試人員扮演了瓶頸角色。
如果分析人員和開發人員不知道測試人員是瓶頸,那么測試人員的待辦工作就會越堆積越多。

影響就是前置時間增加。並且,就如同庫存一樣,位於管道中的工作會套牢投入的資金、產生與市場的距離、以及隨着時間逐漸失去價值。
最終,影響到質量。為了能夠跟上進度,測試人員開始抄近路。最終bug被發布到產品中,導致給用戶帶來問題,從而影響未來的管道產能。
另一方面,如果我們知道哪里有瓶頸,我們就能夠重新部署資源來解除它。例如,分析人員可以幫忙測試,開發人員開始進行自動化測試。
但是,我們怎樣才能知道在已知流程中哪里是瓶頸呢?而當瓶頸移動后會發生什么呢?
看板方法可以動態顯示瓶頸
看板方法難以想象的簡單,但卻難以想象的強大。最簡單的形式的看板系統包括了一個掛在牆上的大白板,上面有許多卡片或即時貼,這些即時貼按列來放置,每列上方有一個數字。
卡片代表了工作項,列代表了開發工序,卡片會從第一步工序流動到最后一步。每一列頂部的數字用來限制每一列最多允許放置卡片的數量。
看板白板的限制大相徑庭於其他任何可視化故事板。在流程中的每一步限制在制品(WIP)數量,可以預防生產過剩並動態顯現出瓶頸,以便於你可以在達到不可收拾的程度之前找到它們。
樣例
下面的白板展示了這樣一種情況:開發人員和分析人員正被阻止開展任何新工作,這種情況會持續直到測試人員空出了一個卡片位置並將下一個工作項拉到測試步驟中。這時開發人員和分析人員就會開始尋找能夠幫助測試人員減輕負擔的方法。

注意,我們已經將一些列分割成了兩列,這是為了用來說明正在進行中的項與哪些已經完成並准備好被下游工序拉走的項。你也可以用一些不同的方式來布局白板。這里用的是比較簡單的方式。列頂部的限制包含了“doing”(進行中)和“done”(完成)兩列。
一旦測試人員完成了一個特性的測試,就會將卡片移走,並且在“Test”列空閑出一個卡片位置。

現在,“Test”列中空出來的位置可以用開發“Done”列中的一個卡片補充進來。這時,“Development”列就會空閑出一個卡片位置,下一張卡片就可以從“Analysis”列中拉進來,其他列也是這樣。
