May 2, 2004

ソフトウェア開発を語るためのメタファ

先日のエントリで、プロジェクトを野球に例えた件について、「例えが悪い」というご指摘をいくつか頂いている。まぁ、その件については、当事者同士では通じているので構わないんだが、昔からソフトウェア開発を語る上でいろんなメタファが使われてきたが僕はどれもしっくり来ない。今回はそれについて少し考えてみたい。
ソフトウェア工学という面で見る場合、よく出てくるのは製造業のメタファであり、実際の開発プロジェクトのマネジメントを議論する上でも、あるいは実際のソフトウェア開発プロジェクトを考える上でも必ず出てくるものの1つだ。つまり、作るべきものをはっきりさせ(分析、要件定義)、それをどのように作るかを考え(設計)、実際に作る(製造)、というあれ。製造業をメタファとすることの弊害等については、以前にも触れたのでここでは触れない。また、クリストファーアレクサンダーのパタンランゲージに代表される建築の世界にも例えられることが多いがこれも僕にはしっくりこない。
以前に、ドラマ、「白い巨塔」を見てるときに、カンファレンスの中で財前教授が言った「ナースは黙ってろ」という言葉を聞いてはっとした。
ソフトウェアの世界は個人の資質等によって生産性には大きく違いがでる、とはよく言われる。優秀なプログラマとそうでないプログラマでは、最大*倍(この数字はいろいろ説あり。仮に10倍としておこう)の開きがある。だから、優秀なプログラマを2倍の給料で雇えば効率がいい、と。じゃ、そもそもなんでそれだけの開きが生じるのか? これはソフトウェアに特有のものなのだろうか、と。 で、先ほどの「ナースは黙ってろ」という言葉なのだが、僕の昔の一時的な入院経験とか医療ドラマ(「振り返れば奴がいる」が好きだったりする)といった断片的な知識でしかないのを最初にお断りしておく。
医療の現場では、医者、ナース、アテンダント、病院事務、薬剤師、放射線技師等いろんな方が従事しておられる。それぞれが役割を持ち、それぞれに応じた専門教育がなされている。翻ってソフトウェアの世界はどうだろう? 実は、先ほどのカンファレンスを例に言うと、医者とナース、アテンダント、病院事務局長、薬剤師、放射線技師と言った経験も立場もバックグランドも全然異なる人々が一同に会し、あるクランケの病状と治療法を議論している、というのがソフトウェアの世界で実際に行われていることなのではないだろうか?つまり、幸か不幸かこれまでソフトウェア業界では、人月という言葉にあるように、人間の頭数と作業にかかる時間で規模等を測ってきた(いる)。そこでは頭数が重要であり、資質とか前提知識は問われない。また日曜プログラマが存在するように、素人と玄人の区別がつきにくいのも特徴だ(日曜外科医なんていない。。。)。 でも、冷静に考えると、ナースがいくら経験を積んでも医師にはなれない(もちろん、医師以上に、クランケの容体に敏感な洞察力のあるナースは実際にいらっしゃるであろう。しかし、ナースにメスを持たせることはないはずだ。そういう教育をされていないから。また、日曜大工が趣味という人がいくら経験を積もうと、あるいは土木作業員の経験をいくら積んでも例えば超高層ビルや巨大橋梁の設計に携わるようになるか、というとこれもありえないだろう。これもそういう教育を受けていないからだ。
ところが、ソフトウェアの世界ってこれと似たようなことを実際にやっちゃってる、ような気がしているのだが、これって僕の周りだけ?まぁ、病院の医療事務局長が、ドクターのオペ技術を評価しないとは思うが、たぶん、ソフトウェアの世界では似たようなことやってるよなぁ。でも、誰が言ったかは知らないが、「ソフトウェアとコーヒーは、素人が作るもの」とも言うし。


Posted by money at May 2, 2004 8:01 PM | TrackBack
Similarly Feeds
Comments

こんにちは.
外科手術チームというメタファは「人月の神話」で取り上げられていますね.原書の初版が出版されてから間もなく30年ですが,広く受け入れられるような兆候はありませんから,どこかに無理があるのでしょう.

Posted by: koichik at May 2, 2004 10:26 PM
Post a comment









Remember personal info?






Powerd by FC2.com
since 2/Feb/2004