Four Keysとは
DevOps Research and Assessment(DORA)が提唱したソフトウェア開発チームのパフォーマンスを示す4つの指標。
- デプロイの頻度 : 組織による正常な本番環境へのリリースの頻度
- 変更のリードタイム : commit から本番環境稼働までの所要時間
- 変更障害率 : デプロイが原因となり、本番環境で障害が発生する割合(%)
- サービス復元時間 : 組織が本番環境での障害から回復するのにかかる時間
Accelerate State of DevOps 2021 で、5つ目の指標として 信頼性 が追加され、Software Delivery and Operational (SDO) Performance と呼ばれる。
Four Keysの指標については、ハイパフォーマンスであればあるほど、チームのパフォーマンス(収益性, 市場占有率など)の向上に繋がることが、明らかになっている。
Four Keysとトレードオフ
Four Keysは高スループットと安全性を追求するものなので、トレードオフはあるが、高スループットと安全性の両方を兼ね備えたプラクティスが、抜きん出てハイパフォーマンスとなることがある。
Four Keysの具体例
例えば、リファクタリングによって、以下のようにFour keysの4つの指標が向上されるので、ソフトウェアデリバリーのパフォーマンス向上につながる。
- デプロイの頻度 : 疎結合で、小さくリリースが可能となる
- 変更のリードタイム : 変更に強くなり、短縮する
- 変更障害率 : 可読性が向上し、ミスが減少
- サービス復元時間 : 可読性の向上で、原因特定が容易になる
Four Keysにおけるハイパフォーマンスとは
Four Keys を High, Midium, Low の3つのレベルで分けた調査結果は以下のようになる。
High(11%) | Midium(69%) | Low(20%) | |
---|---|---|---|
デプロイの頻度 | 1日複数回 | 1週間〜1ヶ月 | 1ヶ月〜6ヶ月 |
変更のリードタイム | 1日〜1週間 | 1週間〜1ヶ月 | 1ヶ月〜6ヶ月 |
変更障害率 | 0〜15% | 16〜30% | 46〜60% |
平均復旧時間 | 1日以内 | 1日〜1週間 | 1週間〜6ヶ月 |
それぞれの改善案
デプロイ頻度
- 変更のリードタイムを改善することで同時に改善する
- MVP開発
- 開発プロセスの最適化
- CI/CDツールによる自動化の導入
- ペアプロや勉強会等によるチームのスキルアップ
- リリース手順の簡素化
変更のリードタイム
- CIの高速化
- レビュー時間の短縮化
- 作業単位とリリース単位の短縮化
- QA作業の軽量化
- リリースフローの最適化
変更障害率
- PRは小さく分割すること
- セルフレビューを行う
- テストの自動化
- トランクベース開発
平均復旧時間 (MTTR)
- 監視による障害検知
- ログによる障害の原因特定
- ロールバックによる復旧
- 障害対応訓練
- 障害対応テンプレートの整備
最後に
Four Keysにはすでに色々な測定ツールが存在しているので、使っていなければチームに導入して可視化してみよう。ただし、やり過ぎには注意(デプロイ頻度を1日1回するなど)。きちんとFour Keysを向上すると生産性が上がる理由を理解して導入する。また、Four Keysだけでなく、SPACEフレームワークなどを併用すると、より生産性向上につながってくる。