什麼是軟體開發的七大浪費?

德瑞克 Derek
德瑞克的敏捷咖啡
3 min readSep 27, 2019

大部分的人都很認同精益生產(lean manufacturing)中的七大浪費,但是套用七大浪費在軟體開發上面,卻讓很多人感到很困惑。我常常聽到很多人給予這樣的評論,這七大浪費只能用在工廠生產線,不適合用在軟體開發。

我個人不是很認同這樣的觀點,我認為七大浪費中的浪費都可以很好的對應到軟體開發中的浪費,首先透過這個表格讓大家看一下它們之間的對應關係,接著,一一介紹每一種在軟體上的浪費。

  1. 在製品或是半成品(Partially Done Work)

程式沒有提交到 git;程式沒有被測試;測試案例沒有被執行;需求已經被分析但程式尚未開發;

2. 過多的功能(Extra Feature)

產品功能已經完成開發與測試,並且交付到使用者的手中,但是使用者從未使用過。或是開發過程中產生了很多的文件,但是這些文件都沒有人看。

3. 重新學習(Relearning)

有時候因為長時間的延遲,或是任務經由多人換手處理,造成了資訊的遺失,導致開發人員必須重新學習。另一個例子是過度憂慮產品品質,對於相同的項目,重複測試多次。

4. 換手或是換人做(Handoffs)

將資訊從一個團隊傳遞給另一個團隊,可能會導致資訊的丟失或是更改。例如,客戶提出的需求,這個需求經過設計師、團隊負責人、開發人員,最後到測試人員,中間經過許多的換手動作,很容易造成資訊的遺失。

5. 等待(Waiting)

等待浪費是指團隊成員在等待其他人完成任務後所需等待的時間。在大團隊中很容易發現這個浪費。譬如說等待需求文件、等待 UI/UX 文件、等待前端程式碼、等待後端程式碼、等待測試等等。

6. 動作(Motion)

動作的浪費比較不容易觀察出來。譬如不適當的軟體開發 IDE 造成開發時間上升;頻繁的在內部文件系統中搜尋文件;團隊成員彼此沒有坐在附近的區域,必須做較長距離的移動才能開啟對話與討論。

7. 錯誤(Erros)

錯誤或是臭蟲不單單是需要花費額外的時間進行修復。最重要的是,一些未被發現的錯誤,在客戶操作中被發現了,造成了客戶的損失。在技術上,過多的錯誤累積,會產生過多的技術債。

Source: 7 types of waste in Lean Manufacturing and Lean Services/Lean IT

參考資料

--

--

德瑞克 Derek
德瑞克的敏捷咖啡

敏捷的熱愛者,致力於推廣敏捷實踐,多次在社群裡做敏捷分享。現職為 Agile Coach,在公司內協助多團隊進行敏捷轉型,在導入 Scrum、Kanban、Large Scale Scrum 有豐富的經驗。閱讀的愛好者,持續進行一年讀五十本書計畫,目前進入第四年。