ソフトウエア開発者は一般的に,次のような2つの認識を持っているものだ。「もしアプリケーションを最初から書き直せば,アプリケーションの既存問題のほとんどを解決できる。現状のコードを更新して問題を解決するよりも,一から書き直す方が労力は少なくてすむ」「Microsoft製品『XXX』の次期バージョンは,少なくとも最初のサービス・パックでバグが解消されるまでは,不安定に違いない」---こういった認識は,本当だろうか?

 1つ目の認識はよく「更地(Green Field)主義」と呼ばれる。アプリケーションを最初から作り直すのは,既存の建物を改装するのではなく,更地に建物を建設するようなものだからだ。更地主義の意見を最近,COMコードを.NETコードに書き直すことに関して,聞くことがあった。

 例えば先日,筆者が「いよいよCOMに取って代わる.NET」という記事で,COMコードを.NETコードに移行することに関連して「16ビットOSから32ビットOSへの移行を,楽しいことだと思っていた開発者はいない」と書いたところ,ある読者からこんな反論を頂いた。その読者は,「32ビットへの移行に不満を感じていたのは,コードを一から32ビットに書き直すことの利点を理解できない連中だった」と断言したのである。しかし,彼の信じる更地主義にもリスクが付きまとうことを,理解して頂きたい。そのリスクは,コンピュータの歴史が証明してくれている。

 コンピュータの歴史に詳しくない人のために,簡単な例を使って説明しよう。Webブラウザが普及し始めたころ,Netscapeは完全な先駆者でありマーケット・リーダーたった。その後,Netscapeは一からWebブラウザのコードを書き直すことにした。これは16ビットOSから32ビットOSへの移行の最終段階の出来事であり,彼らがリリースする次のバージョンのWebブラウザで,すべてのレガシー・コードが削除される計画になっていた。

 結論を先に言うと,その次期バージョン「Netscape 5.0」はリリースされず,その次の「Netscape 6.0」がリリースされたころには,Netscapeのマーケット・リーダーとしての地位は,過去のものになっていた。間違わないでもらいたいが,Netscapeはまだ存在する。だが正直な話,Netscape 8.0を使ったことのある人はどのくらいいるだろうか。

 この例は冒頭に挙げた,Microsoftのソフトウエアのバグに関する2番目の認識に関連している。Microsoftのことが嫌いで,同社製ソフトウエアに不満がある人でも,Microsoftが失敗から得た教訓は,積極的に学んだほうがよい。まず,Microsoftは(Netscapeと違って)ソフトウエアをきちんと出荷する方法を知っているし,よい製品を作り出す開発手法も知っている。それにもかかわらず,バグを作り出しているし,新しいバージョンで必要な機能を削ったりしている。あなたの会社がMicrosoftよりもうまくやれるとしたら,どうすればいいだろうか。

 何が言いたいかというと,アプリケーション開発者の多くが「最初から書き直す」ことを一番良いと信じていることを問題視しているのだ。最初からやり直せればもっとうまくできるだろうという考えが間違いであることは再三証明されてきた。間違わないでもらいたいが,ビジネスの状況や技術的な理由によって,アプリケーションを捨ててしまわなければならないこともある。しかし,その方がいいと思ったからといって,(既存の機能を書き換えるのではなく)アプリケーションを最初から書き直すのは,十中八九間違っている。

 開発者にとって,ソフトウエアの更新は最初から書くより大変だ。しかし,古いコードがどれほど汚くても,「動いている」という重要な事実を忘れてはならない。古いコードはデバッグされているし,多くの場合,あなたが予測できないような出来事に対応するパッチも当たっている。最初からコードを書き直すのは,めったにやらないほうがいい。今日の更地は,明日の底なし沼だ。完全に書き直した方が簡単に見えても,歴史はそれが間違いであることを証明している。Microsoftが.NETへの移行を助けるツールをいくつも組み込んだ理由を考えてもらいたい。だれもが最初からアプリケーションを書き直すことの危険性を理解しているから,Microsoftは移行ツールを出しているのだ。

 最後に,COMコードから.NETコードへの移行を進める上で,ある危険が迫っていることを指摘しておこう。Microsoftは,Windows Vistaの64ビット版でVisual Studio 2005を動作できるようにする必要がある。問題は,.NETアプリケーションではなく,開発ツールのVisual Studio 2005である。Microsoftの重役であるS. Somasegar氏がブログに書いた「Visual Studio 2005 SP1 Beta and Visual Studio support for Vista(Vistaに対するVisual Studio 2005 SP1 BetaとVisual Studioのサポート)」を読む限りでは,MicrosoftはWindows VistaでVisual Studio 2005を動作させることを,それほど簡単とは思っていないことがうかがえる。Microsoftは数カ月後に,Visual Studio 2005 Service Pack 1をリリースする予定だが,このSPで問題が解決されるかどうか,注意深く追いかける必要があるだろう。