「我們所說的這些原則、實踐和技術的目標都是為了將軟體發佈工作變成一個索然無味的事情。」——《Continuous Delivery 中文版》
今天的金句有點意思,如果去細細品味這段金句,會發現它是很有道理的。
在繼續聊下去之前,我們先套用這時代的軟體情境,說是「軟體發佈」,在現在可說是讓新版服務部署至正式環境上線。
試著去想像一下,如果你一年才發佈一次軟體,那這個發佈鐵定是一個大版本更新,恐怕不只是程式碼、軟體功能、甚至連 infra、各種相依服務、環境⋯⋯全都要一起大幅調整。
所以為了不要出包,這場軟體發佈鐵定不無聊,因為有太多事前的規劃要處理,在事中、事後則必定需要繃緊神經,深怕出什麼差錯需要善後。
但如果轉換情境,變成每天發佈十次,那這樣的發佈應該會是影響範圍有限,並且發佈流程中充滿自動化測試、驗證、部署,鮮少需要人力介入。
你可能覺得我這兩個情境比較太故意了,我直接把後者想的太理想了,但我必須說你再仔細想一想。
如果你一天真的要部署十次,算你只有上班八小時會部署,等於你每48分鐘要部署一次,而且沒時間讓你出包。
這麼高頻率、快節奏的部署,團隊勢必要盡可能排除所有手動干預、掌控變因,將流程徹底自動化,不然上一個部署還沒處理完,下一次的部署週期又到了。
我認為金句中的「索然無味」,並不是在說軟體發佈是一件無聊、無價值的工作。
而是代表軟體團隊已具備足夠的能力,可以掌控軟體發佈中的每一項變因。
將原本需要繃緊神經、預備隨時人工介入的「重要發佈日」,轉變成標準化、可控的「例行公事」。
因為是「例行公事」,太常執行了,太熟悉了,太安全了,就算發佈過程有問題,團隊也有能力與心理準備可以因應,所以才會是「索然無味」。
聊到這裡,看來「索然無味」反倒是一種稱讚與肯定。
那麼如果讓你選擇,你現在會想要「驚險刺激」還是「索然無味」的軟體發佈呢?