去る2022年9月29日(アメリカ時間)にState of DevOps 2022が公表されました。
State of DevOpsとは、年に1回DORA(Google Cloud内のチーム)が発表しているソフトウェアのデリバリーパフォーマンスに関する調査結果レポートです。State of DevOpsでは、ソフトウェアデリバリーパフォーマンスの指標でもあるFour Keysや、Four Keysの改善効果が高いとされるケイパビリティについての詳細な内容が記載されています。
株式会社ビズリーチでは、日々プロダクト開発のプロセスをより良くするための活動を行っています。今回State of DevOps 2022の発表に伴い私が所属するプロセス改善部内でState of DevOps 2022に関する調査と議論を行いました。今回はプロセス改善部でまとめた内容を前編と後編の2部に分けて紹介したいと思います。
前編ではState of DevOps 2022に焦点を当て、新しく判明した内容を大きく4つ取り上げます。なお後編では、それらの結果に対するプロセス改善部としての考えを紹介する予定です。
State of DevOps 2022で判明したトピックについて
本記事で取り上げる内容は以下の4つです。
- Four Keysにおける「Elite」クラスターの除外
- 運用パフォーマンスを含めたクラスター分析の実施
- ソフトウェアサプライチェーンのセキュリティに関する調査実施
- 過去の傾向を覆す調査結果の登場
なおState of DevOps 2022の全文はこちらからダウンロードできるので、興味がある方はぜひ読んでいただければと思います。
それでは1つずつ見ていきましょう。
1.Four Keysにおける「Elite」クラスターの除外
これまでのState of DevOpsレポートでは、Four Keysのクラスター分析結果として
「Elite/High/Medium/Low」の4つのクラスターが挙げられていました。
一方State of DevOps 2022ではEliteクラスターがなくなり、クラスターが3つになっています。
Eliteクラスターの除外についてState of DevOps 2022では以下のように述べられています。
The striking difference from last year is that we don’t consider any cluster to be elite this year. This year’s high cluster is a blend of last year’s high and elite clusters. We decided to omit an elite cluster because the highest performing cluster simply isn’t indicating enough of the characteristics of last year’s elite cluster.(State of DevOps 2022 P11より引用)
「昨年との大きな違いは、我々は今年はどのクラスターもEliteであると考えていないことです。今年のHighクラスターは、昨年のHighクラスターとEliteクラスターが混ざったものです。 最も高いパフォーマンスのクラスターが昨年のEliteクラスターの特徴を十分に満たせていないため、今回はElite クラスターを除外することにしました。」
一方で、昨年度との共通点としてパフォーマンスの高いクラスターと低いクラスターの差は顕著に出ているとも述べています。
We might be focusing too much on the differences between 2021 and 2022, rather than highlighting the similarities. The clusters from 2021 and 2022 share many characteristics, including a huge separation between high performers from low performers. For example, high performers are estimated to have 417x more deployments than low performers.(State of DevOps 2022 P13より引用)
2021年と2022年の違いに注目しすぎて、むしろ共通点を浮き彫りにしているのかもしれません。2021年と2022年のクラスターは、高パフォーマーと低パフォーマーの間に大きな隔たりがあるなど、多くの特徴を共有しています。例えば、高パフォーマーは低パフォーマーに比べて417倍のデプロイメントがあると推定されます。
2.運用パフォーマンスを含めたクラスター分析の実施
前提としてState of DevOps 2020までは、4つのメトリクス「サービス復旧時間*1」「変更失敗率」「変更リードタイム」「デプロイ頻度」に注目していました。State of DevOps 2021では前述の4つに加え、運用パフォーマンス指標である「信頼性」を5つ目のメトリクスとして紹介しています。今年度のレポートでは従来のFour Keysに関するクラスター分析に加えて、信頼性も組み込んだクラスター分析を実施しています。
*1なおState of DevOps 2017までは「平均復旧時間(Mean time to recover)」でしたがState of DevOps 2018からは「サービス復旧時間(Time to restore service)」に変わっています.
今回の調査の結果、信頼性が担保されていることがDevOpsの哲学が効果的に作用する可能性があると判明したのは注目すべきことだと思っています。なお、各クラスターの特徴についての詳細な説明はGoogleが公開している資料をご覧ください。
3.ソフトウェアサプライチェーンのセキュリティに関する調査実施
DORAは以前(私たちの知るかぎりState of DevOps 2016頃)からセキュリティの重要性を指摘しており、State of DevOps 2021ではセキュリティプラクティスに関して言及していました。State of DevOps 2022ではもう一歩踏み込み、セキュリティとDevOpsの関連性を探るための調査をしています。
具体的にはSupply-chain Levels for Secure Artifacts(SLSA)、Secure Software Development Framework(SSDF)という2つのセキュリティフレームワークに関連したセキュリティプラクティスをどの程度実施しているか調査を行っています。
調査内容は以下の通りです。
調査の結果、以下の内容が判明したと記載されています。
- SLSAとSSDFのセキュリティプラクティスはすでにある程度採用されているが、まだ採用されていないものもある
- 信頼度の高い「非難のない」文化は、信頼度の低い組織文化よりも SLSA および SSDF プラクティスを確立する可能性が高くなる
- ソフトウェアサプライチェーンセキュリティの技術的側面の採用はCI/CDの実施に大きく影響をうける
- セキュリティプラクティスの導入にはセキュリティリスクの軽減に加え、燃え尽き症候群の軽減などのメリットもある
- CI が実装されている場合、セキュリティプラクティスの実施はソフトウェアデリバリパフォーマンスに大きなプラスの効果がある
上記の結果に加えて、State of DevOps 2022では文化の重要さを強調していました。
The biggest factor we found was not technical at all, but rather cultural: organizations closest to the “generative” Westrum culture group were significantly more likely to say they had broadly established security practices,as defined by the SLSA framework.(State of DevOps 2022 P51より引用)
最も大きな要因は技術的なものではなく、文化的なものであることがわかりました。Westrumの「創造的な」文化グループに最も近い組織は、SLSAのフレームワークで定義されるセキュリティプラクティスを広範囲に確立していると答える傾向が顕著に見られました。
これまでもState of DevOpsでは文化の重要性について触れていましたが、セキュリティプラクティスの実施にも影響を及ぼしているという今回の結果を受け、改めて文化の形成に力を入れることの重要性を感じました。
4.過去の傾向を覆す調査結果の登場
State of DevOps 2022では「サプライズ」と題して新しい発見について述べられています。これには、これまでの調査結果や仮説とは異なる(矛盾する)結果も複数あったと述べています。
一部を紹介すると具体的には
- トランクベース開発はソフトウェアデリバリーパフォーマンスに悪影響を及ぼしている可能性がある
- 運用パフォーマンスが高い場合のみ、ソフトウェアデリバリーパフォーマンスが組織パフォーマンスに対して有益である可能性がある
- ドキュメンテーション文化はデリバリーパフォーマンスに悪影響を及ぼしている可能性がある
- 一部の技術的ケイパビリティ(トランクベース開発、疎結合アーキテクチャ、CI/CDなど)は、燃え尽き症候群を誘発している可能性がある
- 信頼性エンジニアリングの実践はデリバリーパフォーマンスに悪影響を及ぼしている可能性がある
などになります。
私自身これまで発表されたState of DevOpsは全て目を通していますが、今回のような発表は初めてで驚いたのと同時に、調査に携わった方々も困惑したのだろうなと思いました。
ただし、これらの結果は、今回の調査が外れ値なのか因果関係があるのかを説明できていません。今後のレポートでも継続して分析されるものと思われます。
今回の調査結果で今までとは違う傾向が出てきたことについて、DORAは2つの仮説を出しています。
- 今回の調査ではこれまでの調査と比較してキャリアの浅い人が多く含まれていたため
- COVID-19のような業界や世界を大きく変えるような何かが起きており、DevOpsの法則に大きな影響を与えているため
1つ目の仮説についてですが、State of DevOpsでは毎回調査に協力した企業や個人の属性の割合を公開しています。
上の図はState of DevOps 2022とState of DevOps 2021、それぞれにおける調査対象の経験年数を比較したグラフです。2022年の調査では、2021年と比べて経験年数16年以上の人の割合が大きく減っているのに対して、経験年数3-10年の人の割合は増加しています。
私たちとしては、トランクベースなどの技術的ケイパビリティの実施には当然相応の技術スキルが必要であると考えています。そのため、経験年数の変化は調査結果に大きく影響を与えているのではと感じています。
ただし、これはあくまで仮説の1つに過ぎません。DORAも継続調査を行うと語っており、来年以降のレポートでどのような結果になるか注視したいと思います。
終わりに
今回はState of DevOps 2022の一部内容を紹介しました。その他にも複数のテクニカルプラクティスに関しても詳細な記載があるので、興味を持った方はぜひ原文のレポートも読んでみてください。 後編ではFour Keysとどのように向き合っていくのが良いのかについて記載したいと思います。