為什麼需要從價值流開始?
當想到要如何提升交付能力時,迸出腦海的往往是以下的做法:
- 增加自動化比例
- 期望工程師學習更多的技能
- 引入其他生產力“工具”或是增加人力
要達成軟體服務交付,從商業構想到向客戶交付價值需要經歷的一系列的流程活動(價值流),而上述的改善往往只專注在局部優化。這也正是在改善過程中團隊需要先理解流程活動的原因,並基於價值流對照(Value Stream Mapping, VSM)使用關鍵指標來分析目前的狀態,因為這有助於團隊識別價值流裡真正的瓶頸點與浪費,進一步制定改善目標與計畫。
DORA 指標
VSM 來自於精實(Lean)管理,常見於製造業的產線分析與管理。DevOps Research and Assessment(DORA) 團隊進一步以軟體交付與維運為面向,透過五項指標衡量團隊的 DevOps 績效,分別為:
- 前置時間(Lead Time)
- 部署頻率(Deployment Frequency)
- 變更失敗率(Change Failure Rate)
- 平均復原時間(Mean Time to Recovery, MTTR)
- 可靠性(Reliability)
這些指標分別針對團隊的產出量(Throughput)[指標 1,2]、服務運行的穩定性(Stability)[指標 3,4]和可靠性[指標 5]進行衡量,這也意味了團隊在實踐 DevOps 的過程中,必須兼顧速度與品質。
達成指標是目標?
當數字成為了追逐的目標,就失去了真正的意義 - Goodhart’s law
當指標成為了目標,終將落入一場玩弄指標的遊戲,這使得組織開始失去辨識團隊狀況和服務架構特性的能力,並且開始傾向只是達成某些指標,進而導致人員的疲乏和與業務目標的脫鉤。因此,當團隊想要提升交付能力時,應更專注於具有商業價值的目標,記得-指標衡量是協助我們找到達成目標的途徑,它並不是目標!
影響 DevOps 績效的四大面向
在談完指標與目標的關係後,有哪些面向影響著衡量 DevOps 績效的指標?總結來說,有以下四個面向:
一、流程(協定)
組織為共同目標與價值建立一套可行的流程,而團隊間基於流程形塑協作的模式。找到最小可行的協定組合將促進 DevOps 績效的提升。
二、技術(手段)
善用技術與自動化等方式協助目標的達成。切記導入工具總是相對容易的,但任何的導入都是有成本的,因此必須適時地衡量團隊的技術線與維護成本,否則最終壓垮團隊 DevOps 績效的將是搞不定的工具鏈!
三、監控(指引)
好的監控可指引團隊發現問題並提升 DevOps 績效。一個好的監控必須是可視的且能隨需取得,而告警則是需要有意義且可採取下一步行動的。同時,指標並不是不能變動,它必須要能依照回饋適時地調整。
四、文化(支持)
文化的支持絕對是團隊在提升 DevOps 績效不可獲缺的一環。培養團隊找尋改善的機會或學習目標,並且給予團隊適當地學習空間,這將幫助團隊以更有效率的方式提升 DevOps 績效。
總結
無論是 VSM 或是 DORA 指標,這些指標都是在協助團隊評估現狀,並且持續追蹤後續的改善。此外,指標必須要能回到商業目標,否則改善活動或單純的指標達成並不一定能夠帶來真正的價值。最後,交付能力的提升並非只是導入工具或是增加人力就可完成的,要擁有更有效率交付價值的能力必須透過流程、技術、監控、文化四個面向的促成!
最後小小工商一下
CPHT 對 DevOps 有著最完整的了解與掌握。
如果您想要擁抱 DevOps 或想要追求更好的 DevOps 實現,歡迎聯絡我們!
讓我們與您一同從轉變中找出未來的可能性。