Developer Productivity室の @uncle__ko です
自分が所属してるCyberAgentのDeveloper Productivity室では開発生産性向上に日々取り組んでいます
ついに2023年版 State of DevOps Reportが公開されましたね
State of DevOps Reportは DevOps Research and Assessment(DORA)チームが2014年から毎年公開しているDevOps業界の年次調査レポートです
DORAは書籍「LeanとDevOpsの科学」の著者陣が中心となって設立された調査機関で、このレポートは書籍からのトレンドの変化を読み取れるとてもいいレポートになってます
開発生産性向上を担うチームとしては、このレポートはとても有用な資料になりますし、開発生産性を向上させたいエンジニア組織にもとても有用な資料となることかと思いますので、このレポートの内容を簡単にですがまとめて見ようかと思います
もしこの記事をみて、詳細が気になった人は実際のレポートを参照してみてください
ソフトウェアデリバリパフォーマンス
ソフトウェアデリバリのパフォーマンスを計測するための項目は下記4つ
- 変更リードタイム - 変更がcommitされてからdeployされるまでにかかる時間
- 導入頻度 - 変更が実稼働環境にpushされる頻度
- 変更失敗率 - 即時の介入が必要となるような障害が実稼働環境で発生する頻度
- 障害復旧時間 - 失敗したdeployから回復するのにかかる時間
クラスタ分析をした結果は下記のようになっていたようです
昨年のレポートではEliteはいなかったのですが、今年は全体の18%だったようです
チームタイプのクラスタリング
ソフトウェア配信パフォーマンス、運用パフォーマンス、ユーザー中心性を 1 つの単位として比較して、下記4 つのタイプのチームに別けられたとのことです
- User-centric Team
- このチームは、ユーザーのニーズに最も重点を置いている
- この重点と、強力なソフトウェアデリバリパフォーマンスおよび強力な運用パフォーマンスを組み合わせることで、最高レベルの組織パフォーマンスが予測される
- ただし、バランスのとれたチームよりも少し燃え尽き症候群が見られる
- ソフトウェアデリバリパフォーマンスや運用パフォーマンスを向上させることが、こうしたチームにとって燃え尽き症候群を軽減する最善の方法である可能性がある
- Feature-driven Team
- このチームは、機能のシッピングを優先する
- ユーザー中心性と運用パフォーマンスの数値の低下が示すように、デリバリーに執拗に重点を置くと、ユーザーのニーズを満たすことからチームの気が散ってしまう可能性がある
- これらのチームは、燃え尽き症候群のレベルが最も高く、仕事の満足度、チームのパフォーマンス、組織のパフォーマンスのレベルが最も低いと報告している
- 従業員は機能だけでなく価値を提供することを重視している
- 機能主導のチームは、提供される機能からより多くの価値を引き出す方法としてユーザーのニーズを反映することで恩恵を受ける可能性がある
- Developing Team
- このチームは、アプリケーションのユーザーのニーズに重点を置くことで、優れた組織パフォーマンスを実現する
- ただし、製品市場への適合性や技術的能力をまだ開発中である可能性がある
- このようなチームは小規模な組織でよく見られる
- これらのチームは、ソフトウェアデリバリパフォーマンスと運用パフォーマンスが低く、これらのアプリケーションに取り組んでいるチームは、バランスのとれたチームまたはユーザー中心のチームよりも高いレベルの燃え尽き症候群を報告している
- これらのチームには、ソフトウェアデリバリパフォーマンスと運用パフォーマンスを向上させる方法として自動化できる、重量のあるプロセスや骨の折れるタスクがある可能性がある
- Balanced Team
- 組織のパフォーマンス、チームのパフォーマンス、仕事の満足度を高めるために、持続可能な方法でテクノロジーを活用している
- これらのチームは、燃え尽き症候群のレベルも最も低いと報告している
- これらのチームは、3 つの指標すべてで優れたパフォーマンスを実現できるように能力を調整した
- ユーザー中心主義を高めることが、組織のパフォーマンスを向上させる道となるかもしれない
ユーザーに焦点を当てると組織のパフォーマンスが高くなる
ソフトウェア開発に対するユーザー中心のアプローチがパフォーマンスの大幅な向上につながることがわかったようです
組織はユーザーを第一に考えると、一連のメリットを体験でき、ユーザーのフィードバックは、チームがプロジェクトに優先順位を付け、ユーザーのニーズを満たす製品やサービスを作成するのに役立つとのことで、このアプローチは、ユーザー エクスペリエンスの向上、ユーザー満足度の向上、収益の増加につながるとのことです
ユーザーに焦点を当てるチームは組織パフォーマンスが 40% 向上し、20%高い仕事満足度を感じられるそうなので、ユーザにフォーカスすることの重要性がわかりますね
technical capabilities
下記4つについて、どのようなパフォーマンスになるのかを調査した結果です
- Artificial intelligence(AI)
- Trunk-based development
- Loosely coupled architecture
- Continuous integration(CI)
- Rapid code review
素早いコードレビューはソフトウェアデリバリのパフォーマンス、運用パフォーマンスの大幅な向上に繋がりそうですね
コードレビューを迅速化するためにいくつかの方法があるかと思います
差分を小さくするのもその1つです
差分を小さくするためには疎結合アーキテクチャが重要ですし、トランクベース開発も重要ですね
それに、小さい単位でのコードレビューでは、チームのフィードバックサイクル、効率、集中力が向上する効果もあります
また、ペアプログラミングは現在のアーキテクチャに関係なく、コードレビューの時間を短縮できるプラクティスです
コードレビューサイクルを早くしたいチームは上記を気にかけると良いかと思います
興味深いなと思ったのは、Trunk-based developmentが燃え尽き症候群を大幅に助長してそうなところです
去年のレポートでも、経験年数が多く、技術力が高いチームでのTrunk-based developmentは好影響を与えるが、若い技術力の乏しいチームでは逆に良くない影響を与えるとの報告もあったので、そのあたりが関係してるのかもしれません
また、AIについてはまだ導入初期で、結果に影響を及ぼすのはまだ先の可能性があるとのことですので2024年版を楽しみに待とうかと思います
ドキュメンテーション
ドキュメントがきちんと整備されているパフォーマンスへの影響は引き続き大きそうですね
このように色々な指標で好影響を与えていそうです
ただ、1点興味深い内容が報告されていました
上記を見るとわかる通り、過小評価されてると感じる集団は、ドキュメントのクオリティが高いと燃え尽き症候群により繋がり、過小評価されてると感じてない集団はドキュメントのクオリティが高いと燃え尽き症候群になりにくくなることです
今後さらに深掘って調査するとのことなので、原因などは今後のレポートに来たいですが、組織としては過小評価されてると感じないようなマネージメントが重要そうですね
文化への投資
全体として、健全な文化はすべての主要な成果にプラスの影響を与えるとのことです
生成的な文化が組織のパフォーマンス、ソフトウェアデリバリのパフォーマンス、運用パフォーマンスを促進し、ソフトウェア開発に対するユーザー中心のアプローチがパフォーマンスの大幅な向上につながることが判明したようです
生成的な文化を持つチームは組織パフォーマンスが 30% 高く、雇用の安定性が高いと燃え尽き症候群が 61% 減少するそうなので、文化の重要性がわかります
ちなみに最近よく話題にあがるリモートワークと物理出社どちらのほうがパフォーマンスがあがるかという話ですが、一番良さそうなのはフレキシブルに従業員がリモートと出社を選択できる環境のようです
さいごに
いかがでしたでしょうか
2023年版 State of DevOps Reportの内容をざっくりまとめてみました
今年の内容をまとめると下記のように感じました
- ユーザ中心のチームは生産性が高くなる
- 引き続き疎結合アーキテクチャ、トランクベース開発、CI/CDはソフトウェアデリバリで重要
- 迅速なコードレビューは生産性を向上させる
- ドキュメントの整備は重要
- ただし過少に評価されていると感じている集団では燃え尽き症候群に陥る可能性がある
AIについてはまだあまり影響が確認できていなそうでしたが、個人的にはGitHub Copilotなどは開発生産性の向上にかなり影響を及ぼしそうだと思っていますので、来年のレポートを楽しみにしてたりします
今回は省略してしまった章などもたくさんあるので、興味がある人はダウンロードして確認してみてください
また、私の所属するDeveloper Productivity室では開発生産性の向上に興味がある、DevOpsに興味があるエンジニアを募集していますので、ぜひカジュアル面談しましょう