三步工作法
DevOps Handbook 閱讀心得
前言
最近在軍中,剛好開始閱讀起了 DevOps Handbook,這本書透過三步工作法貫穿整本書。三步工作法是在一本名為《 鳳凰計畫》中提到的內容,其描述三步工作法是一個落實 DevOps 的基礎原則,按此要領使工作有效率,並且最後達到全局優化。
三步工作法簡介
下面我們進入到三步工作法最核心的部分。整個DevOps實施可以分解為三步「暢流」、「回饋」、「持續學習和實驗」:
- 第一步是從左到右快速流動。
- 第二步是從右到左快速反饋。
- 第三步是在整個過程中持續學習。
暢流的實踐
我們常常說「萬丈高樓平地起」,在三步工作法的世界中,奠定基礎永遠都是完成一件事情的基礎。雖然我們的目標並不一定是發大財,但至少我們其中的一個目標一定會有能夠持續交付出工作成績。
在 IT世界中,我們為了達成持續交付的目標,我們透過妥善地設置自動化部署管線,並且確保自動化測試能夠持續驗證程式碼並且隨時保持在可部署狀態,以此確保每個程式碼提交都是有利於降低發布風險。
在職場環境中,第一步工作法就類似今天來到一個新的工作環境,我們一開始先建立跟主管的或是下面的人先建立好整個工作環境,我們當然不一定會用到管線,但是我可以在到職的一個月內,建立許多工作的基礎,包括製作文件的模板,有好的文件模板,我們可以減少工作的時間等待,將生產力發揮在重要的地方;還有就是建立好溝通的線路,確保在工作中的溝通以及用詞都是順暢的,不容易出現誤解的情況,這樣我們可以減少重工的發生。
回饋的實踐
如何知道錯誤?我們要透過什麼樣的方式取得錯誤訊息並加以調整改善,這是我們完成基礎工作後要想的事情,如何持續獲得又快又好的回饋,在第二步工作法。
我們透過建立工作系統,將營運團隊習得的知識,在經過整合後,回饋給上游的管理以及開發團隊,這樣無論生產、部署環境問題,問題的早期消滅等都,都可以快速地改進並從中學習。
在 IT世界中,我們透過建立遙測系統、定義錯誤層級、關注是否異常,來知道什麼時候發生問題,這個問題是不是要優先解決,透過 A/B 測試來驗證,在發布前請人一起審閱,確保軟體品質是高品質的,交付的功能是能被維護的,最後在這些經驗學習的累積之下,我們來到了第三步。
在職場環境中,第二步工作法就類似所謂的「報、聯、商」的機制,我們隨時遇到問題,就馬上停下來與其他人討論如何解決,不要將錯誤持續放大到其他地方,透過及時發現並控制問題,直到有效的對策出現,這樣子我們可以優化整個工作的流程。另外就是透過不斷的回饋,讓所有人知道你進行到哪裡,有甚麼可以幫忙的,並納入所有人的掌握中。
持續學習和實驗的實踐
我們在前面所遇到的問題以及解決方案,都是一個非常好的經驗學習。犯錯是不可避免的,因為我們正在持續地學習,透過學習,遇到錯誤,修正他的循環,讓事情越來越好、更有韌性,以達到期望的成果。
在 IT 的世界中,我們會希望所學的內容可以應用在日常中,還有就是把做A事件的經驗嘗試複製到B經驗中,甚至標準化這個流程,以及預留集體學習時間,透過教學相長的方式來一同成長。
在職場中,我們有所謂的經驗學習日誌,或者是 wiki,甚至是工作日誌,這些都是會日益豐富的集體知識,我們可以將這些經驗傳承,建立一套工作機制,使工作更加地快速,達到更高的產值,交付的品質也隨之上升。以及召開公司內部的讀書會,一同閱讀,增加知識。
結論
我們面臨一個不斷快速變動的世代,且快速變動中也要有好的品質。我們在這個又要關注安全議題、交付期程縮短、以及技術大規模轉型的時代中,我們要很靈活地應對這些挑戰,於是 DevOps 應運而生。
我們都會發現開發跟營運一但對不上,新功能的上線時間除了過長,還可能使品質低落,資源不斷損耗,進而使人心惶惶。
DevOps 的原則以及模式就是為解決這種核心衝突。透過掌握該書所提到的三步工作法,我們學會如何加快流程,打造出可靠的產品或工作成果,加速回塊機制以及調整問題,最終建立一個學習型組織,讓人人都能有好的貢獻以及知識累積,建立起一個好的循環。