闘うプログラマ
わたしが紹介するまでもなく、「 闘うプログラマー〈上〉」、「 闘うプログラマー〈下〉」はビル・ゲイツの野望を実現すべく雇われた「伝説のプログラマ」デイブ・カトラーのNT開発物語である。
わたしはデイブ・カトラーに会ったことはないがDEC時代にいろいろ伝説は聞いていた。一番、有名な都市伝説は、Windows NT (WNT)というのはVMS (DECのベストセラーマシンVAXのOS)を一文字づつずらした名前にしたというものである。誰かがデイブ・カトラーにその真偽を問うメールをしたところ、今ごろ気がついたのかよ、という返信が来たという。90年代初頭にそのようなメールがでまわっていたような記憶がある。
それはともかく鬼軍曹のような風貌のプロジェクトリーダ率いるNT開発物語はザカリーの筆力もありぐいぐいと人を引きつける。
それは栄光と挫折の物語である。20世紀最後の商用OS開発物語と言ってもいい。このような大規模な商用OS開発はあとにも先にもマイクロソフトでの開発が最後になるであろう。専用OSや小規模なそれの開発は今後も続くであろうが、商用でクローズな世界での大規模新規OS開発は今後は見られないであろう。
OSS(オープンソースソフトウェア)がOSの作り方を大聖堂(伽藍型)からバザール型へ変えてしまった。マイクロソフトは今後も大聖堂型でソフトウェアを作り続けるだろうが、NT開発物語のような社運をかけたOSの新規からの開発はもやはないのではないだろうか。
90年代の初頭というのは、そのような時代であった。商用ソフトウェアベンダは自社の基幹ソフトウェアを社運を掛けて開発していたのである。一か八かで、掛金全部をその製品の開発に掛けた。
この本を読んだ当時わたしはDECからOracleに移ったばかりで、本物のプログラマ達がおりなす壮大な20世紀のドラマに心を踊らされたものである。
そしてそのような大規模ソフトウェア開発というのはマイクロソフトをはじめとする米国のソフトウェア企業にしかなかった。米国OracleからOracle 8の開発に参加しないかと声をかけられたのは正にそのころである。Oracle 8の開発というのは当時の米国Oracleにとっては一か八かの大勝負のプロジェクトであり、そこには間違いなく人を引きつける何かがあった。
わたしは一兵卒としてその開発に参加した。正直言って36歳での参加というのは若くないし、はたして使いものになるのか不安に大きかったが、このまま日本という地域で現場を見ないまま終るのか(?)、それともリスクも含めて一切合切腹をくくってチャレンジするのか、その選択でわたしは後者を選んだ。
朝から晩までコードを書いてテストをしてデバッグをする。それを延々日々繰り返す。プログラマとして充実した日々を過したように思う。
いつの日か「闘うプログラマ」の現場に立合いたいと思っていたのがOracleで実現した。自分なりにいつの日かにそれを総括してみたいと思っていたのだが、オープンソースに出会い、大規模ソフトウェアの開発は社内ではなく社外文字通り地球規模でおこなわれつつあるという予感を感じたのである。
21世紀はマイクロソフトやOracleに勤務しなくても大規模ソフトウェア開発に参加できる。素晴しい機会に満ちているではないか、そう思ったのである。オープンソースの奇跡と言ってもいい。
下記は1998年8月に記したシリコンバレー日記である。
----------------------------------
1998年8月5日(シリコンバレー日記より)
大聖堂とバザール
今年は本当にいろいろ日記を書いている.今日までに30数本書いている.近年まれにみる快挙である.それだけネタに困らなかったのかもしれない.今年の頭に日記を復活した時,わたしの中には,1997年にわたしが何をしたかを忘れないうちに記そうという気持ちがあった.1997年のことでその予告をしたのだけれど昨今昔のネタはほとんどでてこない.それもこれもNetscapeの決断である.ソースコードの公開である.Mozillaで,http://www.mozilla.org/を紹介しつつ自分の期待を語った.
わたしは年頭になにを語りたかったのか?それを今から思い返してみるとこんなことだ.わたしはある大規模ソフトウェアプロジェクトに参加した.それも設計の初期の段階から,実装,テスト,リリースまでプロジェクトの一員として日々一喜一憂しながら関わった.そしてそのプロジェクトの成果は出荷された.それを自分なりに消化した形で総括したかった.
多くの人が関わるプロジェクトである.そこには人間のドラマがあるはづである.何かして,それはうまく行く場合もあるが失敗する場合もあるのだか,そこからなにがしかを学んでいく過程を記録に残しておきたかった.それは一つは自分のプログラマとしての成長の記録になるはづだし,内側からみたソフトウェアプロジェクトの貴重な資料にもなりえるのではないだろうかという思いがあった.
一人のプログラマがシリコンバレーに来て,そこでプログラマとして働くということはどういう事か?それを明らかにしたかったのである.それもできるだけ平易な形で.
ブルックスはIBMのOS360の開発の経験から「ソフトウェア開発の神話」という名著を記した.キダーはデータジェネラルのミニコン開発を「超マシン誕生―コンピュータ野郎たちの540日 (1982年)」で克明に記述した.ザカリーは「闘うプログラマー」でマイクロソフトのNT開発部隊の生態を明らかにした.失敗と苦悩とそして栄光の物語である.
誰でも自分の行動を正当化する.過去は美化される.思い出は時として理想化され,記憶は風化する.
プログラマとしてのキャリアを続けていく以上,前のプロジェクトから何を学んだかを記すことは,記憶を風化する前にしなければいけない自分自身への宿題でもあったわけだ.
その作業が遅々として進まないうちにもっと自分にとって面白い事件が発生した.それが今回のモジラの解剖である.これは仕事ではない.単なる趣味の延長である.しかしながらその趣味は自分のプロフェッショナルな領域とほとんど重なる.プログラムの開発スタイルも開発されるものも全く異なるにもかかわらずプログラムを作るという個人的な作業の上では共通点も多い.すくなくとも自分の心の中でプロジェクトを楽しんでいるという意味では会社でのプロジェクトもモジラも同じスタンスにある.そして年頭に大規模開発の現場の話を誰かに伝えたいと思ったようにわたしは今起っているオープンソースの流れを誰かに伝えたくて伝えたくてしょうがなくなってきたのだ.
今年Netscapeがソースコードを公開するにあたっていくつかのエッセイを紹介していた.そのうちの一つがEric RaymondのThe Cathedral and the Bazaar(大聖堂とバザール)である.これは山形浩生によって日本語に翻訳されている. 伽藍とバザール を参照.
その論文には口上として「Netscapeがソースコード公開をするにいたって理論的な根拠となった論文」とか書かれていたのだけれど,わたしは,いくらなんでもそんなことはあるまいと思った.つまり,恥ずかしながら「わたしのあくまでの想像ですが,ネットスケープのお偉方が,件の論文を見て,おお,この論文いい事書いてあるから,いっちょこのモデルでやってみよー,そーだ,そーだ,とかいう事を取締会議かなんかでやったかというとたぶんそんなことはありえないんじゃないかなあ.そんな論文があろうがなかろうが,それと独立にネットスケープは決断したわけですね.その仮定が正しいとすると,理論的根拠というのはいいすぎなのではと思ったです.少なくとも謝辞の中にネットスケープの人の名前は一人もでていないし,直接的な関連はないのではないでしょうか?」などと能天気に記していたのである.ところがである.当該論文のエピローグにその後の話が載っていて,Netscapeの取締役がEricにメールを出し,2月4日の戦略会議に招待されたとかいうエピローグまで紹介されているのである.わたしはまるっきり間違っていた.赤っ恥をかいたのである.
Ericは,従来型のソフトウェア開発の方法論を大聖堂(Cathedral)アプローチと呼んでいるのだが,大聖堂を組み立てるように注意深く管理されたアプローチと,バザールのような混沌としたスタイルを対比している.そして明らかなことにわたしは大聖堂のプログラマであった.自分自身はGNUの事やLinuxに一定の理解を示しつつもバザールがすぐそこまで来ているということに全く気がついていなかったのだ.
大聖堂には大聖堂の掟やスタイルがある.その開発はなかなか面白い.ものを作ることは人間を根源的に満たすなにかがあるのかもしれない.そんなことを記したかったのかもしれない.
それがモジラの登場でいきなりバザールにぶっこまれて迷子になりそうになりながら,そのバザールの面白さダイナミックさに一気に虜になってしまったのである.そして,奇妙なことに自分の中では矛盾なく大聖堂もバザールも同時に楽しんでいるのである.
なかなか不思議な時代感覚である.
----------------------------------
http://web.archive.org/web/19990424133227/www.best.com/~yoshioka/d/98/i980805.html (文字コードをシフトJISにして読んでください)




コメント