「ブルックスの法則」の版間の差分

削除された内容 追加された内容
m Category:エポニムを追加 (HotCat使用)
Verba (会話 | 投稿記録)
編集の要約なし
1行目:
'''ブルックスの法則'''( - ほうそく)は[[フレデリック・ブルックス]]によって提唱された、「遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせるだけだ(Adding manpower to a late software project makes it later.)」という、[[ソフトウェア開発]]の[[プロジェクトマネジメント]]に関する法則である。これは[[1975年]]に出版された著書 "The Mythical Man-Month" (日本語版の書名は『[[人月の神話]]』)に登場した。ブルックスの法則は、しばしば「9人の妊婦を集めても、1ヶ月で赤ちゃんを出産することはできない(Nine women can't make a baby in one month.)」と説明される。ブルックスの法則がしばしば引用される一方で、『人月の神話』でブルックスの法則が述べられる直前の「ブルックスの法則を一言で述べると」という行が引用されることはめったにない。
 
== 根拠 ==
ブルックスによれば、この法則が成り立つ主な理由は2つある。
 
# '''新たに投入された開発者が生産性の向上に寄与貢献するまでには時間がかかる。'''ソフトウェアプロジェクトは複雑な作業である。また、新たにプロジェクトに参加した人は仕事に取りかかる前に、まず開発の現状や設計の詳細などを理解しなければならない。これを既存のチームメンバの側から見ればつまり、新入りたに人員を追加するには、そ人員を教育するためリソースを割かなければならないということであり、従る。したがって人員の増加がチームの生産性に与える効果は短期的にはマイナスになる。また、プロジェクトに慣れない間はミスを犯しやすいので、新たなバグ挿入によってされることが多くなり、その結果、プロジェクトがさらに遅れる可能性もある。<br>
# '''人員の投下は、チーム内のコミュニケーションコストを増大させる。'''プロジェクトを進めるに当たってはうえでプロジェクトチームは、協力して同じ課題に取り組む必要がある。しかし、これを実現するには調整のためのコストがかかる。一般に、<math>n</math>人が協調して仕事を進めるためには、<math>n(n-1)</math>のコミュニケーションチャンネルを調整する必要があるので、結局。したがって、プロジェクトの人員に対してコミュニケーションコストは<math>n^2</math>のオーダーで増加することになる。単純にいえば、開発メンバーを2倍に増やしたチームは、それに伴って4倍のコミュニケーションコストを負担するのである。
 
== 解決策 ==
ブルックスの法則で言及されたが指摘している問題を避けるためには、問題プロジェクト全体を小規模のグループが担当できるサイズに分け、より上位のチームがシステムの統合を引き受けるというものだ必要があるしかし、ろがこれの解決策にも問題がる。なぜなら、プロジェクト適切にける過程が正確なければチームの間の意思疎通コストが増えるようになりので問題をもっとプロジェクトがさらに大きくする場合なってしまう可能性があるという短所がからである。
 
== そのほか分野への適用 ==
ブルックスの法則は果たそうとする仕事の素性によって、適用できるかどうかが変わる。
たとえば遅延した建設計画で、ダンプトラックを追加投入した場合、計画は遅滞しない。
これは仕事の性質上、最小限の技術とトラックだけを持っていたら誰でも業務をすぐ処理できるし、トラック運転手たちどうしで議論をして仕事をする必要も少ないからだ。
 
一方[[ソフトウェア開発]]のようなデザイン作業では、新たに投入された人プロジェクトに対する基本的な方向や方法、すでに進行している作業に対する教育がなされて初めてプロジェクトに貢献できる。
 
== 参考文献 ==