先日、なんとも不思議な本・江渡浩一郎『パターン、Wiki、XP──時を超えた創造の原則』(技術評論社)を読みました。「不思議な本」と書いたのは、ソフトウェア開発と建築という、一見すれば無関係のような両者がまじわる独特の領域を描いた本だからです。本書は、技術書のようで思想書のような、異質のジャンルを横断した面白さを放っていて、一気に読みすすめることができました。内容は、プログラマー以外の方には、ややとっつきにくいかもしれません。しかし、ふだんからコンピューターやインターネットを使っている方にとっては、とても面白い話が詰まっていると思います。
タイトルがまず不思議なので、簡単に説明しておきます。「パターン」とは、ソフトウェア設計の定石集「デザインパターン」のこと。「Wiki」は、Wikipediaではなくて、その源流の共同編集システムとしての「Wiki」のこと。そして「XP」とは、「エクストリーム・プログラミング(極限のプログラミング)」と呼ばれるソフトウェア開発手法のことです。
本書は、この三者にひそんでいる共通点を追究しています。その共通点とは、オーストリア生まれの建築家クリストファー・アレグザンダーの建築理論を祖先にもっているということでした。この事実は、このあたりの手法に詳しい方なら周知のことのようですが、私はまったく知りませんでした。ソフトウエア開発と建築が結びついているとは、一見不思議な印象を与えます。しかし、ソフトウェア開発も建築も、それぞれ構造を設計し建築(アーキテクト)し利用してもらうというプロセスは共有しています。そう考えると、なるほど納得できる組み合わせです。
本書のなかには、いくつもの箇条書きがならんでいます。それは、建築やソフトウェア開発に関する数々の原則です。なんらかの構造をつくる人たちは、ルールをつくるのが好きなんですね。
本書を通じて、とくに興味深く感じたことを二つあげます。
ひとつは、「利用者参加」というコンセプトです。
アレグザンダーは、1971年オレゴン大学の建築プロジェクトで、利用者参加による建築を試みました。アレグザンダーは、建築の利用者と設計者を一致させるという目標をもっていたのです。しかし、アレグザンダーの試みはかならずしも成功したとはいえなかったようです。
ところが、その理論をソフトウェア開発に応用しようとした人びとがいました。米企業の研究員ウォード・カニンガムとケント・ベックのふたりは、ソフトウェア開発の世界で、アレグザンダーの建築理論を援用して、利用者と開発者の一致を目指す取り組みをおこなったのです。そのコンセプトが、デザイン・パターンやXP、Wikiにも受け継がれました。ソフトウェア開発は、建築家という職業役割がすっかり固定している建築の世界ほどの長い歴史を有していません。彼らは、利用者と開発者の関係がまだ固定していないソフトウェア開発では、新たな社会構造をつくることが可能だと説きます。
アレグザンダーも、カニンガム、ベックも、建築やソフトウェア開発といった特定の領域に閉じているのではなく、ひろく野心的で社会的な目標を抱えて活動しています。彼らの活動に共通している態度──それは、現行の業界システムや社会慣習を見直そうとする批判的な視点に立っていることです。彼らの思想にはいくつかの原則がありますが、そのなかでも「利用者参加」は、固定した職業役割や人間関係の変革をうながす、もっともラディカルなコンセプトに見えました。
ふたつめは、新しくみえる概念や技術にも、源泉があったということです。
デザインパターンやXP、Wikiなどといった、ソフトウェア開発における新しい潮流は、まるで、ある時にあらわれた新規なアイデアのようにみえます。しかしその登場の裏には、歴史的・思想的な系譜がしっかりとあったことがわかりました。表面的に流行を追っかけているだけでは、その源流をつかむことができません。その意味で、わかりやすく歴史をたどっている本書のような存在は貴重です。
建築からソフトウェア開発へと影響を与えたアレグザンダーの理論は、近年ソフトウェア開発の世界からアレグザンダーへとフィードバックしているそうです。これから両者の交流が、また何かを生み出すかもしれません。