ブルックスの法則
「遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせるだけである」という、ソフトウェア開発のプロジェクトマネジメントに関する法則である。これは1975年に出版された著書 "The Mythical Man-Month"(邦題:『人月の神話』)に登場した。
ブルックスによれば、この法則が成り立つ主な理由は以下の通りである。
新たに投入された開発者が生産性の向上に貢献するまでには、時間がかかる。
ソフトウェアプロジェクトは、複雑な作業である。また、新たにプロジェクトに参加した人は、仕事に取りかかる前に、まず開発の現状や設計の詳細などを理解しなければならない。つまり、新たに人員を追加するには、その人員を教育するために、リソースを割かなければならないのである。したがって、人員の増加がチームの生産性に与える効果は、短期的にはマイナスになる。また、プロジェクトに慣れない間はミスを犯しやすいので、新たなバグが挿入されることが多くなり、その結果、プロジェクトがさらに遅れる可能性もある。
人員の投下は、チーム内のコミュニケーションコストを増大させる。
プロジェクトを進めるうえで、プロジェクトチームは、協力して同じ課題に取り組む必要がある。しかし、これを実現するには、調整のためのコストがかかる。一般に、n人が協調して仕事を進めるためには、n(n-1)}n(n-1)のコミュニケーションチャンネルを調整する必要がある。したがって、プロジェクトの人員に対してコミュニケーションコストは、 n^{2}}n^{2}のオーダーで増加することになる。単純にいえば、開発メンバーを2倍に増やしたチームは、それに伴って4倍のコミュニケーションコストを負担するのである。
https://gyazo.com/9901834f75e67c61c8592c03fd82513a
タスクの分解可能性には限界がある。
ホテルの部屋の清掃のような分解可能性の高いタスクであれば、人員投入によってタスク全体の所要時間は短くなる(作業者同士の干渉が起きないかぎり)。しかし、分解可能性の低いタスクもある。1人の妊婦が9か月で赤ちゃんを出産できても、9人の妊婦が1ヶ月で赤ちゃんを出産することはできないのである。
困ってからじゃ遅いともいえる