ブルックスの法則

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ブルックスの法則( - ほうそく)はフレデリック・ブルックスによって提唱された、「遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせるだけだ」という、ソフトウェア開発プロジェクトマネジメントに関する法則である。これは1975年に出版された著書 "The Mythical Man-Month" (日本語版の書名は『人月の神話』)に登場した。ブルックスの法則は、しばしば「9人の妊婦を集めても、1ヶ月で赤ちゃんを出産することはできない」と説明される。ブルックスの法則がしばしば引用される一方で、『人月の神話』でブルックスの法則が述べられる直前の「ブルックスの法則を一言で述べると」という行が引用されることはめったにない。

根拠[編集]

ブルックスによれば、この法則が成り立つ主な理由は二つある。

  1. 新たに投入された開発者が生産性の向上に寄与するまでには時間がかかる。ソフトウェアプロジェクトは複雑な作業であり、新たにプロジェクトに参加した人は仕事に取りかかる前に、まず開発の現状や設計の詳細などを理解しなければならない。これを既存のチームメンバの側から見れば、新入りの教育にリソースを割かなければならないということであり、従って人員の増加がチームの生産性に与える効果は短期的にはマイナスになる。また、プロジェクトに慣れない間はミスを犯しやすいので、新たなバグの挿入によってプロジェクトが更に遅れる可能性もある。
  2. 人員の投下は、チーム内のコミュニケーションコストを増大させる。プロジェクトを進めるに当たっては、チームが協力して同じ課題に取り組む必要があるが、これを実現するには調整のためのコストがかかる。一般に、n人が協調して仕事を進めるためには、n(n-1)のコミュニケーションチャンネルを調整する必要があるので、結局、プロジェクトの人員に対してコミュニケーションコストはn^2のオーダーで増加することになる。単純にいえば、開発メンバーを二倍に増やしたチームは、それに伴って四倍のコミュニケーションコストを負担するのである。

解決策[編集]

ブルックスの法則で言及された問題を避けるためには、問題全体を小規模のグループが担当できるサイズに分け、より上位のチームがシステムの統合を引き受けるというものだ。ところがこれも問題を分ける過程が正確でなければチームの間の意思疎通コストが増えるようになり、問題をもっと大きくする場合があるという短所がある。

そのほか分野への適用[編集]

ブルックスの法則は果たそうとする仕事の素性によって、適用できるかどうかが変わる。 例えば遅延した建設計画で、ダンプトラックを追加投入した場合、計画は遅滞しない。 これは仕事の性質上、最小限の技術とトラックだけを持っていたら誰でも業務をすぐ処理できるし、トラック運転手たちどうしで議論をして仕事をする必要も少ないからだ。

一方ソフトウェア開発のようなデザイン作業では、新たに投入された人力はプロジェクトに対する基本的な方向や方法、すでに進行している作業に対する教育がなされて初めてプロジェクトに貢献できる。

参考文献[編集]