探索 DevOps 文化

已完成

文化是 DevOps 必要的基礎,因為其需要成長與持續學習思維才能成功。 領導階層支援是成功的關鍵元素之一。

在討論 DevOps 文化的外觀之前,讓我們先考慮一下文化對組織採用 DevOps 能力方面所扮演的角色。 根據 Gartner:

文化抗拒與低層級的流程專業領域,將會為 DevOps 計劃帶來大量的失敗率。

《DevOps Handbook 中文版 | 打造世界級技術組織的實踐指南》的作者 Gene Kim 說:

DevOps 是充滿挑戰的旅程,而這些挑戰很少只是因為錯誤的技術或流程所致。 事實上,最大且最困難的障礙通常是文化。 此外,如果您不了解文化,則即使其他方面都沒問題,也還是會面臨挫折、額外的成本與可能的失敗。

何謂文化?

針對我們的目的,文化是群組的社交遺產。 這是群組過往在處理其成員之間,以及他們與其環境之間的互動所引發的問題時,所探索、開發或發明的回應模式。

文化決定:

  • 可接受或無法接受的事項。
  • 重要或不重要的事項。
  • 正確或錯誤的事項。
  • 可行或行不通的事項。
  • 您雇用、開除及升遷的人員。

DevOps 計劃為何會失敗?

Gartner 研究顯示,直至 2023 年,90% 的 DevOps 計劃將會因為管理階層所使用的管理方法限制而失敗。

重要

領導階層的主要責任是打造能實現成功 DevOps 文化的環境。

對以創意維生的人們來說,不需要「休息室的休閒時光」這招來激勵他們。 精通、自主性與目標才是他們所需要的一切。

當有人問到什麼是 Microsoft 成功的最重要部分時 - 是願景、策略或執行能力嗎? – Microsoft CEO Satya Nadella 說這三點都很重要,但最終,最重要的是其目的與成長思維。

DevOps 思維的 12 個範例

以下是 DevOps 思維的 12 個範例:領導階層思維、客戶導向、精簡思考、系統思考、摒除浪費、限制理論、一致性與自主性、左移測試、安全性思維、假說驅動開發、即時現場,以及測量結果,而非活動思維。

領導階層思維

Gartner 提出下列建議:

  • 將領導 DevOps 計劃所需的特定行為特性設為優先,少將重點放在技術技能,以找出轉型領導者。
  • 藉由接受失敗作為學習機會,來開發轉型領導者。
  • 讓員工能夠作主以避免揣度,並提供明確的目標與關鍵指標,來管理轉型領導者。

因為 DevOps 有轉型能力,所以基礎結構與作業 (I&O) 領導者必須找出有遠見、適應性強、有上進心與實現力且負責任的候選人。

客戶導向的思維

所謂客戶導向意旨為何?

  • 聆聽並與我們的客戶溝通
  • 測量重要的事項
  • 接受實際執行環境中的錯誤
  • 建置、測量及學習
  • 使用功能切換進行正常部署
  • 廣泛但謹慎地收集資料

精簡思考的思維

價值:精簡思考的思維會從詳細了解客戶為產品與服務所指派的價值開始。 組織會將焦點放在排除浪費,讓他們能夠以最高的獲利率來提供客戶期望的價值。

價值流程包含產品的整個生命週期,從未經處理的物料到客戶的使用,以及產品的最終處置。 為了排除浪費,精簡的最終目標是讓價值流程的理解更加精確且完整。

流程:了解流程對排除浪費至關重要。 若價值流程在任何時間點停止前進,則浪費是難以避免的副產品。 流程的精簡製造準則是關於在不中斷實際執行環境流程的情況下,建立價值鏈,而且其中每個活動都與所有其他活動步調一致。

拉動:拉動的精簡準則藉由確定未事先進行任何作業,而有助於確保流程,這會建立在製品清查,並停止同步處理的流程。 拉動方法會指示直到客戶訂購之前,不進行任何動作,而非依據預測與排程趕工的傳統美式製造方法。

完美:精簡執行者致力於達到完美。 因為持續改善解決了品質問題與實際執行環境浪費的根本原因,所以會邁向完美的流程。 完美的不懈追求,是推動使用者比競爭者挖掘更深入、測量更多,以及變更更頻繁的方法。

系統思考的思維

系統思考的思維強調整個系統的效能,而非特定工作或部門的績效。

將焦點放在 IT 所啟用的所有商務價值流程上。 換句話說,這會先從企業或 IT 找到需求時開始,於開發階段打造再轉換至 IT 作業,以服務的形式向客戶傳遞價值。

排除浪費思維

精簡思維將焦點放在找出並排除對客戶而言沒有價值的七個致命浪費:

  • 部分完成工作
  • 額外的流程
  • 額外的功能
  • 工作切換
  • 等待
  • 移動
  • 缺陷

思考限制理論

限制理論是找出會限制輸送量的限制 (也稱為瓶頸),並將其移除的方法。 做法上,會先從找到阻礙達成目標的最重要因素開始, 並盡可能將該因素降至最低,直到其不再是一項限制。

Diagram depicts the Theory of constraints: identify the constraint, exploit it, subordinate & synchronize to it, elevate the performance of the constraint, repeat the process

平衡一致性與自主性思維

必須在一致性與自主性之間達到平衡。 太高的一致性會使創新、動機及共同作業變少。 太高的自主性會使混亂、混淆及衝突變多,並使一致性降低。

Diagram explains aligned autonomy: if you get the organization, roles, teams, cadence, and architecture in alignment, then the plans and practices can function autonomously.

左移測試思維

左移測試是用於加速軟體測試,並藉由將測試流程移至開發週期較早的時間點以輔助開發的方法。 左移是在時間軸上向左移動測試的參考。 其有助於提高品質並及早找出問題,以減少重新作業的浪費。

左移測試的設計用意是針對快速車道開發提供更佳的模型,因為在開發週期中等待在後的傳統測試模型可能會造成開發的瓶頸。

安全性思維

若要達成安全性思維,小組需要:

  • 提升意識。
  • 定義其準則。
  • 依循其準則。

假說驅動開發思維

使用精簡產品方法以較短的週期進行開發,並使用假說驅動開發有助於建立小型實驗,以取得客戶與資料驅動決策的意見反應。

假說驅動開發方法:

  • 從假設開始 – 已接受為 true 但未經過證明
  • 闡明要測試的假設
  • 執行探究與測試
  • 檢查證據 – 結果的指標

即時現場思維

對於 DevOps 小組,哪裡也不如實際執行環境。 他們所做的一切都是為了讓客戶的體驗更好。

為了建立穩定且高效能的現場,必須以嚴格且持續的方式套用持續作業最佳做法,讓現場保持狀況良好。

即時現場文化的關鍵因素包括:

  • 在客戶感到頭痛之前先偵測到狀況
  • 以資料為動力
  • 根本原因是關鍵
  • 以程式碼設定
  • 採用自動化以生存
  • 保持開放與好學的態度

測量結果,而非活動思維

您測量人員的方式將導致人員的行為。 您應該測量使用量、速度與即時現場健康狀態,而非程式碼行數、小組待執行工作,以及找到的 Bug 數目。

提示

謹慎測量以產生最佳結果!