Brooksの法則は永遠か?
あらかじめお断り。このBlogは、私の個人的な見解に基づいて書いているものです。これは、全エントリにわたって適用されます。ただ、一応、このエントリは、万が一にも誤解を招くとまずいので、お断りを入れておきます。
で、本題。栗原さんのブログを拝見しまして、ちょっと書いておこうかと思いました。1970年ぐらいの話が現在まで通用してしまうというのは非常に笑えないところがあるのですが、実のところ、ソフトウェア工学というのは、そんなに古い話が現在のITサービスの世界でも通用してしまうところに最大の問題があるのだといえます。
Brooksの法則、いわゆるプログラマの時間が代替不可能ということに起因する、遅れているソフトウェア開発に人を投入しても何の解決にもならないという非常に有名な法則で、栗原さんも「人月の神話」の本を紹介されています。
この法則は経験則として私も全くもって正しいと思います。しかし、ソフトウェア工学も決してそれに立ち止まっているわけではないという例として、あえて、ここでは、このページを挙げましょう。
私の個人的な意見ですが、ここ10年ぐらいで、ソフトウェア工学に最大のインパクトを与えている出来事は、オープンソースムーブメントとソフトウェアのサービス化だと思います。(ざんねんながら、これもアカデミックな研究の世界からの貢献とは言いがたいところがありますね...。)
言ってみれば再利用の利く、そこそこ高品質なソフトウェアやサービスが、誰にでも使える形で供給されるようになったわけです。以前は、そういったソフトウェアやサービスを使うためにある一定以上のコストをかける必要があったのが、多くの場合低いコスト(もちろん0ではないし、必ずしも低いともいえない)で利用できるようになって来ました。
この結果、一般のITサービスのシステムの開発に対しても、かなりインパクトを与えるようになってきています。ちょっと裏を見た言い方をするならば、賢いプログラマをお金をかけずに使うことが出来る条件が整いつつあるわけで、コストをかけずにシステムを構築するならば、こういったテクノロジをうまく使わない手は無いという、新しいゲームのルールが生まれてきているわけです。
Brooksの法則は、必ずしも永遠ではないと、あえて言ってみましょう(私も完全に信じ込めるほど楽観的ではないのですが)。逆に言うと、いつまでもBrooksの法則に甘んじていては、競争力を保てなくなる日が近づいていると考えています。
もちろん、問題点はまだたくさんあります。こういったソフトウェアやサービスは、ライフサイクルから見ても、従来までのエンタープライズシステムとは大きく異った形式をとります。その結果、エンタープライズの世界では、保守の問題から、このような新しい技術を受け入れられないということがしばしばおきています。オープンソースソフトウェア、Web2.0, SaaSのようなシステムは非常に短いライフサイクルになることが多いのですが、エンタープライズの世界では、長期間にわたってシステムを保守し続ける必要があるからです。
その結果、最近、ソフトウェアのライフサイクル管理に大きな変動が起きているように思えます。非常に長いライフサイクルと、非常に短いライフサイクルの双方を管理する技術が、非常に重要になってきているようです。長くなってきているのでここでいったん切ります。つづきはいずれ。