December 27, 2004

自己組織化するアプリケーション(8)

今までの議論から何が見えてきたか整理すると、つまりこう言うことです。

私たちの記号情報で溢れかえる環境の中に、アプリケーションが存在していて、更にこのアプリケーションのコンポーネントを産み出す開発者と言うコンポーネントも存在しています。これらのコンポーネント間の干渉は、今までは、開発者のコンポーネントからアプリケーションと言うコンポーネントへの一方通行でした。これが、開発環境と動作環境が同じ環境になることで、アプリケーションから開発者へと言うフィードバックが働くようになり、この結果、アプリケーション自体の自己組織化が起こり始めたと言うことです。

アプリケーションから開発者へのフィードバックとは、具体的に何を指しているのでしょうか。

それは、開発技術自体が、アプリケーションのコンポーネント環境と同じ次元のフレームワークと言う環境化が起こっていて、今までの「シツケ」の次元から「シカケ」の次元へと、開発者を取り巻く環境が大きく進化を遂げていることです。これにより、アプリケーションのコンポーネント自体が、開発技術のコンポーネント環境の中にカプセル化され、アプリケーションから開発者へのフィードバックが自動的に働くことになったのです。

このテーマの2回目で引用した、

 プロジェクトがはじまってから二年半になるが、コーディングにはOS/2を使っていた。そろそろ、NTを使って書くべきだ。複雑なプログラムの場合、早く各部を組み合わせるほど、バグを早く発見できる。複雑なソフトウェアを開発するときに、自分でつくったドッグフード(引用者注:プログラムのこと)を食べるのはめずらしいことではない。そうしなければ、オペレーティング・システムの各部を組み合わせたときに発生するバグは、発見できない。

(中略)

 ドッグフードへの切り替えは、三段階で実施された。第一段階ではグラフィック機能のないNTを使い、つぎにグラフィック機能をつけ、最後にネットワーク機能をくわえる。

この内容は、偶然的に、開発対象がOSと言う「アプリケーション」を、NTと言う開発技術のコンポーネント環境の中にカプセル化した事例であったと見なすことができます。

アジャイル開発やテスト駆動開発と言ったアプリケーションの開発技術の詳細を見ていけば、これらの技術の本質が、このアプリケーション自体をいかに開発環境の中にカプセル化するかの技術であることがよく分かります。しかしこれは、考えてみれば当然の流れです。開発技術自体がソフトウェアであり「アプリケーション」の一種ですから、アプリケーションがどんどん進化していく先には、こう言った開発環境をよりリアリティのあるものにする技術が次々と実現されて行くと言うことです。

以下次回。 KAI

投稿者 : December 27, 2004 01:37 PM | トラックバック