SPACEフレームワークとは
SPACEフレームワークは、開発者の生産性を多面的に評価するためのフレームワークです。
このフレームワークは、GitHub、ビクトリア大学、Microsoft Researchのメンバーによって提唱され、『LeanとDevOpsの科学』の著者でもあるNicole Forsgren氏によって「The SPACE of Developer Productivity」という論文の形で発表されました。
論文では、開発者の生産性についての神話と誤解を明らかにし、「重要な1つの指標」で把握することはできないと結論づけ、多様な側面を評価できる生産性指標を複数選定し、これらを大きな視点で論理的かつ体系的に考える方法をSPACEフレームワークとして定義しています。
フレームワークという名称から、エンジニアである私たちが最初に思い浮かべるのはアプリケーションフレームワークのような定型処理がまとまったものですが、このSPACEフレームワークはSWOT分析などのビジネスフレームワークに近く、概念を提示しているものと言えます。
また、最近ではGitHubによるCopilotレポートでも考え方の基礎として言及され、にわかに注目が集まっています。
SPACEフレームワークが開発された背景
フレームワークの詳細に入る前に、評価指標や方法が多くある中で、なぜこのフレームワークが開発されたのか、そして、これまでの指標運用にはどのような課題が存在したのかといった背景を交えて説明します。
これまでの指標運用の課題
論文内では、開発者の生産性に関する多くの神話が、長年にわたって蓄積され誤解を生んできたと書かれています。
そもそも、そのような神話と誤解を生む「開発者の生産性」とは、一体何なのでしょうか。
生産性とは、Wikipediaによると、
生産性とは、経済学で経済政策に対する生産要素の寄与度、あるいは、資源から付加価値を産み出す際の効率の程度のことを指す。
より少ないインプットからより多いアウトプットが得られるほど、より生産性が高いという関係にある。
生産性=アウトプット/インプット
生産性には何を基準に置いて評価するかによって幾つか種類がある。
とあります。以下に説明されているように、開発者という言わば労働力に対する生産性は、労働生産性になります。
労働生産性(Labour productivity)とは、労働力(単位時間当たりの労働投入)1単位に対してどれだけ価値を産めたかを指す。
(中略)
生産量を物的な量で表す場合を特に「物的労働生産性」、金額(付加価値)で表す場合を「付加価値労働生産性」と言い、一般的な経済指標で単に「労働生産性」と言った場合、通常は後者を指す。
この定義を開発者の生産性に適用すると、アウトプットには、物的労働生産性を表す設計文書や仕様書、作業項目、プルリクエスト、コミット、コードレビューの量や数、機能実装など直接価値提供につながるものがあり、また付加価値労働生産性を表す顧客満足度向上、全体のフローを改善するDX改善、コスト削減対応なども含まれます。
このようにエンジニアが関わる生産は多岐にわたります。
そして、インプットとして投下した労働力が実際にどれくらいのアウトプット量を生み出すかは単位時間や人数だけでは計れず、コンディションや開発フローへの満足度といった定性的なものや、オンコール対応や他メンバーのオンボーディング時間、他チームとの会議時間などによっても左右されます。
これら多面的な活動に対して、一つの次元または指標のみで把握することは難しいと言えます。
また、論文内では以下のような神話がまとめられています。
- 生産性は開発者の活動がすべてである
- 生産性とは個人のパフォーマンスに関するものでしかない
- 1つの生産性指標ですべてがわかる
- 生産性指標はマネジャーにしか役に立たない
- 生産性はエンジニアリングシステムと開発者ツールにのみ関係する
これらは、逆に言えば、すべてが必ずしもそうではないことを示しており、実際の意味ある観測には一次元ではなく多面的な捉え方が必要というのが現実です。
さらに、一つの指標のみを観測した場合、人によってはその数値のみのパフォーマンス向上を行うような行動を優先する(あるいは更に極端な例として、指標の操作など)こともあるでしょう(意識的には行わないとは思いますが、実際に評価に関わる数値であるとしたら、日々の行動に影響がまったくないとは言えません)。
改善行動を取った結果、数値が向上したとしても、それが指標操作によるものなのか、それともPDCAサイクルを回した結果の数値なのかの判断は難しいです。
つまり、単一指標では様々な側面を持つ生産性評価ができず、また一つのみ観測してしまうと、本来目的とすべきであろう生産効率が上がったのか下がったのかを正しく計測することができなくなるという問題が発生します。
これら本来は複雑で多面的な視点で把握を必要とする生産性評価という問題に対して、コンディション状況などのウェルビーイングを意識した状況把握を含む定性指標と従来使われていた定量指標(Four Keys、コミット数、PRマージ数など)を組み合わせた三角測量を行うことで、微妙な影響を理解しながら組織を改善していくフレームワークが、SPACEフレームワークです。
では、具体的にどのような定義と運用で解決を図るフレームワークなのか、次の項以降ではSPACEフレームワークの要点となるその定義と使用方法について紹介していきます。