ブルックスの法則
概要
「遅れているソフトウェアプロジェクトに人員を投入すると、さらに遅れる」
フレデリック・ブルックス(Frederick Brooks)が『人月の神話』(1975年)で提唱した法則。ソフトウェア開発における「人月」は神話であり、人と時間は交換可能ではないことを示す。
この法則が成り立つ主な理由
新規参入者のオンボーディング
コミュニケーションコストの増加:
タスクの分解可能性の限界
なぜ人が増えても速くならないのか
ソフトウェア開発は、単なるタスクの集合ではなく、相互依存する知的活動のネットワーク
速度を上げたいなら、人員増ではなく、依存関係の削減・並列化可能領域の拡大・コミュニケーション経路の最適化に注力せよ
1. 並列処理の限界
タスクには依存関係があり、すべて同時進行は不可能
並列化できない部分(クリティカルパス)は人数を何倍にしても時間短縮されない
2. コミュニケーションコストの指数的増加
n人のチームでの通信経路:n(n-1)/2
4人なら6経路、8人なら28経路、16人なら120経路
人数を倍にすると、コミュニケーションコストは約4倍
3. 新規参入者による短期的減速
オンボーディングで既存メンバーの時間を取られる
知識共有、コードベース理解、ドメイン知識習得のコスト
短期間では投入=加速ではなく投入=減速
4. 認識ズレの増幅
人数増加 → 設計・仕様の認識の揺らぎが蓄積
後工程での再作業、手戻りが発生
表面的な進捗が実質ゼロやマイナスになる現象
5. 構造としての組織の複雑性が限界を決める
組織も情報システムとしてエントロピー(無秩序度)が自然増大
人数増加 = エントロピー源の増加
秩序維持により多くのエネルギーが必要