CircleCI(継続的インテグレーション・継続的デリバリープラットフォーム)は、2022年ソフトウェアデリバリ状況レポートの調査結果をリリースした。このレポートでは、最も成功したソフトウェアデリバリチームがより大きなチームであり、広範囲に及ぶテストを行い、デプロイの準備ができていることを優先していることが明らかになった。
チームと文化の観点でレポートから主にわかったことは、最も成功したチームが4つの主要なベンチマークを日常的に満たしていることである。これは、レポートによって成功チームに対してわかったことで、その4つは、期間、平均修復時間、成功率、スループットである。これらのチームは、実行されるワークフローの数に焦点を合わせるのではなく、いつでもデプロイできること(継続的デリバリーの重要指標)を優先する。ワークフローの所要時間は平均で5~10分の傾向があり、デフォルトのブランチでの成功率は90%を超えており、障害からの回復には1時間もかからない。
このレポートでは、インターネットで公開されている既存のライブラリを組み合わせによる、現代のソフトウェアの統合がさらに進んでいることが説明されている。そして、ソフトウェア構築に関係するコンポーネントの規模が非常に複雑になっている。レポートによると、ほとんどの組織はCI/CDを使ってこの複雑さを軽減している。そして、CircleCIは、次の4つの指標に基づいて、CI/CDの実装における組織の成功を分析する。
期間 - ワークフローの実行にかかる時間の長さ。Martin Fowler氏は、CIは「数分」で実行できるべきであることを提案している。レポートによると平均所要時間は12~13分であった。レポートには、テストの並列化、CI用に特別に設計されたDockerイメージの使用、最適なマシンサイズとキャッシュ戦略の使用など、これを改善するためのヒントが記載されている。
平均修復時間(MTTR) - パイプラインの障害から次の成功までの平均時間。理想的には、MTTRはゼロだが、CircleCIはこれを大きくする要因をわかっている。それは、年末年始休暇、テストカバレッジが包括的でないこと、失敗した実行からの曖昧なエラーメッセージなどである。これを改善するためのヒントとして、テスト期間の短縮、ツールを使用したCI障害の迅速な特定、テストにおいて有益な追跡可能なエラーレポートの使用、ワークフローが失敗したマシンでの直接のデバッグなどがある。
成功率 - 一定期間における、パスした実行数を実行総数で割った数。これは、使用するブランチ戦略によって異なる場合がある。一部の組織では、機能ブランチを多用しており、成功率がより低くなっているケースは革新や実験の現れである。ただし、メインブランチの成功率は注意深く監視する必要がある。
スループット - 1日あたりのワークフロー実行の平均数。ただし、スループットが低いからといって、必ずしも変更が少ないというわけではない。レポートでは、コミットサイズが大きいことが原因であることが示唆されている。これは、調査によると逆効果である。ベースラインスループットの測定と変動の監視は、ベースのない気まぐれなスループット数に基づくものを目指すよりも効果的であることを強調している。
さらにわかったことは、小規模なチームは壊れたパイプラインを修正するリソースの不足に苦しむ可能性があるということである。そのため、悪いコードが本番環境に投入されるのを防ぐためにテスト駆動開発(TDD)を優先する必要がある。CircleCIがこのレポートを発行したのは今年で3年目であり、数字はこれまで以上に多くのチームがベンチマークに到達していることを示している。
2022年ソフトウェアデリバリ状況レポートは、CircleCIのWebサイトから入手できる。