勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

似非プロジェクト科学(1)

ソフトウェア開発プロジェクトに限ったことではないかもしれないけれど、一見正しいようで不適切なことを求められることがある。疑似科学じゃないけれども、似非プロジェクト科学としていろいろ考えてみている。もちろん、単なる政治の問題なのかもしれないけれども。

ブルックスの法則、あるいは規模の不経済

この手の話で一番有名なのはブルックスの法則だろう。つまり、「遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせる」というものだ。

「9人の妊婦を集めても、1ヶ月で赤ちゃんを出産することはできない」
ブルックスの法則 - Wikipedia

この原因の一つにはメンバー間のコミュニケーションパスが、プロジェクトメンバーが増えるに従い爆発的に増加するからだ。ブルックスの法則は遅れているプロジェクトのリカバリに焦点を当てているけれども、遅れていないプロジェクトについても「規模の不経済」という問題がある。

ソフトウェア以外の分野では、通常、私たちは「規模の不経済」ではなく「規模の経済」について議論する。「規模の経済」とは、「より大きな製造プラントを構築すれば、単体あたりのコストは下がるだろう」といった類のものだ。つまり、規模の経済が意味することは、大きくなるほどその単体コストは小さくなるということである。
「規模の不経済」は、その逆だ。ソフトウェアでは、システムが大きくなるほど単体コストは大きくなる。もしもソフトウェアが規模の経済を示すなら、10万LOCのシステムは1万LOCのシステムの10倍より少ないコストになるはずだ。しかし、いつもこれは逆になる。
ソフトウェア見積り

こういった事はソフトウェア開発者からして見れば当然の事なのだけれども、じゃあ一般的に理解されているかというとそうではない。ソフトウェアを委託開発しようとした時に、発注者がソフトウェア開発に明るいとは限らないわけで、そこでいろいろと揉め事が発生する。

  • 参加人員数が増えるに従って効率が悪くなるのが、基本的な法則である。
    • 期間が同一の場合、規模が大きくなるにつれて作業効率は低下し、生産性は悪化する
    • 規模に従って生産性が向上するのは、作業人数が少数で固定され、規模に応じて期間が伸びる場合である
  • ソフトウェア開発において時々「ボリュームディスカウント」という言葉を聞くけど、作業量だけを考えれば「ボリュームプレミアム」がかかる事を忘れてはならない。もちろんビジネスなのだから規模に応じて値引きを行うのは別にかまわないのだけれども、圧縮されるのは利益だけで、作業量ではない。

ソフトウェア見積り

ソフトウェア見積り