價值流圖:軟體開發流程最佳化之路
洞察開發浪費,提升效率與產品交付速度
前言
如何識別軟體開發過程中的浪費和不必要的步驟以及不必要的架構?使用價值流圖這個工具可以幫助您輕鬆解決這個問題。價值流圖是一個非常實用的工具,可以幫助您分析軟體開發過程中每個步驟所代表的價值,從而識別並消除浪費,提高開發效率。
VSM 常常用來比較改善前的流程圖和改善後的流程圖,以幫助圈出改善的效果重點。那應該怎麼開始 VSM,又要知道些甚麼知識?
VSM 步驟
定義價值流
首先,需要確定要評估什麼流程,流程可以是應用程式的部署、服務的交付、一張保險單的請款作業流程。
繪製價值流圖
在圖表中需要明確定義價值流中每個步驟所代表的價值。我們可以透過像是泳道圖或是很乾脆的直接用流程圖進行作業流程分析。
識別和消除浪費
在這個階段,我們可以開始思考作業流程中有沒有無意義的等待時間、重複的步驟、或是不必要的文件撰寫等等。
另外缺陷也是一種浪費,因為缺陷來回修復的等到時間、找出錯誤並重新測試的時間,中間客戶離開等都是巨大的損失。
Lean 定義了 7 大浪費,本篇不贅述。
根據流程來最佳化
接著是了解完成整個工作的 Lead time 以及每一個任務所需的 Cycle time。
Lead Time 通常指從需求的開始到完成產品並發送至客戶之間的時間,也可以說是整體工作所需的時間(end-to-end)。Lead Time 包括所有生產過程中所花費的時間,包括需求的溝通、設計、開發、測試、部署到上線。Lead Time 直接反映出了軟體開發過程的總體效率,因為它涵蓋了所有的步驟。縮短 Lead Time 通常可以幫助企業提高交付的效率,提早將產品提供到市場,或是快速地回應讓客戶滿意度上升。
Cycle Time 通常指從生產開始到完成產品所需的時間,並且不包括產品等待的時間,也是指一項工作從進入到離開的時間。Cycle Time 主要關注生產過程中實際完成單個產品的時間。在軟體開發中,Cycle Time 則涉及設計、開發、測試和部署等步驟的時間。縮短 Cycle Time 可以幫助企業快速交付產品,提高效率,增加收入。
經過分析與比較後,我們就可以利用這些分析的結果知道目前的狀況為何,感覺起來的浪費是不是真的浪費,或是花費了大量的時間進行局部最佳化而已。
持續回饋來評估改善
持續監控和評估流程的效率和效果,並進行必要的調整和改進。評估可以使用各種指標,例如交付時間、問題率、客戶滿意度等。
一個我覺得經典的案例
https://youtu.be/t705r8ICkRw?t=1333
Elon 提到他在 Tesla 的改善中,一開始他先自動化整個製造流程,然後想辦法辨識可以加速的地方,接著是簡化問題,最後居然是…
刪掉整個流程重來!
他後來跟團隊發現 fiberglass mat(本來用來保護電池的結構)其實不必要,拆掉之後省下高達數百萬美元的自動化最佳化的成本。
雖然 Elon 沒有用 VSM,但是他有用到相同的觀念。我們可以使用這個工具幫助我們也最佳化整個流程。