看板的前世今生
- 2019 年 10 月 4 日
- 筆記

原文地址: https://www.atlassian.com/agile/kanban 原文作者:DAN RADIGAN 翻譯君:CODING 戴維奧普斯
看板是用於實施敏捷軟體開發的流行框架,它需要實時溝通能力和工作的完全透明,工作項目在看板上直觀呈現並允許團隊成員隨時查看每項工作的狀態。
對於如今的敏捷開發團隊來說,看板是一項非常重要的功能,但看板的工作方法可以追溯到 50 多年前。在 20 世紀 40 年代後期,豐田開始優化其工作流程,而這種工作流程來源於超市用于歸類庫存貨架的方法和原則。超市每次都會盡量將產品庫存控制在剛好滿足消費者需求的水平,這種做法可以優化超市、消費者和供應商之間的流動效率。當庫存水平與消費模式相匹配時,超市就能通過減少多餘的庫存來提高庫存管理的效率,同時超市仍然可以確保消費者需要的產品始終有庫存。

當豐田將同樣的系統應用到工廠車間時,目標是為了更好地將其庫存水平與材料的實際消耗量相匹配。為了能更好地提高效率,在工廠中,工人會在團隊之間傳遞卡片,或者 」看板「。當生產線上使用的材料用完時,這個看板被傳遞到倉庫,上面會寫著需要什麼材料、這種材料的確切數量等等資訊,倉庫會把一箱新的材料發到工廠車間,然後將自己的看板發送給供應商,之後供應商也會做同樣的事情。雖然這類技術從 20 世紀 40 年代以來幾經迭代,但 Just in time 的理念(或 JIT)仍然是其核心。
看板在敏捷研發團隊中的應用
如今,敏捷軟體開發團隊也能夠利用這些相同的 JIT 原則來匹配正在進行的工作量(Work In Progress)和團隊的閥值。這為整個開發周期中的研發團隊提供了更靈活的計劃選項,更快的產出,更清晰的關注和透明度。
雖然該框架的核心原則具有普適性且不會過時,但軟體開發團隊已經在敏捷實踐中取得了相較於其他行業中更突出的成功。在某種程度上,這是因為一旦軟體團隊理解了基本原則,他們就可以在幾乎沒有成本的情況下開始實踐。與在工廠車間實施的涉及物理過程的變化和大量材料添加的看板不同,軟體團隊需要的唯一物理因素是板和卡片,那些甚至都可以是虛擬的。
看板的板
所有看板團隊的工作都圍繞著一塊看板,看板是一種用於可視化工作並優化團隊工作流程的工具。雖然實物的板也受到一些團隊的歡迎,但數字看板是任何敏捷軟體開發工具中都必不可少的關鍵特性,因為數字擁有完整的可追溯性,同時對人的可訪問性能實現更輕鬆的協作。

無論團隊的看板是實物還是數字的,它的職責是確保團隊工作可視化、工作流程標準化,並立即識別和解決所有阻礙流程的事務。一般看板上有三個類別:To Do,In Progress 和 Done。團隊的規模、結構和目標各有差異,可以通過自定義工作流以滿足任何特定團隊的獨特流程。
看板方法極度依賴工作的完全透明性和實時溝通能力,因此看板應被視為團隊工作的唯一真實來源。
看板上的卡片
在日語中,看板字面意思是「視覺資訊」。對於使用看板的團隊,每個工作項目都會以卡片的形式單獨在看板上顯示。

將工作展示為看板上的卡片的主要目的是,允許團隊成員以高度直觀的方式審視工作流程,跟蹤各項工作進度。看板上的卡片需提供有關該特定工作項的關鍵資訊,使整個團隊能夠全面了解誰負責該工作項目、正在完成的工作的簡要說明、預估該工作需要多長時間等等。數字化看板上的卡片通常還會顯示對相關項目人員有價值的螢幕截圖和其他技術細節,允許團隊成員在任何時間點查看每個工作項的狀態以及所有相關詳細資訊,確保聚焦,能快速識別問題以及具有完全可追溯性。
看板的優勢
看板是當今敏捷團隊採用的最流行的軟體開發方法之一,並為各種規模的團隊項目規劃提供了幾個額外的優勢。
- 更靈活的項目規劃方式
看板團隊只專註於正在進行中的工作,一旦團隊完成一個工作項,他們就會從需求池中挑選下一個工作項。項目負責人可以自由地重新調整待辦事項的優先順序,而不用擔心影響團隊的工作,因為在看板的工作方式中,當前工作項之外的任何更改都不會影響成員手上的工作。只要項目管理者將最重要的事項放在需求池的頂部,開發團隊就可以確保他們為業務帶來最大價值。

- 縮短項目周期,提高研發效率
項目周期是看板團隊的關鍵指標。項目周期一般是指一項工作通過團隊現有工作流程從開始到完成所需要的時間。通過優化項目周期,可以顯著提升團隊的研發效率。
如果團隊成員都擁有比較接近的技能時,就可縮短項目周期。但當有些工作只能由特定的人完成時,就會成為工作流程中的瓶頸。因此團隊一般會採用如程式碼審查和導師制的方式來幫助傳播知識。如果團隊的技能樹相近,就意味著團隊成員可以承擔相互交錯的工作內容。這也意味著如果有工作停滯了,可以有其他團隊成員介入,以保證流程順暢。例如測試不僅可以由 QA 工程師完成,需要的話開發人員也可以參與其中。
因此在看板框架中,整個團隊最重要的職責就是保證工作順利進行,儘可能地縮短項目周期,提高研發效率。
- 持續部署
持續集成能實現對程式碼的自動構建和測試,這對於保證程式碼品質是至關重要的。而持續部署則可以將發布時間縮短到每天或者每小時,這正好可以與看板的工作方式互補,因為這兩項技術的核心都是及時(just in time)的項目交付。

團隊將創新推向市場的速度越快,其產品在市場中的競爭力就越強,這也是使用看板的團隊所專註的:優化團隊的工作流程。