エンジニアリング生産性の計測
『Google のソフトウェアエンジニアリング』第7章を読んで理解した内容を、自分の言葉で書き直したもの。 本文の引用ではない。節番号は原典を引き直すときの手がかり。
なぜ計測するのか (§7.1)
人を足してもビジネスの対象範囲は線形には伸びない。 組織が線形に大きくなるとコミュニケーションのコストは二次関数的に増える。 人員追加は範囲拡大に必要でも、そのオーバーヘッドは線形にスケールしない。
もう一方の道が、個人の生産性そのものを上げること。 これができれば、組織を膨らませずに対象範囲を広げられる。
そのためには順に、何がエンジニアを生産的にしているのかを理解し、 プロセスの非効率な箇所を特定し、特定した問題を直す必要がある。 ゴールは生産性を改善することだけでなく、その改善を効率よく行うこと。
計測する前に、計測する価値があるかを判断する (§7.2)
計測自体にコストがかかるので、必要以上に時間とリソースを注ぎ込まない。
判断の基準はシンプルで、その結果として何か行動が変わるか。
- 何の行動も取られないなら、計測する意味はない
- 利害関係者がそのデータを使わないなら、その計測プロジェクトは必ず失敗する
計測したあと (§7.8)
調査をやったら、どうすれば改善を続けられるかという推奨事項のリストを必ず用意する。 結果を出して終わりにしない。
注意点
データ駆動の意思決定は、決定を主観的でなく客観的にする方向に働くので、基本的には良い。 ただし人間的側面に関するデータの収集と分析には固有の難しさがあることは意識しておく。
関連
- スケールするリーダー — 何を測るかを決めるのはリーダーの仕事
- ソフトウェアエンジニアリングとは何か — 計測できないものの扱い