豐田生產方式(Toyota Production System,TPS)中用來支持非集中“拉動式”生產控制(non-centralized "pull" production control)而使用的卡片。作為精益生產的工具,它現在已經應用于世界各地的制造企業之中。如今在敏捷軟件開發中,項目的可視化(例如在墻壁上放置任務卡片就是常見的實踐)往往被叫做“軟件看板”,或者“任務看板”。我們甚至可以看到一些產品維護團隊在類似瀑布過程模型中使用看板系統。那么,看板到底是什么呢?為什么它會被用于軟件開發環境之中呢?
在本文中,我首先解釋一下在精益生產中,尤其是TPS中的看板是什么樣子的,來理解下這個成熟行業中的實踐和法則,并圈定可以應用于軟件開發的概念。其次,我將環顧我們的軟件開發項目并指出看板應用的例子。然后,我會分析生產環境中的看板系統與軟件開發中的看板系統有何異同,并嘗試提出觀點來有效地在軟件開發中應用看板系統,其中還介紹了新近在kanbandev2討論列表中萌芽的“KSSE——持續工程的看板系統(Kanban System for Sustaining Engineering)”運動。最后,我給出TPS的一個全景視圖,也就是看板這種工具的原始背景,軟件開發仍可從中有所借鑒。
tdir1"> TPS中的看板
在“拉動式”生產系統中,看板是指示移動或者制造零部件的信號裝置(通常是放在透明塑料封套中的卡片),它是在豐田生產系統(TPS)中發明和發展起來的。在介紹軟件開發中的看板之前,我來詳細的介紹下看板最初的用法,也就是TPS中的看板。
看板的目的是通過確保只有當下游工序需要時上游工序才生產零部件,進而最大限度地減少工序(process)之間的在制品(Work-In-Process,WIP)或者庫存。“拉動式”是指下游工人從他們的上游工序中領取或者“拉”出所需要的零部件。
圖1 看板和拉動式生產
圖1是看板系統的抽象模型。圖中以兩個工序,上游工序和下游工序為例,其中上游工序為下游工序供應零部件。為了給最終用戶提供產品,這一工序需要生產零部件并將其流向下游,但是不能生產太多,因為生產過剩被認為是最糟糕的浪費。為了避免生產過剩,上游工序不是將成品零部件“推”給下游工序,反而是下游工序主動地從上游工序中拉出(拿)零部件。零部件存放的地方叫做“倉庫”(或者“超市”——Taiichi Ohno首次提出看板的思想,是在他參觀了某個美國超市之后,在那里不是由商店售貨員而是由顧客自己去獲取他們想要的東西)。倉庫位于上游工序,作為在制品的“緩沖區”或者“隊列”。當一名來自下游工序的工人——叫做“物料管理員”——來到倉庫并拿到新近完成的零部件,同時他也反饋一個生產信號——也就是,下游從上游中獲取東西并在同時通過看板卡將信息推給上游。這是必須的,因為沒有來自下游工序的信號上游工序決不會生產零部件。
那么在圖1中有兩種類型的看板一同工作:
領取看板(Withdraw Kanban)——是由物料管理員遞交給倉庫的購物清單。
生產看板(Production Kanban)——指示上游工序為其下游工序生產零部件。
如圖1所示,領取看板循環于兩道工序之間,而生產看板循環于工序內部,并且兩者在倉庫內發生交換。讓我們稍微仔細的了解下這個交換細節。圖2顯示了在倉庫中是如何進行“看板交換”。
圖2 倉庫中的看板交換
1.位于下游的物料管理員收到領取零部件的信號。此信號由下游工序定義,為下面兩種情況之一:
(a) 由收集到的領取看板的數量觸發信號
(b) 由定時時間間隔觸發信號
物料管理員帶著空托盤(pallet)和收集到的領取看板訪問上游倉庫,并將他收集的領取看板當作購物清單——其中標明了下游工序需要什么,需要多少。
2.由上游工序完成的零部件用托盤裝著,并附上生產看板放入倉庫。(這些發生在一個單獨的線程中,和(1)是獨立的。)
3.物料管理員拿取領取看板(購物清單)中指定的零部件,檢查是否與附在零部件上的生產看板相匹配,然后交換兩個看板。
4.他將生產看板放入“生產板(Production Board)”中——稍后當看板累計到一定的閥值時,它將直觀地觸發上游生產。
5.物料管理員將所需的零部件附帶著領取看板一同從倉庫搬運至下游車間。
你可以看到倉庫是由一個單獨的線程控制的、位于兩個工序之間的隊列(queue),它通過看板來交換物品和信息??窗蹇ㄉ厦鎸懨髁讼窳悴考柎a、名稱、數量、托盤類型、倉庫位置這樣的信息,這樣物料管理員拿到卡片就知道去做什么了。
對于看板的運轉有著嚴格的規定——被稱作“看板六準則”:
正如我們所了解到的,倉庫用作零部件的隊列,托盤用作零部件的載體,而看板卡用作客戶之所需的信息載體。通過維持“連續流通(continuous flow)”(消除等待帶來的浪費)和“最小化在制品(minizing WIP)”(消除生產過剩帶來的浪費)之間的平衡,它們共同形成了“拉動式”系統。在超市中也是用同樣的機制來把從采購到銷售之間的流程中的在制品維持在“適當”數量,做好這一步是提高商店盈利率的關鍵。
原文轉自:http://www.anti-gravitydesign.com