プリンシプルプログラミング プログラミング

【POP93】ブルックスの法則

はじめに

この記事は「プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則」を読んだ際に記した議事録です。

著作権の関係により、詳細には書きません。詳しい詳細を知りたい方はぜひ本書を読んでみてください。

プリンシプルオブプログラミングをPOPと訳します。

What : 後から要員を追加するのは「火に油」

今回はブルックスの法則についてです。

ソフトウェア開発のプロイジェクトにおいて、スケジュールが遅延している場合、その遅延を取り戻そうと要員を追加することはよくあることですが、後半に要員を追加するとさらなる遅延を招きます。

Why : 「人」と「月」は交換不可能だから

プロジェクトの工数は「人」と「月」で換算されます。例えば「12人月のプロジェクトを6ヶ月で」となると2人の人員を投入します。ここで大事なのが、「人」と「月」は交換不可能だということです。急いでるから6人で2ヶ月で作ってくれと言われても、単純計算で「2×6」「2×6」は同じ12ですが2人でする仕事と6人でする仕事は生産性の効率が大きく異なります。理由は下記となります。

  • 依存関係によるオーバーヘッドが発生

仕事を分割するとそれぞれの作業、担当部分間のコミュニケーションが必要になり、オーバーヘッドが発生します。ですので3倍の人数で開発したからといって単純に生産性が3倍になるわけではありません。人が増えれば増えるほどコミュニケーションコストが発生してしまいます。

  • 教育コスト

今米人を追加した際、「戦力になるまでの期間」教育が必要になります。その分だけ、時間と労力を消費することになります。長い目で見たときの人員追加は効果をもたらすかもしれませんが短期的ではプロジェクトのメンバーが指導する必要があるため、作業はおくれをとることになります。

How : リスケしよう

スケジュールに遅れをとってしまった場合、一番良い方法はリスケすることです。無理に間に合わそうと人員を増やしても火に油を注ぐ事になりかねないため、うまい方法とは言えません。ですのでユーザーと調整しながらソフトウェアの機能に一番目を向けてリスケし、段階的にリリースしましょう。

人間は妊娠してから十ヶ月程度で出産しますが、10人の妊婦を集めても一ヶ月で出産することはできません。 生産性は、単純な労働の足し算にはならないことがよくわかる喩えです。

終わりに

この記事ではプリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則の議事録を自分用に記しています。

この記事ではカバーしきれていない部分も多いので、是非本書を手にとって読んでみてください。

次回、「【POP94】コンウェイの法則」です。ぜひ、次の記事も読んでみてください。

  • この記事を書いた人
  • 最新記事

ミッチー

小中高と野球漬けの毎日 ▶︎ 大学時に自分が何もできないことに気づき、プログラミング学習開始 ▶︎ PCは疎かったがめげずに継続 ▶︎ 受託で案件を頂きながら、オーダースーツ事業に、通販事業にも参戦 ▶︎ 東証一部Web系自社開発企業にエンジニアとして内定。

-プリンシプルプログラミング, プログラミング

© 2022 オミチャンネル Powered by AFFINGER5