「交付,是軟體被完成(Done)的真正指標。」——《Azure DevOps 顧問實戰》
Definition of Done 我們都聽過,但你們的軟體團隊真的有在訂定這樣的規範嗎?
還是說每一次的軟體開發都是,開發說 Done 了,測試說 Done 了,包版發佈了,最後大家拍手收工,但使用者要等到下週才能摸到新版的軟體?
先不論你們到底定義了什麼樣的 DoD,但我想其中應該會有一條是「將軟體交付到使用者手中」吧?
真正的 Done,是使用者能夠實際使用軟體解決他們問題的那一刻。
Done 不是終點,交付也只是另一個起點,因為當使用者開始操作軟體之後,接著團隊又要開始下一趟的開發循環。
所以軟體開發其實根本沒有真正的 Done,它是一個不斷循環的 loop。
畢竟只要產品還活著,永遠會有修不完的 Bug 跟不斷冒出來的新需求。
而這正是為什麼我們需要 DevOps 來建立一套持續、頻繁、穩定交付高品質軟體的流程。
讓這些過程成為團隊的肌肉記憶,讓軟體交付成為一件再自然不過的事情。
在你的團隊中,大家對於「Done」的認知是相同的嗎?你們有走完軟體交付的最後一哩路嗎?