ソフトウェア開発はなぜ難しいのか? – 『プログラマーのジレンマ』

プログラマーのジレンマ 夢と現実の狭間
スコット・ローゼンバーグ
日経BP社
2009-05-21

本書は、あるプロジェクトの「失敗」を描いたドキュメンタリー。そのプロジェクトとは、チャンドラー(Chandler)。あらゆる情報を、ユーザーの好きなように分類・整理・共有できるようにすることを目指したオープンソース・ソフトウェア。

ソフトウェア開発プロジェクトが失敗する原因としては、「人材」「資金」「納期」「無茶な仕様変更」などが挙げられる。しかし、チャンドラーには、歴戦の優秀な開発者と、気前のよいオーナーがあり、商業ソフトウェアではないので、納期に縛られることもない。「仕様変更」についても、実装が困難な方へ舵を切ることはほとんどなかった。

にも関わらず、チャンドラーは、遅れに遅れた。2001年から開発が開始され、当初は2年程度でプレビュー版の完成を予定していた。しかし、一向に開発は進まず、ユーザーが使えるプロダクトは出てこない。

きわめて高い柔軟性を実現するため、設計は困難を極めた。「データはどのように保管されるのか」という問題を解決するだけでも、数年の時間を擁している。

ストレージの問題が解決しても、インターフェースの問題がある。インターフェースのプログラミングには独特の難しさがあり、一見するとささいなバグが、解決はとんでもなく困難だったりする。また、パフォーマンスの問題もある。

しかし、こういった「実装の困難さ」以上に、チャンドラーを泥沼にはまり込ませたのは、「高すぎる理想」だったように思う。優秀な人材、潤沢な資金、納期に縛られることのない環境。そういった理想的な環境が揃っているがゆえに、高い理想と、実際のプロダクトの間の溝をなかなか埋められなかったのではないか。

チャンドラーは、2008年の8月に1.0がリリースされた。以降、チャンドラープロジェクトからのリリースは止まってしまった。

「あらゆる情報を放り込んで、好きに整理できる」ソフトウェアとしては、現代ではEvernoteが真っ先に浮かぶ。また、共有機能はGoogle Appsを想起させる。ただ、こういったWebアプリはいずれも、中央のサーバによって管理されている。

こういった中央集権的アプローチは、効率性は高いが、ユーザーとしては若干の不安がある。チャンドラーが夢見た「P2Pによる情報共有ツール」というビジョンは、今もまだ色あせていないように思える。

ちなみに、本書のほとんどの章はチャンドラーのドキュメンタリーだが、2章だけ、チャンドラーを離れて、一般的なソフトウェア開発について論じている。これらの章では、プロジェクトの開発手法の諸派の考え方(ウォーターフォールかアジャイルか)や、現代のソフトウェアに対する根本的な批判などが紹介されていて、興味深かった。

コメントを残す