クラッシングは意味がない?ブルックスの法則と要因の追加

クラッシングは意味があるのか?

クラッシングとはプロジェクトのクリティカルパス上の工程に追加の資源(ヒト、モノ、カネ)を投入して、予定していたスケジュールより短い工期で完了させる手法です。

スケジュール短縮の方法として有名なクラッシングですが、本当に有効に機能する手法なのでしょうか。
今回はクラッシングの手法と、それと相反するブルックスの法則について考えていきます。

クラッシングを妨害するブルックスの法則

ブルックスの法則とはスケジュールに遅延を引き起こしているソフトウェア開発に要員を追加しても、スケジュールはますます遅延するというものです。
そもそも人を追加しても、その作業が分担できる作業であるとは限らず、また分担できたとしても、新規の要因の教育や、増えた要因の分だけコミュニケーションが難しくなるため、スケジュールは改善されないというのがブルックスの法則です。

クラッシング vs ブルックスの法則

クラッシングというのは、人などの資源を追加してスケジュールを改善しようという手法でありますが、一方でブルックスの法則はスケジュールの遅延に要員を追加しても逆効果であるとしています。
ある意味、矛盾した状態のように見えますが、結局のところ要員の追加は効果があるのでしょうか。
ここからは人の追加がスケジュールを改善できる場合を紹介しています。

スケジュール遅延が発生する前にクラッシングする

ブルックスの法則にとらわれずにクラッシングする最も有効な方法としては、スケジュール遅延が発生する前にクラッシングを行い、スケジュールの建て直しをすることです。
ブルックスの法則はあくまでスケジュール遅延が発生している状況を想定しているため、スケジュール遅延が発生する前の段階で対応できれば、クラッシングを有効に機能させることができます。
この時に重要なのは、ブルックスの法則でも懸念されている要因の増加に伴う教育・コミュニケーションの時間の増加を考慮し、作業員だけでなく、管理者などが必要ないかを確認することです。
例えばプログラマーを追加するだけでなく、彼らを統率するリーダーも併せて追加するなど、作業員が増えることによって増加する教育・コミュニケーションの労力までもカバーしておくことが大切です。

教育が不要なくらい技術力がある要因を投入する

ブルックスの法則を発動させずにクラッシングを行う2つ目の方法は、教育が不要なくらい技術力のあるメンバーをプロジェクトに迎えることです。
そのくらい技術力のある要因であれば、教育の時間だけでなく、必要以上のコミュニケーションの削減も期待できます。