1. 程式人生 > >敏捷其實很簡單(4)--初識看板

敏捷其實很簡單(4)--初識看板

今天我們來介紹一下敏捷開發中常用的第二個實踐,看板方法。其實,看板方法實際上可以說是精益產品開發的重要實踐,與其他敏捷方法相比,它具有更強的可實施性,提升端到端價值交付能力,更好支援系統的改進。而且它也可以和很多其他敏捷方法無縫連結。 看板方法的起源 中文意思帶來誤解 看板方法的英文為kanban,和中文的看板正好音同,這個當然不是巧合了,看板起源於日本,它的日文註音也正好是'kanban',在日文中它也可以寫作漢字“看板”,當然也可以寫成日本假名。但是這兩個意思完全不同,寫作看板時接近“視覺化的板”,而日文假名則為“訊號卡”。 軟體開發中的看板應該更接近於訊號卡,但是在國內,大家往往因名生義,把它看做視覺化的板,所以往往忽略了其本質的意義,這也是看板系統在國內被普遍誤解的一個重要原因。但是在國外,英語有對應的視覺化的板---“kanban board”。所以我們稱其為看板牆。 訊號卡的概念來自於精益製造,最早出現於豐田生產系統(TPS),我們先可以從製造中的看板學起, 從而幫助我們理解本質,消除誤解。
我們可以從上圖中看到,豐田生產過程有多個工序構成,其中有加工站,前工程,後工程。 我們可以看到當後工程取件的時候,這個時候,前工程會有產品被拿走,導致空缺,然後加工站會根據前工程的產品空缺來進行生產,填補空缺。 看板時豐田生產方式的兩個核心工具之一,看板向上傳遞的資訊流拉大鄉下的物流,一直到交付客戶,這樣就導致了實際上最終拉動生產的是客戶的需求。而產品開發則是借鑑的這個思路。 這裡我們就要講一下什麼是拉式開發和推式開發了。 傳統的推式開發,各個工序按照預先計劃生產,將完成的元件推向下游,最求每個工序的產能最大。 而拉式開發則是通過使用者需求,從下游向上遊傳遞資訊,達到控制。 那麼拉動生產方式到底有哪些優點呢: 1。控制庫存:下游需要時上游才開始生產,有效控制庫存 2。加速流動:進入生產環節的物料和半成品,很快就被拉入下一環節,實現了保證安全庫存的前提下物料最快流動,提高工程的運轉效率。 3。靈活響應:使用者需求變化通過看板行程的資訊流快速傳遞至各個環節,系統能夠做出快的響應。 4。促進改善:庫存降低和流動加速,能夠使生產問題快速暴露,比如生產環節的質量問題很快就會被下個環境發現。 但是產品開發和生產製造有本質的區別,所以我們不能照搬看板方法,產品生產要有自己的看板方法。 David J. Anderson 最早在軟體開發中借用了看板實踐,並且形成為完整的方法體系。我們下面按照看板方法5個核心實踐來介紹。

建立看板系統的3個實踐: 1)視覺化價值流:產品開發中的價值流是不可見的,這樣也就很難管理和優化。為此,看板方法首先要讓工作和工作流視覺化。 從上圖中我們可以看到視覺化價值流的三個特點:
  • 首先可視的是使用者價值,產品開發的目標也是交付使用者價值,工作也應該從使用者的角度來組織,圖片中每個藍色的卡片代表一個使用者的價值,典型的是一個可以驗證,可以交付的使用者需求。
  • 接下來是使用者價值端到端的流動過程,這裡的端到端是指價值提出到價值交付的整個過程。
  • 最後所有問題和瓶頸也都要視覺化,問題指的是阻礙價值流動的因素,包括需求不明確,技術問題,外部依賴等。而瓶頸包括價值積壓等。
2) 顯示化流程規則

價值流動過程也是團隊協作交付價值的過程。為了更好的協作,團隊還需要明確價值流轉的規則。如下圖所示,流轉規則是價值從看板上一列到下一列必須達到的目標。 顯示化指的是明確並達成共識,這點和視覺化不能混為一談。 所謂顯示化流程規則只明確價值流轉和團隊協作的規則並達成共識。這個也是團隊改進的基線,團隊可以進行修正。 3)控制在製品
在製品(WIP)指的是在某一環節內所有的工作--包括進行和等待的。上圖中紅色數字就是在製品。 環節內在製品數目小於這個數目的,可以從上一個環節拉入新的工作,否則不允許拉入。 控制在製品數量可以是環節內並行工作降低,當個工作項的完成加等待時間縮短,工作項從進入看板到交付的時間也會縮短。因此,加入使用者價值的流動。 而且更重要的是,控制在製品數量可以幫助團隊暴露問題和瓶頸。舉個例子,上圖中如果測試的在製品數目達到上限,就不能在拉入新的工作了,團隊應該聚焦於完成當前的工作,及時處理出現問題,如果測試這裡長期積壓,那麼說明這個地方已經成為了團隊工作的瓶頸,更早的 暴露問題所在。 控制在製品實際上成為了一種拉動機制,下游工作順暢的時候才能從上游拉動工作,這樣最終拉動整個使用者價值流的交付。控制在製品是整個看板方法的核心,也是很有爭議的地方,因為它很難落地在實際開發環境中。這個問題如果有興趣的讀者我們可以進一步根據實際例子交流。 運作看板方法的2個實踐: 1。 管理價值的流動 管理工作流包括三個部分, 1)準備佇列填充,準備佇列是整個看板系統的輸入和價值流動的源頭,管理好準備佇列非常重要 2)站會。站會是管理價值流動的活動,一個站會要發生每天的同一個時間看板前,團隊成員更新並且根據看板上的卡片,關注出現的問題和阻礙,並且形成解決方案。 3)評審。評審是需求釋出前的活動,決定上限哪些功能和相關的策略。 2。建立反饋,持續改進

其實現實中總會有各種問題讓價值流動不暢或者阻礙,同時這也是我們的改進機會。當然這個前提是團隊必須建立有效的反饋系統,從問題中發現根本原因。 反饋的目的是為了改善。團隊根據反饋形成系統的認知必須最終落實到具體的改進行動,而這些行動也可以放到看板系統的調整中,而且其中一部分也可以放到看板外,比如說產品設計,團隊調整,環境及工具的改進等。但是無論哪種改進,效果都要通過看板系統中價值流的狀態的度量來考察,從而形成看板系統的改進閉環。 本文初步介紹了一些看板相關的知識,其中看板的核心方法是控制在製品數量的拉動系統,通過這個來暴露問題,團隊能夠根據問題進行反饋和改進,從而提高價值交付能力。