プログラマーのジレンマ〜夢と現実の狭間〜


プログラマーのジレンマ 夢と現実の狭間

プログラマーのジレンマ 夢と現実の狭間

本書はChandlerという野心的なオープンソースの情報管理アプリケーションを開発しようと試みて深みにはまり、もがき苦しみ、それでも前に進もうとしたプログラマ達を描いたノンフィクションです。いわゆるデスマーチ*1というやつですね。読んでみると分かりますが、本書で描かれている2001年に始まったChandlerの開発はかなり悲惨なもので、登場する開発者の絶望感やら焦燥感は「闘うプログラマ」で描かれているようなデスマーチを思い起こさせます。しかし、「闘うプログラマ」の題材となったWindows NTは最終的には完成し、一応ハッピーエンドを迎えましたが、Chandlerの方は現在進行形といいますか、まあ少なくともハッピーエンドではなく、読み物としてはかなり後味の悪い結末になっています。*2

無茶なスケジュール、頻繁に変わる開発方針、それに伴って繰り返されるアーキテクチャの変更・見直し、特に開発方針についてはなんと言いますか、読んでる途中で「いい加減しろ!」と言いたくなるぐらいぶれまくります。半分くらい読み進めるだけで「ああ、これはだめだ」というのが伝わってきます。


Chandlerが泥沼にはまってしまった一番の原因は開発者達が実のところ、Chandlerをどういうものにしたいのかもしくはどういうものにすればいいのか最後までと言わないまでもかなり長い間見極めることができなかったことに尽きると思います。本書に出てくる「P2PはやめてやっぱりWebDAVにしよう」とか「スタンドアロンGUIアプリじゃなくてやっぱりブラウザ上で実行できるようにしよう」とかいうような会話にその辺の事情が見え隠れしているように見えます。


Chandlerの開発は今でも続いています。ただ、バージョン1.0が出るまであまりに時間がかかり過ぎたこともあり、「失敗プロジェクト」と言って見放した人もいます。しかし、良いソフトウェアを作るには時間がかかるものです。


ちょっと例を挙げると、現在広く使われているバージョン管理システムの1つであるSubversionはバージョン1.0が出るまで4年かかりました。Windows NTは長い長い時間をかけて開発され、後に今でも世界中で使われているWindows 2000Windows XPの基礎となりました。Microsoftとのブラウザ戦争に敗れ、その後、オープンソースという言葉が生まれるきっかけを作ることになるNetscapeが立ち上げたMozillaプロジェクトも随分と長い間停滞していましたが、今ではMozilla Firefoxとして復活を遂げています。Chandlerもいつの日かそんなソフトになることがあるかもしれません。*3


最後に、本書でも引用されているクヌース先生の言葉を紹介してレビューを終えたいと思います。

ソフトウェアは難しい

*1:開発者が十分な休息を取る余裕があるという意味ではそう言えないかもしれませんが。

*2:本書の取材期間は2003年1月から2005年12月の間ですが、2008年になってようやくChandlerはバージョン1.0がリリースされました

*3:ただ、ここまで言っておいて話をぶちこわして申し訳ないのですが、Webアプリケーションでもそれなりのことができるようになってしまっている現代において、Chandlerのようなスタンドアロンの情報管理アプリケーションが台頭するというのはなかなか難しいのではないかと思います。