ここは跡地です
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ブルックスの法則
「遅れているソフトウエアプロジェクトに人員を追加すると、さらに遅れる」
n人のプログラマで作業を分割するコストはΟ(n)だが、意思疎通のコストがΟ(n^2)であることが根拠になっている。つまり、コミュニケーションのために割く時間が爆発的に増加するために、本来の仕事が進まなくなるということだ。
あー、確かにそうだろうなあと思ってた。半年前までは。
ブルックスは、OS/360の開発リーダーとしての経験を『人月の神話』で書いた。コンピューターなんか一般人にとってはS.F.だったころのOS開発だ。投入された追加要員にOS開発の経験があったとは考えにくい。多分、コミュニケーションの時間の多くは、意思疎通というよりも教育に費やされたのではないか。どこででもコンピュータが見られるようになった今でも、OS開発経験のあるプログラマを見つけてくることは容易ではないはずだ。
ソフトウエアではないけど、自動車の開発は今やブルックスが言うところの草刈りと同じだ。人員を投入すればするだけ、作業を押し進められる。派遣社員制度のおかげで必要数を必要な期間だけ集められる。CADスクールを卒業すると、すぐに現場に投入される。経験は必要ない。というのも、もう自動車という技術は枯れきっていて、どの車も、誰がやっても同じものしかできない。前の車と同じものを作ればいいのだから、教育は前の車を見せることで事足りるし、誰もが同一の目標をイメージできるので意思疎通にコストはかからない。一度でも経験がある者は、自分の割り当てか何処かさえ聞けば、座って作業を始めることができるだろう。多分、OSは無理だろうけど、何か誰でもやり方を知っているようなソフトウエア開発なら(そんなのがあるとして)ブルックスの法則は当てはまらないはずだ。

ところで、Wikipediaのブルックスの法則の項には、よくある誤解として少数の優れたプログラマならプロジェクトを早く終わらせることができるといっているわけではない、とある。そうなのだろうけど、その誤解が生じる余地があるのは、ブルックスの法則が開発対象が技術的に確立していない場合にのみ、成立するからではないか。
自動車のように前の車と同じものを作るだけなら、天才も凡人もない。しかし、何か新しい技術、黎明期にある製品は、先端<エッジ>をたんまり持っている誰かの手によって、一足飛びに次のフェーズに進められる。そのことは開発期間とは関係がないのだけど、傍から見てるものにとっては、あたかも時間が短縮したような印象を受けるだろう。また、そのような仕事は強く心に残ることも誤解の要因になりうるだろう。
自動車にだって黎明期はあった。次々投入される新しい技術に、どこかの天才の仕事にワクワクすることができたんだと思う。現代においては、鳴り物入りで登場した伝統の車が戦車並みに重いことに驚くくらいしか楽しみがない。きっと、やってる方だって楽しくないんだろう。
前に、人員と金にものを言わせて、フィレットのRは幾つがいいのか決めるのは、技術競争ではないと書いた。だけど、冷静に考えれば、それが技術的要素で、その上競争であるのなら、他にはやりようがない。それが枯れたものから何かを搾り出す唯一の方法だと思う。ただ、それは草刈りと同じ行為なので、つまらないだけだ。
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。