はじめに
業務で生産性を上げろとよく言われる。
しかし、生産性とは何か?生産性を測定し、その生産性がビジネス目標にどう貢献しているかを明らかにする。
SPACEフレームワークとは
開発者の生産性を計測するためのフレームワークで、個人・チーム・システムの3つにおいて、以下の5つのカテゴリで測定する。
- Satisfaction & Well-being
- Performance
- Activity
- Communication & Collaboration
- Efficiency & Flow
生産性の5つの間違った認識
- 生産性はdeveloperのアクティビティだけでは測れない
- 生産性は個人のパフォーマンスに限るものではない
- 一つの指標だけで全てを語るのは不可能
- 生産性はマネージャーだけみるものではない
- 生産性はエンジニアリングシステムと開発者ツールにのみ関係する
Satisfaction & Well-being
満足度と生産性は相関関係にある。満足度が生産性の先行指標となる。
Satisfaction(満足度)
開発者がツール、仕事、チーム、カルチャーに対して、いかに満足しているか。
Well-being(幸福度)
いかに健康で幸せであるか。
仕事が健康にどのような影響を与えているか。
メトリクスの例
一般的にアンケートを用いて定性的に測定される。
- 従業員満足度(ES)
- eNPS
- チームの健康チェック
- KTLOの量
- バーンアウトとワークエンゲージメント
Performance
パフォーマンス。
パフォーマンスを最も単純化すると、開発者が書いたコードは、想定されたことを確実に実行した度合いとなる。
一般的にソフトウェアはチームで開発されているので、チームのパフォーマンスが求められる。チームのパフォーマンスに対し、個人のパフォーマンスは定量化が難しい。
メトリクスの例
- 顧客満足度(CS)
- NPS
- 信頼性
- 変更失敗率
- サービスヘルスの継続率
- 機能の使用状況
- コスト削減率
Activity
業務で完了したアクションまたはアウトプットの数。
わりと容易に定性化できる。
メトリクスの例
- 完了したチケット数
- 導入頻度
- PR数
- コミット、レビュー数
- ドキュメント数
- インシデント数、および重大度に基づく分布
Communication & Collaboration
いかにチームがコミュニケーション、情報共有できているか。
メトリクスの例
- 同じ機能に取り組んでいる人の数
- チームのヘルスチェック(サイロ化とコミュニケーション)
- プルリクエストのレビュー時間
- 共有インデックス
- コラボレーションマップ
Efficiency & Flow
個別に、またはシステムを通じて、中断や遅延を最小限に抑えて作業を完了、進行させる能力。
メトリクスの例
- チームのヘルスチェック(サイロ化とコミュニケーション)
- 流れを維持して仕事を完了する能力の認識
- リードタイムと復旧までの時間
- ストーリー/問題のサイクルタイム
- チーム間でのハンドオフの数
- 流れを維持して仕事を完了する能力
- 付加価値時間
- 待ち時間
SPACEフレームワークの組織レベル
- 個人
- チームまたはグループ(一緒に働く人々)
- システム: システムを通じたエンドツーエンドの作業 (例: 設計から実稼働までの組織の開発パイプライン)
SPACE フレームワークの活用方法のベストプラクティス
- 少なくとも 3 つのカテゴリからの指標を含める
- チームレベルの指標から始める
- エンジニアの参加に投資する
- 集計を超えてパターンを検出し、バイアスを削減する
- 少なくとも一つの評価指標に、アンケートなどの定量的な指標を含める
- 計測項目を絞る(全てのカテゴリを含む必要はない)
The SPACE of Developer Productivityでのメトリクス例
最後に
SPACE フレームワークは、あくまでフレームワークである。
なので、測定すべき指標を正確に示しているわけではないため、そのまま採用することは推奨されていない。
自分達の組織、チームやコンテキストに合わせて変更しよう。
また、Four Keysなどの他のフレームワークと組み合わせることによって、より改善点が明らかになり、生産性を上げることが可能になる。