24のケイパビリティがいつのまにか27のケイパビリティになっていた件
モチベーション
DevOps Research and Assessment(DORA)(後にGoogle Cloudが買収)が2014年から行っている大規模調査を元に執筆された書籍LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加速する の中で、ソフトウェアデリバリのパフォーマンスを統計的に有意な形で改善できる24個のケイパビリティが紹介されていた。
上述のDORAがGoogle Cloudに買収された関係で、Google CloudのドキュメントはDevOpsに関する情報が非常に充実している。
このドキュメントでケイパビリティについて詳しく解説されているのだが、24個だったケイパビリティがいつの間にか27個に更新されていた。
本稿ではその差分についてまとめる。
ケイパビリティの差分
具体的な差分は以下の通り。
-"継続的デリバリの促進効果が高いケイパビリティ"
+"技術に関するケイパビリティ"
バージョン管理
トランクベース開発
継続的インテグレーション
デプロイの自動化
継続的なテスト
継続的デリバリー
-"アーキテクチャ関連のケイパビリティ"
アーキテクチャ
チームのツール選択をサポート
テストデータ管理
セキュリティのシフトレフト
+データベースのチェンジ マネジメント
+クラウド インフラストラクチャ
+コードの保守性
"プロセスに関するケイパビリティ"
チームのテスト
変更承認の効率化
お客様のフィードバック
バリュー ストリームでの作業の可視性
小さいバッチ単位の作業
"測定に関するケイパビリティ"
システムをモニタリングして的確な判断
障害の予兆通知
仕掛り制限
ビジュアル管理機能
+モニタリングとオブザーバビリティ
"組織文化に関するケイパビリティ"
-創造的な組織文化の育成
Westrum の組織類型
学習文化
+仕事の満足度
-有意義な仕事を可能にするツール等の資源の提供
変革型リーダーシップ
以下、各差分について簡単にまとめる。
ケイパビリティの分類
元々5つに分類されていたケイパビリティから継続的デリバリの促進効果が高いケイパビリティ
とアーキテクチャに関するケイパビリティ
が統合されて技術に関するケイパビリティ
にまとめられた。
技術に関するケイパビリティ
4つのケイパビリティが追加された。
データベースのチェンジ マネジメント
DORA の研究では、データベース作業をソフトウェア配信プロセスに統合することにより、継続的デリバリーを改善できることがわかりました。<略>DORA において、優れたコミュニケーションと包括的な構成管理がデータベースの課題に関連することを見いだしました。継続的デリバリーで成果を上げているチームは、データベースの変更をバージョン管理のスクリプトとして保存することで、本番環境のアプリケーションの変更と同じ方法で管理しています。
実装の具体例としては以下があげられている。
- データベース変更の効果的なコミュニケーションを確立する
- すべてのデータベース スキーマの変更を移行として扱う
- ダウンタイムが発生しないデータベースの変更
クラウド インフラストラクチャ
DORA の 2018 年と 2019 年の調査によると、パフォーマンスの高いユーザーは、パフォーマンスの低いユーザーと比較して、クラウドの 5 つの重要な特性すべてが満たされている可能性が 23 倍以上高いことがわかりました。
クラウド コンピューティングの重要な特性5つ
- オンデマンド セルフサービス: ユーザーはプロバイダの人手を介さずに、必要に応じてコンピューティング リソースをプロビジョニングできる。
- 広範なネットワーク アクセス: スマートフォン、タブレット、ノートパソコン、ワークステーションなどのさまざまなプラットフォームから各機能へアクセスできる。
- リソースプール: プロバイダ リソースはマルチテナント モデルでプールされ、物理リソースと仮想リソースはオンデマンドで動的に割り当てられる。ユーザーは、国、州、データセンターなど、高いレベルで抽象化されたロケーションを指定できる。
- 迅速な拡張性: 機能は柔軟にプロビジョニング、リリースして、必要に応じて迅速にスケールアウト、スケールインできる。実質的に無制限で、いつでも任意の量に調節できる。
- 測定サービス: クラウド システムは、ストレージ、処理、帯域幅、アクティブ ユーザー アカウントなど、サービスの種類に基づいてリソースの使用を自動的に管理、最適化、報告する。
コードの保守性
コードの保守性は、他のチームのコードの検索、再利用、変更を可能にする機能に依存しているため、組織全体の調整が必要な機能です。大規模なコードベースや大規模な組織では、依存関係を効果的に管理することが重要になります。依存関係の問題を回避できるツールや、コードの変更により生じる影響を明らかにするツールにより、すべてのエンジニアによる設計の決定やコードの品質が向上します。これにより、エンジニアは開発を迅速化し、安定性と信頼性の高いソフトウェアを作成できます。
Google におけるコードの保守性の実装というセクションに実装の具体例が記載されている(長いので割愛)。
モニタリングとオブザーバビリティ
DORA の調査では、これらの用語は次のように定義されています。
モニタリングは、チームがシステムの状態を監視して把握できるようにするツールや技術的なソリューションです。モニタリングでは、事前に定義した指標やログの収集を行います。
オブザーバビリティは、チームがシステムのデバッグを積極的に行えるようにするツールや技術的なソリューションです。オブザーバビリティでは、事前に定義されていないプロパティとパターンの調査を行います。
モニタリングとオブザーバビリティの実装方法というセクションに実装の具体例が記載されている(長いので割愛)。
組織文化に関するケイパビリティ
5つあったケイパビリティが編集され4つになっている。
トータルでの内容的な差分は無いが創造的な組織文化の育成
が削除され、有意義な仕事を可能にするツール等の資源の提供
が仕事の満足度
に変更されている。
まとめ
各ケイパビリティの内容はどれも一般に良いとされているプラクティスとなっている。エンジニアからすると「当たり前」とすら感じる項目も多いが、DORAの調査は感覚的なものを統計的な観点から裏づけしてくれるため組織内での説得材料などに役にたつと思う。
参考文献
Discussion