開発生産性の測り方|DORAとSPACEの使い分け

開発生産性の測り方|DORAとSPACEの使い分け

「チームの生産性を数字で出してほしい」と上から降ってくる場面があります。

とっさに思いつくのはコミット数やプルリクエスト数ですが、この手の数え上げは、細かく刻んで出す人ほど高く見えるという弱点を抱えてしまいます。

ここで名前が挙がるのが DORA と SPACE の二つです。

どちらも生産性まわりの枠組みですが、答えている問いがそもそも違うので、並べて理解しておくと使い分けを外しません。

DORAは「デリバリーの速さと安定性」を測る

DORA は DevOps Research and Assessment の略で、ソフトウェアデリバリーの性能を測る指標群として知られています。

長らく「Four Keys(4つの鍵)」と呼ばれてきましたが、公式ガイドの現在の定義は5つです。

スループット側に三つ、不安定さ側に二つが並ぶ構成です。

  • 変更のリードタイム: コミットが本番へ届くまでの時間
  • デプロイ頻度: 一定期間あたりのデプロイ回数、またはデプロイ間隔
  • 失敗デプロイの復旧時間: 即時対応が必要な失敗から回復するまでの時間
  • 変更失敗率: デプロイ後に即時対応を要した割合
  • デプロイ手戻り率: 本番障害の結果として計画外に発生したデプロイの割合

かつての MTTR(平均復旧時間)が「失敗デプロイの復旧時間」へ置き換わった経緯も、DORA の公式ガイドに記録が残っています。

重要なのは、これらがチームとデリバリープロセスに対する指標であって、個人の成績表ではないという点でしょう。

開発組織のパフォーマンスの計測を扱う『LeanとDevOpsの科学』を含め、テックリードが抱える疑問ごとに読む本を選んだ記事もあります。

テックリードが読むべき本まとめ|疑問別に選ぶ8冊

SPACEは「一つの数字では測れない」と示した枠組み

もう一方の SPACE は、2021年2月の ACM Queue に載った論文が出どころです。

Nicole Forsgren 氏らが提唱し、生産性は単一の指標や単一の次元では測れないという主張を軸に、五つの次元へ分解しています。

出典: The SPACE of Developer Productivity(ACM Queue, Feb 2021)

The SPACE of Developer Productivity: There's more to it than you think - Microsoft Research

頭文字がそのまま五つの次元に対応します。

  • Satisfaction and well-being: 仕事への満足度と健康
  • Performance: 成果そのもの(結果への影響)
  • Activity: 完了したアクションの量
  • Communication and collaboration: 意思疎通と協働
  • Efficiency and flow: 中断されずに進められているか

読み解くうえでの肝は、Activity だけを取り出すと必ず読み違えるという警告なのです。

コミット数が増えていても満足度が落ちていれば、それは生産性が上がったのではなく、どこかで無理が積み上がっているだけかもしれません。

二つは競合しない、層が違う

並べてみると、DORA と SPACE は置き換え合う関係ではなく、重なり方が決まっていることが見えてきます。

DORA が見ているのは、変更が本番へ届くまでの流れとその安定性です。

SPACE の五次元でいえば Performance と Efficiency and flow のあたりを、デリバリーという切り口で具体化したものと読めます。

一方 SPACE は、「生産性」という言葉を分解するためのチェックリストとして働くものです。

だから実務では、デリバリーの健康診断を DORA で取り、満足度や協働のように DORA から漏れる面を SPACE で補うという重ね方が素直なのですね。

計測の話を負債の議論に接続したいときは、痛みの測り方を扱った記事も参考になるでしょう。

技術的負債の見える化|返済計画をビジネス側に説明する方法

導入でつまずく三つのポイント

テックリードとして計測を持ち込むとき、順番を間違えると一気に空気が悪くなります。

第一は、目標値から入らないことです。

エリート水準の数字を先に貼ると、現場は数字を作りにいく方向へ動いてしまいます。

第二は、測る前に「小さく出せる状態」を整えることです。

デプロイ頻度は意志では上がらず、リリースの単位を切り分ける仕組みがあって初めて動きます。

フィーチャーフラグと段階リリース|リリース戦略の設計

第三は、指標を個人の人事評価へ接続しないと最初に宣言することです。

ここを曖昧にしたまま計測を始めると、数字は正直さを失い、改善のための道具だったものが防衛のための道具に変わってしまいます。

最後に

DORA は「届け方が健康か」を、SPACE は「生産性という言葉に何が含まれるか」を扱う道具です。

私もテックリードを目指して学んでいる途中ですが、この二つを混ぜずに持っておくだけで、生産性の議論がずいぶん噛み合うようになると感じています。

まずは自分のチームの変更リードタイムを一度だけ測ってみる、くらいの小ささから始めるのが良さそうですね。

以上です。