State of DevOps Report 2024のざっくりサマリ

[Google Cloud Champion Innovators Advent Calendar 2024](https://adventar.org/calendars/10061) の14日目の記事です。去年と同じ日だった！

Advent Calendarも半分過ぎましたね！
今日はDevOpsに関する様々な要素が組織やチームのパフォーマンス、従業員のウェルビーイングへ与える影響を研究しているDORAの、最新のレポートであるState of DevOps Report 2024[^sum1]のサマリを紹介したいと思います！

[^sum1]: https://dora.dev/research/2024/

## TL; DR

- State of DevOps Reportは世界最大のDevOpsに関する研究
- ランクに惑わされずに、継続的に改善することが大事だよ (以前と同じ)
- 今年のレポートは**AI、Platform Engineering, Developer Experienceにフォーカスしていて、いずれもポジティブ/ネガティブな影響が確認**されています
- AI: 総じて良い効果が得られているけど、ネガティブな面もある
- Platform Engineering: トレードオフはあるが、品質を高めてばらつきを減らせる
- Developer Experience: ユーザ志向であることが何よりも重要
- 日本からのサーベイ回答者が増えた！ (ローカライズのおかげ？)


## DORAの研究方法
研究方法は変わってないので[去年の記事](https://qiita.com/kenzkenz/items/28a69c6a89958fd3acca)を参考にしてみてください。去年との違いは以下です。
- AI, ワークプレイス、Platform Engineeringの3つを深堀りしているが、サーベイの参加者ごとにどれかが割り振られるようになっていた。
- インタビューが取り入れられた。
- 具体的な数字は公開されなくなったが、日本からの参加者は去年の3%から相当増えているように見える！


## 2024レポートのエグゼクサマリ

DORAのレポートは過去の研究結果を基に次のレポートの分析対象やサーベイ内容を変えることで、不明瞭な点を深掘りしたり、時代の変化に合わせて変更したりしています。2024年の分析結果により井岡のような構造があるとされています。


```mermaid
flowchart LR
    subgraph upstream
        direction LR
        学習する環境
        迅速なフロー
        迅速なフィードバック
    end

    subgraph midstream
        direction LR
        ソフトウェアデリバリのパフォーマンス
        安定性
    end

    subgraph downstream
        組織のパフォーマンス
        ウェルビーイング
    end

    upstream --> midstream
    midstream --> downstream
```    



2024年のレポートでは、特に以下の7つについて研究されています。

- バーンアウトの削減
- フロー
- 仕事の満足度
- 組織のパフォーマンス
- プロダクトのパフォーマンス
- 生産性
- チームのパフォーマンス

今年は特にAIにフォーカスして研究されていますが、これまで通り他の重要な発見もあります。
- AIの活用は様々なものに影響を及ぼす
- AIへの信頼が増せば増すほど導入が進んでいく (39.2%は全く〜あまり信頼していないと回答している)
- ユーザ志向であることが様々なパフォーマンスを向上する
- 変革リーダシップが様々な要素に良い効果を及ぼす
- 安定した優先度が生産性とウェルビーイングを加速する
- プラットフォームエンジニアリングが生産性を加速する
- クラウドがインフラの柔軟性を向上する
- ソフトウェアデリバリのパフォーマンスすべてを達成することは可能

DORAの研究では、**ただ一度結果を出したからといって満足せず、常に改善し続けることが大切だと強調**されています。
つまり、新しいことを試したり、改善策を考えたりする「実験」を繰り返しながら、少しずつでも良いものを目指していくことが重要です。

これは、過去の研究でも同じように言われてきたことです。一度目標を達成したからといって、そこで終わりではなく、常に「もっと良くできるはず」という気持ちを持ち続け、改善し続けるチームや組織こそが、高い成果を出し続けられるのです。
また、チームがどれだけ早く改善できるかは、どれだけ多くのことを学び、どれほど質の高い学びを得られるかにかかっています。そのため、OODAループ等でサイクルを繰り返し、改善のための活動を継続的に行っていくことが大切です。


## どのようにレポートを活用すべきか？

今年のレポートでは個別の紹介がありませんでしたが、ぜひ[去年のレポートの説明](https://qiita.com/kenzkenz/items/28a69c6a89958fd3acca#%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%99%E3%81%B9%E3%81%8D%E3%81%8B)を見ていただくことをおすすめします。
レポートから学べることは多々ありますが、自分達の組織でそれが活用できなければ意味がありません。改善方法のポイントや落とし穴がまとまっているので是非参考にしてみてください。


## 4 key metrics -> 5 key metrics (!)

ソフトウェアデリバリのパフォーマンスとして浸透した4 key metricsですが、変更の失敗率は他のメトリクスとの相関が高いため外れ値と分析されています。
今年はDORAが立てた仮説である、デリバリが何らかの理由で失敗するとリワークする必要が発生し、さらなる変更を必要とする、を検証しています。その結果、リワークの量と変更の失敗率の関係を分析しており、相関があると分析しています。

これまでの4 key metricsと異なり、以下の5つのメトリクスをソフトウェアデリバリのスループットと安定性で分類としています。

```mermaid
flowchart TD
    subgraph 安定性
        direction LR
        変更の失敗率
        リワークの割合
    end
    subgraph スループット
        direction LR
        変更のリードタイム
        デプロイの頻度
        サービス復旧の速さ
    end

```


## パフォーマンス分析

パフォーマンス分析では一貫性のためにこれまでの変更のリードタイム, デプロイの頻度, サービス復旧の速さ, 変更の失敗率の4つで分析されています。
今年のパフォーマンス分析でそれぞれの割合は、EliteとMediumはほぼ変更なし、Highが減ってLowが増えた、という結果になっています。
一方で**HighとMediumのクラスタではデリバリのパフォーマンスと変更の失敗率は逆転した結果となっており、レポートではデリバリパフォーマンスが高く失敗率も高いクラスタをHigh**としています。
Eliteがデリバリパフォーマンスと安定性を両立している中で、High, Mediumは両立できていないことが分かっており、ラベルよりも個々の組織で継続的な改善をすることの重要性が謳われています。


## AIの適用

より多くの組織にてAIをアプリケーションやサービスに組み込んでおり、同様に多くの開発者がAIを使ってコアの責務を行って生産性の向上を実感しています。
開発者だけでなく組織にとってAIの活用は競争力を保つのになくてはならないもの、と認識しています。

- 組織: 81%の組織がアプリケーションやサービスへのAIの組み込みを優先していると答えています。この傾向は業界に関わらず同様な一方で、これまで他の技術の変更と同様に大きな組織では適用が遅くなっています
- 個人: 75.9%がAIを活用しており、1つ以上の業務で利用しています。エンジニアの種別でAI活用の割合が多いのはデータサイエンティストとMLスペシャリストで、少ないのはハードウェアエンジニアとなっています

興味深いのはAI活用による影響です。
多くの方が生産性が向上したと答えており、中でもセキュリティ、シスアド、フルスタックエンジニアが特に効果を感じています。
全体的には5-10年先にはAIは環境や社会、キャリアに悪影響を及ぼすと考えられている事が分かっています。

### AI活用による影響

個人と組織それぞれについて影響を調査しています。

|対象|効果|
|---|---|
|個人|フロー、仕事の満足度、生産性が上がる一方で、価値のある仕事にかける時間が減ります。`価値のある仕事`の捉え方は様々ですが、AIにより生産性が向上するコーディングなどが価値のある仕事と捉えられており、それらの割合が減る一方で価値の低いトイルはAIによってあまり効率化されないことが原因、と分析されています|
|開発ワークフロー|ドキュメントやコードの品質、コードレビューや承認のスピードは上がり、コードの複雑性は下がります。まだ分析しきれていない点として、これらのスピード向上がより高い品質には必ずしもつながっていない可能性があります。例えば品質の低いコードやドキュメントでもAIの活用により理解ができてしまうため、これまでよりも品質が低くても許容される、といったことで品質が低下する可能性があるとしています|
|ソフトウェアデリバリ|AIの活用は**ソフトウェアデリバリのスループットと安定性へ悪影響を及ぼします**。過去のレポートでは開発のワークフロー関連のパフォーマンス向上はソフトウェアデリバリのパフォーマンスへ好影響を及ぼしてきましたが、AIは違うようです。詳細な調査はこれからですが、これまでの研究で良い影響があると判明している小さなバッチサイズやロバストなテストが、AI活用により変更量が増えたり、周辺の整備が追いつかなくなってきていることが可能性として挙げられています。来年以降のレポートで原因が明らかになることを期待しましょう！|
|組織やプロダクト|AIを仕事に取り入れると、**組織やチームのパフォーマンスは上がりますが、プロダクトへはあまり効果がありません**。これは、AIが組織の効率を上げても、新しい製品のアイデアを出したり使い勝手の良い製品を作ったりするような、創造性やユーザーへの理解といった部分はまだ人間の方が優れているからだと考えられています。あるいは私達がAIを使いこなせておらず、現在は組織やチームのパフォーマンス改善にのみとどまっているだけで、今後プロダクトへ良い効果が見られる可能性もある、としています|


## プラットフォームエンジニアリング

近年流行っているプラットフォームエンジニアリングですが、DORAはプラットフォームエンジニアリングを社内向けのAPIやツール、サービスを提供してソフトウェア開発やオペレーションのライフサイクルを支援する、と整理しています。

プラットフォームエンジニアリングの明確なメリットとして個人で8%、チームでは10%生産性の向上します。これはプラットフォームがなかった場合に生じる個人差が、プラットフォームの活用により一定の高い生産性が実現できることに起因します。
一方で、プラットフォームエンジニアリングの導入によりソフトウェアデリバリのスループットと安定性がそれぞれ8%、14%下がると分かっています。これらのパフォーマンスの低下に大きく寄与しているのが、開発者が自立してプラットフォームを利用できるか、という点であり、プラットフォームが開発者からのフィードバックを集めていない場合に悪影響が大きくなると分析しています。

結論として、プラットフォームエンジニアリングは有効であり、特に以下の2点を考慮する必要があるとしています。
- ユーザ志向でプラットフォームユーザのフィードバックを集めること
- 変革で適用される[Jカーブ](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F375413%2F00767df2-5ab4-2922-7323-6524d129d05f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=a054fa813bfb795c37e8b9e6a28589a1)の関係にあるので継続改善すること

## Developer Experience

AIやその他のものにアシストされながらもあくまでもソフトウェアを書くのは人間です。
その人間がより高い生産性を保ち、バーンアウトしづらく、高い品質のプロダクトを作るためにはユーザ志向であることが重要とされています。
DORAの研究によると、ユーザ志向であればそれ以外のものは大体すべて伴ってくると整理しています。実際に、デリバリのスループットとプロダクトのパフォーマンスを調べると、ユーザ志向であるか否かが大きな違いを生むことが分かっています。

いくつかの組織ではユーザ志向であることよりも、新しい機能をロンチすることや技術革新に重きを置いています。
しかし、ユーザエクスペリエンスを犠牲にすることで、キラキラしていても殆ど使われないものが出来上がる可能性があります。(反論もあります[^de1]が、45%の機能が使われない、というのが頭をよぎりますね:p)

[^de1]: https://www.mountaingoatsoftware.com/blog/are-64-of-features-really-rarely-or-never-used

ではユーザ志向であることはなぜこのような差を生むのでしょうか？
アカデミアでは明確な目標があることが組織や従業員が良いパフォーマンスを実現する鍵であることが分かっています。
従業員の視点では、実に93%の従業員が意味のある仕事につくことを重視していると考えて[^de2]おり、平均して23%の収入を減らしても常に意味のある仕事ができることを優先する[^de3]とされています。
ユーザ志向であり、ユーザからのフィードバックループが構築できている組織では必然的に意味のある仕事が判断しやすく、実感が得られやすいため、結果的に開発者の生産性や組織のパフォーマンスにつながっている、と分析されています。

[^de2]: https://bigthink.com/the-present/harvard-business-review-americans-meaningful-work/
[^de3]: https://hbr.org/2018/11/9-out-of-10-people-are-willing-to-earn-less-money-to-do-more-meaningful-work

## ドキュメンテーションが重要

ここ数年、DORAの研究でフォーカスされてきたドキュメンテーションの品質もここで顔を出します！
アジャイルマニフェスト[^d4]の`包括的なドキュメントよりも動くソフトウェア`を、というのを盾にドキュメントを作らずにソフトウェア開発を進めた組織もあると思いますが、DORAは数年前からドキュメンテーションの重要性を継続して訴えています。

これまでも**品質の高いドキュメンテーションにより技術的なケイパビリティが組織のパフォーマンスに与える良い影響が増幅するとされていましたが、同様の効果がユーザ志向であることとプロダクトのパフォーマンスの関係にもある**ことが分かっています。
ドキュメントの良し悪しはアジャイルマニフェストの`包括的な`に込められているとしており、官僚的な目的で作成されたドキュメントや、作成するだけで更新/メンテされないドキュメントを悪いドキュメントと位置付けています。

```mermaid
flowchart LR
    subgraph A [" "]
        技術的なケイパビリティ --> 組織のパフォーマンス
    end
    subgraph B [" "]
        ユーザ志向 --> プロダクトのパフォーマンス
    end
    品質の高いドキュメンテーション --良い影響を増幅--> A
    品質の高いドキュメンテーション --良い影響を増幅--> B
```

[^d4]: https://agilemanifesto.org/

高い品質のドキュメンテーションを作成する良い文化をチームに浸透させるポイントもまとめられています。
これらを参考にぜひ良いドキュメンテーションの文化を根付かせて、組織やプロダクトのパフォーマンスを向上を目指しましょう！
- クリティカルなユースケースをドキュメントする
- テクニカルライティングに関するトレーニングを受ける
- ドキュメントのオーナと更新プロセスを定義する
- チーム内でドキュメンテーションの仕事を分散する
- SDLCに合わせてドキュメンテーションをメンテする
- 古いあるいは重複するドキュメントを削除する
- パフォーマンスレビューや昇格でドキュメンテーションを評価する


## 定常的に変わる優先度の問題

組織が定常的に優先度を変更すると、生産性の低下やバーンアウトの可能性が大幅に増加するとしています。
DORAは強いリーダシップや良いドキュメンテーション、ユーザ志向による軽減がないか分析した結果、効果はない、と結論付けています。

間違ってはいけないのは**ビジネスゴールやプロダクトが方向性を変えることは当たり前であり、組織が優先度を変えることができる状態にあることが重要である**、ということです。
問題とされているのは変更の頻度で、優先度の変更が慢性化してしまうと問題になる、としています。
一方で、優先度が安定しているとソフトウェアデリバリの速度と安定性が下がることも分かっており、追加の分析が必要としています。


## 変革のリード

今年のレポートでは、高いパフォーマンスを実現しているチームは以下の4つを備えていると分かっており、継続的な改善のマインドセットを持っていることが成功への鍵とされています。
- 安定性を優先している
- ユーザ志向
- 良いリーダがいる
- 品質の高いドキュメンテーションがある

また、DORAでは過去の研究より効果の大きい変革方法を4つ見つけています。

|方法|概要|効果|
|---|---|---|
|変革リーダシップ|ビジョン、インスピレーションを生むコミュニケーション、知的な刺激、サーヴァントリーダシップ、個人の認知を通じたリーダシップの発揮を含む|すべてのパフォーマンスやウェルビーイングが向上します|
|絶えずユーザ志向である|リーダシップとの相乗効果でビジョンが明確化する|2023年のDORAレポートでは**ユーザ志向なチームはそうでないチームと比較して組織のパフォーマンスが40%高くなる**と分析しています|
|データインフォームドな組織となる|新しいメトリクスを計測し、改善する。また、これらのメトリクスは人やチーム間のパフォーマンス評価では決してなく、自組織の継続的な向上を確認するために利用する|4 key metrics以外にもDORAは組織のパフォーマンス向上につながる30個以上のメトリクスを見つけており、これらを活用することで大きなパフォーマンス差が生まれる|
|クラウドにオールインするかオンプレにとどまる|NISTが定義する5つのクラウドの特徴 (オンデマンドxセルフサービス、広いネットワーク帯域、リソースプーリング、高速な柔軟性、拡張性の高いインフラ)を有効活用する|5つの特徴を活用できずにクラウドを使うとパフォーマンスが下がる|


## サマリ

過去10年に渡り、変革は成功するための必要条件であるとしています。
そして変革はゴールではなく、継続的な改善です。
**継続的な改善ができない会社は実際には後退している一方で、継続的な改善のマインドセットを持った会社は高いレベルにとどまっています**。
変革を推進するうえでは例えばDevOps, SRE, プラットフォームエンジニアリングで初期にパフォーマンスが下がり、その後大幅に上がるJカーブの特性を持つ事が分かっているように、諦めずに継続的に取り組むことが重要です。

今年のレポートでは5 key metrics, AI, プラットフォームエンジニアリング, Developer Experienceといった新しい要素も研究されていますが、いずれも実際に自分達で試してみて良い付き合い方を模索することが重要です。
ぜひレポートの結果や学習を元に組織やチームを改善してみんなで幸せになりましょう！:)