SPACE は 開発者の生産性のためのフレームワークです。
開発生産性に関する最新の研究の多くを 1 つのフレームワークに統合しています。
DORAチームのメンバーであり、書籍『 Accelerate』の共著者でもあるNicole Forsgren が、SPACE フレームワークの研究を主導しました。
SPACE は、DORA に含まれる特定の指標を超えて、開発者の生産性についてより完全かつ詳細な情報を提供します。
SPACE は、開発者の生産性の最も重要な 5 つの側面 (満足度と幸福、パフォーマンス、アクティビティ、コミュニケーションとコラボレーション、効率とフロー) を 3 つの異なる組織レベル (個人、チーム、システム) でリストします。
SPACE フレームワークを使用する理由は何ですか?
SPACE フレームワークは、開発者の生産性を測定するこれまでの試みの欠陥を克服することを目的としています。これらの「開発者の生産性に関する神話と誤解」には次のものが含まれます。
- 生産性は開発者の活動にかかっています。
- 生産性は個人のパフォーマンスのみに関係します。
- 1つの生産性指標ですべてがわかります。
- 生産性の測定は管理者にとってのみ有用です。
- 生産性はエンジニアリング システムと開発者ツールにのみ関係します。
こうした誤解に対抗するために、SPACE フレームワークは、開発者の生産性に関する幅広い研究に基づいて、「はるかに大きな空間で生産性について合理的に考える方法を提供します」。
開発者の生産性に関する SPACE フレームワークの次元
満足感と幸福感
「満足度とは、開発者が仕事、チーム、ツール、文化にどれだけ充実感を感じているのかということです。幸福とは、開発者がどれだけ健康で幸せであるか、そして仕事がそれにどれだけ影響を与えているかということです。」
研究によると、生産性と満足度は相関関係にあることがわかっています。満足度と幸福度を測定すると、生産性を理解するのに役立ち、燃え尽き症候群や生産性の低下を示す先行指標として機能する可能性があります。
満足度と幸福感は、多くの場合、調査によって最もよく測定できます。
メトリックの例:
- 従業員満足度(eNPSとチームヘルスチェック)
- 投資残高(KTLO額)
- 燃え尽き症候群とエンゲージメント
#パフォーマンス
「パフォーマンスはシステムまたはプロセスの結果です。」
ソフトウェア エンジニアリングのパフォーマンスを定量化するのは難しい場合があります。個々の作業をビジネス成果に結び付けるのは、多くの場合困難です。より多くのコードをより速く作成しても、より高品質のコードが作成されるとは限りません。高品質のコードが顧客に価値をもたらすとは限りません。顧客が好む機能が必ずしも良いビジネス成果を生み出すとは限りません。
これらの課題のため、ソフトウェア エンジニアリングのパフォーマンスは、出力ではなく成果として評価するのが最適です。
メトリックの例:
- 変更失敗率(DORA)
- 投資残高(新しいものを建設する金額)
- 顧客満足度(NPS)
- 信頼性
活動
「アクティビティとは 、作業の実行中に完了したアクションまたは出力の数です。」これには、設計ドキュメントなどの出力や、インシデント緩和などのアクションが含まれます。
開発者のアクティビティは、正しく測定されれば、開発者の生産性に関する貴重な洞察を提供できますが、得られる情報は限られています。実際には、開発者のアクティビティの多くは扱いにくいため (チーム会議への出席や他のチーム メンバーの支援など)、開発者のアクティビティを包括的に測定することは不可能です。
したがって、アクティビティ メトリックを単独で使用することは絶対にせず、常に他のディメンションのメトリックとバランスをとる必要があります。
メトリックの例:
- 完了した問題
- プルリクエストがレビューされ、マージされました
- 展開頻度 ( DORA )
コミュニケーションとコラボレーション
「コミュニケーションとコラボレーションとは、人々やチームがどのようにコミュニケーションし、協力し合うかを表します。」
ソフトウェア開発には、個人とチーム間の広範かつ効果的なコミュニケーションとコラボレーションが必要です。効果的なチームは、他の人の作業に対する高い透明性と認識に依存し、全員が必要な情報にアクセスできるようにします。
良好なコミュニケーションとコラボレーションはチームレベルおよびシステムレベルの生産性を向上させますが、個人の生産性と矛盾することがよくあります。他の人を助けると、個々の開発者がフロー状態に入る能力が制限され、モチベーションと満足度が低下する可能性があります。
コミュニケーションとコラボレーションを直接測定することは、多くの目に見えない作業が含まれるため複雑です。以下のメトリックの例は、コミュニケーションとコラボレーションを測定するためのプロキシとして使用できます。
メトリックの例:
- 同じ機能に取り組んでいる人の数
- チームの健康診断(サイロとコミュニケーション)
- プルリクエストのレビュー時間
効率と流れ
「効率性と フローとは、個人またはシステムを通じて、中断や遅延を最小限に抑えて作業を完了したり、作業を進めたりする能力を指します。」
個々の開発者にとって、生産性のこの側面は、「流れに乗る」という話に反映されます。チームレベルおよびシステムレベルでは、効率性はアイデアを最初から最終顧客に届けるために必要な手順に関係します。
効率とフローの改善による体系的な効果は、多くの場合、エンジニアリングの生産性に大きな影響を与えます。SPACE 以外では、この側面は Donald G. Reinertsen 著の画期的な書籍「 Principles of Product Development Flow」で詳しく説明されています。
ソフトウェア開発フローから収集されたメトリック (例: DORA 変更リードタイム) と調査データの組み合わせにより、効率とフローを測定できます。
メトリックの例:
- チームの健康診断(サイロとコミュニケーション)
- 流れを維持し、仕事を完了する能力があると思われる
- 投資残高(生産性関連作業量)
- リードタイムと回復時間の変更(DORA)
- ストーリー/発行サイクル時間
SPACEフレームワークの組織レベル
組織内で何が起こっているかをより完全に把握するために、SPACE フレームワークでは、次の 3 つの組織レベルごとに個別の指標を選択することを推奨しています。
- 個人
- チームまたはグループ: 一緒に働く人々。
- システム: 設計から生産までの組織の開発パイプラインなど、システムを介したエンドツーエンドの作業。