Software Engineering at Googleの6章を読んだ
の続編
7. Measuring Engineering Productivity
この章は生産性の計測について
・エンジニアを増やすと
人数は線形に増えるが、コミュニケーションコストは指数関数で増える
そのため、ビジネスの範囲を増やしたいがコミュニケーションがオーバーヘッドになってる
・生産性を上げた場合
人数を増やすのではなく個人の生産性をあげた場合
コミュニケーションコストは増えないのでコストを増やさずにビジネスの範囲を増やすことが可能
なので生産性は重要
・生産性を計測することが無駄なケース1
施策を計測し、悪い結果が出た場合にその施策をやめない場合
計測することは無駄
・生産性を計測することが無駄なケース2
あるツールの生産性が悪いから変えようと思った場合
長期的には価値があるか短期的にはスイッチングコストかかる
例えば、ベンチャー等で資金に限りがある場合スイッチングコストが払えない場合
計測することは無駄
・生産性の計測のフレームワーク
以下の3段階で計測する対象を選ぶ
計測できるものを計測するのではなく、何を知りたいか考えさせるフレームワーク
さらに何が計測できるかも判断できるようになってる
Goal:何を知りたいか
Signal:何を計測したいか(計測できない可能性がある)
metric:実際に計測するもの
・生産性を5つの指標で測る
コードの品質
エンジニアの注意:どのぐらい邪魔されるか。コンテキストスイッチ等
複雑度
速度
満足度
・定性評価も重要
もちろん定量で測られる方が良いが定性評価も重要
古いツールを使ったり
普通でないワークフローを使ったり
この理由は定量では取れない
生産性を上げないといけない、それが良く分かりました
さらに計測のフレームワークも面白かったです
まだまだ続くよ
関連記事:
- Software Engineering at Googleの4章を読んだ
- Software Engineering at Googleの3章を読んだ
- Software Engineering at Googleの9章を読んだ