はじめに
最近は、ソフトウェアのアップデートが可能な製品が当たり前になってきており、開発現場もそれに合わせて変化しています。
よくあるケースとして、短い期間で開発を行い、頻繁にフィードバックを行う継続的デリバリーが可能なスクラム開発の導入があると思いますが、現場の実態として、リリース作業に追われていたり、会議が多すぎるなど、放置するとチームが疲弊してしまいそうな話もよく聞きます。
果たして、このようなチームは優秀なチームと呼べるのでしょうか。
従来の問題点
開発チームの優劣を測る尺度として「生産性」は古くから使われてきたと思います。
しかし、可読性の低い大量のコードを書くことが優秀とは言えず、スクラム開発では「速度(ベロシティ)」という新しい基準が用いられています。
ただ、このベロシティも、チームストーリーの見積もり次第で絶対的な値ではなく、実際はあまり効果のない作業をしていたとしても、それを表すことはできません。
生産量から成果へ
では、どうすれば、継続的デリバリーが可能なチームとして優秀と言えるのか。それは、チームの「出力」ではなく「能力」を測定するケイパビリティ・モデルの導入です。
測定基準は以下の4つの項目になります。
デプロイ頻度 (Deployment Frequency):
新しいリリースやデプロイがどれだけ頻繁に行われているかを示します。高頻度のデプロイは、迅速なフィードバックと市場対応を可能にします。
変更リードタイム (Lead Time for Changes):
コードの変更がコミットされてから本番環境にデプロイされるまでの時間を測定します。短いリードタイムは、迅速なリリースと市場対応を示します。
変更失敗率 (Change Failure Rate):
デプロイ後に問題が発生する割合を示します。低い変更失敗率は、品質の高いリリースを示します。
平均修復時間 (Mean Time to Recovery):
システム障害が発生してから復旧するまでの平均時間を測定します。短い修復時間は、迅速な問題解決能力を示します。
継続的デリバリーのプラクティス
そして、4つの尺度で高得点を出すためのプラクティスなのですが、それは、CI/CD環境の構築や、テストの自動化、見える化などで、目新しさは必要ありません。重要なのは、4つの尺度でパフォーマンスが上がるようにPDCAを回すことです。
最後に
チームの継続的デリバリー能力が上がり、効率的なプロセスが回るようになり、品質の高いリリースが可能になってくると、失敗する可能性が大幅に減少し、チームの心理的安全性が向上します。
そして、メンタル的にも余裕が持てるようになることで、ようやく、疲弊することなく、作業が持続可能なチームだと言えると思います。
出典
Nicole Forsgren Ph.D./Jez Humble/Gene Kim 著
武舎 広幸/武舎 るみ 訳
LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加速する
インプレス,2018,289p.

