Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

『パターン、Wiki、XP - 時を超えた創造の原則』感想、少しばかりの余談

江渡浩一郎氏(id:eto)による『パターン、Wiki、XP - 時を超えた創造の原則』を読みました。プログラミングに関わる者ならば誰もが知っているだろう「デザインパターン」という言葉が、クリストファー・アレグザンダーの建築理論に由来することは、少しでもそのあたりの事情に通じている方ならば、聞いたことぐらいはあるでしょう。本書は、長年Wikiについて深く考察し、また実装を行ってきた著者が、建築に端を発した思想が現在の創造性のある大きな一角を胚胎した歴史についてついに一書を成したものであり、楽しみに読みました。

パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)

パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)

都市設計を行うにあたり、元々数学者であったクリストファー・アレグザンダーは、まずは数学的なアプローチを試みます。ある要求を満たすシステムを構築するに際して、下位に属するたくさんのサブシステムをできる限り洗い出し、それらのあり得る組み合わせのうち、最も全体的な要求への適合度が高い組み合わせこそが優れた設計なのであるという考えに基づき、コンピュータを用いた膨大な計算により、設計を行いました。

しかし、その試みにはすぐに重大な綻びが見出されました。まず、当時(60年代)のコンピュータでは実現不可能なほどの組合せを計算する必要があったこと。そしてそもそも、サブシステムを洗い出そうにも、人間の認知能力には限界があるため、必ず漏れが生じること。さらに、仮にそのような問題が解決されたとしても、システムとは動的なものであり、時間を経るに連れて必ずサブシステム間の思わぬ連携が生まれ、よきにつけ悪しきにつけ、予想できない変化が起こること。

そのことからアレグザンダーは、都市を「人口都市」と「自然都市」とに分け、またそれぞれに「ツリー」「セミラティス」という構造を対応させ、後者を真の都市の姿として称揚することになりました。限られた人間が設計を行うだけでは、前述の不可避な問題のために、それは「システム → サブシステムたち → そのまたサブシステムたち」という、ツリー構造になってしまう。しかし現に存在する都市はそのように成り立っているのではなく、サブシステムの多様な重ね合わせ、複雑なネットワークにより形成されているのだ、と。

アレグザンダーが次に向かったのが、設計の建築の6つの原理とパターンです。6つの原理とは:

  1. 有機的秩序の原理
    • 計画や施工は、全体を個別的な好意から徐々に生み出してゆくようなプロセスによって導かれること。
  2. 参加の原理
    • 建設内容や建設方法に関するすべての決定は利用者の手に委ねられること。
  3. 漸進的清聴の原理
    • 各予算粘土に企画される建設は、小規模なプロジェクトに特に重点を置くこと。
  4. パターンの原理
    • すべての設計と建設は、正式に採択されたパターンと呼ばれる計画原理の集合によって指導されること。
  5. 診断の原理
    • コミュニティ全体の健康状態は、コミュニティの変遷のどの時点でも、どのスペースが活かされ、どのスペースが生かされていないか、を詳しく説明する定期的な診断に基づいて保護されること。
  6. 調整の原理
    • 最後に、全体における有機的秩序の緩やかな生成は、利用者の推進する個々のプロジェクトの流れに制御を施す財政的処置によって確実なものとされること。

本書p.28より

先に見出された問題点から明らかなように、あらかじめ全てが計算可能で予期し得るものでは到底あり得ない現代建築において、より良い設計を行うためにアレグザンダーが必須であると考えたのが、建築の専門家と利用者の協業でした。パターンとは、それら知識に差異のある、しかしよりよい建築を行うという同じ目的を持った専門家と利用者が、協力して作業を行う、コミュニケーションを行うことを可能にするために生み出されたものであったわけです。

アレグザンダーは、その理論を次々と実践に移していきました。たとえば日本においても、埼玉県の東野高等学校の校舎を、アレグザンダーが設計したという実績が残っています。ただ、その実践は、思想の魅力とは裏腹に、必ずしもうまくはいきませんでした。東野高等学校における後の調査においても、本書の著者はあまり否定的な評価は与えていないものの、常識的にいって、建築的衣裳からいっても現状の評価からいっても、失敗と評価するしかないでしょう。

本書に述べられている通り、参加型のプロセスには時間がかかり、それは建築費の増大につながりますし、また、東野高等学校の実例においては、結局はゼネコンの導入によってようやく施工できたという有様です。本書は、ゼネコンの介入を招いたことが現状の不満を呼び起こす最たる要因だと決め付けていますが、そもそもアレグザンダーの思想にしてからがその実践においては不十分なものでしかなかったのかもしれないし、あるいは、建築という古来数千年の歴史を持つ形式そのものが、ユーザ参加型という御題目ではそうそう簡単には覆せない巨大なものであったということだろうと思います。

一方、アレグザンダーの思想は、建築とは直接は関係しないように思われるソフトウェア業界に、多大な影響を与えていました。ウォード・カニンガムケント・ベックらは、アレグザンダーのパターン、参加の原理に着想を得て、ソフトウェア設計におけるパターンの考察を始めます。その活動が、80年代半ばから約10年間の、数々のいまや有名になった偉大なプログラマたちの熱いドラマとして本書で描かれるのは、ソフトウェア業界に身を置くものとしては、興奮を憶えずに読み進むことは不可能なほどです。

ただ、彼らの作業が、単にパターンの策定、整理終わっていたならば、(それはそれで十分に有用なものではあるものの)本書でこうも取り上げられることはなかったでしょう。彼らの、真に重要な仕事は、そもそもアレグザンダーが実際にはその実践において行き詰まってしまった、参加の原理の確立にあるのだと思います。それが、本書のタイトルの一部にもなっているXP、あるいは、ここではケント・ベックの活動に焦点が当てられているためにXPが特権的にタイトルに導入されていますが、もっと広くいえば、アジャイル開発でしょう。

  • プロセスやツールより人と人同士の相互作用を重視する
  • 包括的なドキュメントより動作するソフトウェアを重視する
  • 契約上の交渉よりも顧客との協調を重視する
  • 計画に従うことよりも変化に対応することを重視する
アジャイルとは - はてなキーワード

このように、アジャイルは現に要求を完遂するシステムそのものを、また、そのために顧客(利用者)との絶え間ない対話を、そして必ず起こる、不可避の変化を受け入れることを第一に置きます。そのことにより、いまや建築と比してすら劣ることのない大規模になったソフトウェアの設計・実装を、アレグザンダーが思い描いたようなよきものとして実現することを目指しているわけです。しかし、果たして現実的にアジャイルがそうもうまくアレグザンダーの理想としたところを実現できているかといえば、必ずしもそうではないでしょう。しかし、ソフトウェア業界は、少くとも建築に比べればずっと新しい領域です。であればこそ、ケント・ベックはこのことによってよりよい社会構造を作り得ることすら期待しているのですし、僕も一介のエンジニアに過ぎないものの、同じ志を抱いています。

さて本書は、三題噺の最後を飾るWikiに突入していきます。Wikiこそは、アレグザンダーの思想が十分には現実化し得なかったコミュニケーションの新しい領域を実現していくことになります。そこでは、先に引用した6つの原則が忠実に適用されつつ、しかしインターネットによりこれまでの物理的な制約を離れてひとびとが協働するプラットフォームが徐々に形成されていきました。本書においてはWikiにおける協業という意味では本質的なものとしては評価されていない向きはあるものの、たとえばWikipediaの成功は誰もが知るところでしょう。ただ、現状において協業のプラットフォームとしてWikiが、本書が期待するほど成功しているのか、あるいは、インターネットにおける協業に今後もWikiが寄与し得るのかという点においては、若干の疑念を抱いてもいます。ただし、Wikiの思想、そしてそこから本書が遡って見出したパターン、参加の原理は、プラットフォームが今後どう変遷するのであれ、重要であり続けるに違いないだろうと思います。

最後に、著者は十分に把握しているだろうとはいえ、本筋から離れるからだろうがために本書に書かれなかったことを補足しておきましょう。まず、アレグザンダーが最初につまづいた、膨大なパターンの組合せの問題については、近年、当時とは比べものにならないほどの計算リソースを利用することにより、様々なアルゴリズムによる組合せ、形態の生成による試行錯誤が、デザイン・設計を大きく左右する事態となっています。もちろん、そのことによって直ちにより優れた建築が可能であるだとか、ましてや、時間の経過、サブシステムの多様な連携を予期した設計が実現したなどということにはなり得ないでしょう。また、実際問題として、たとえば「心地のよい風の吹く空間」といった要件があったとして、どうやってそれを実現することが可能でしょうか(もちろん、たとえば「感性工学」といった分野によって研究されているところではあります)。とはいえ、アルゴリズムによるデザインの生成は、、ツールとして今後ますます重要になることはあっても、その役割りが減衰することなどあり得ないでしょう。詳細については、最新かつ包括的なレポートである『アルゴリズミック・デザイン - 建築・都市の新しい設計手法』(日本建築学会・編)をご覧ください。

また、アレグザンダーにとって重要であった参加の原理についても、面白い事例が見られます。藤村龍至氏が提起する「超線形プロセス」がそれです。藤村氏は、

設計の初期段階では、必ずしもそこまで明瞭に見通せるわけではないのだが、環境の力学を受けながら漸進的な変化によって有機的に進化していく生物の発生過程のように、建築の味方に時間軸を導入することで、新たな設計のイメージを確立することはできないだろうか。

『10+1 Vol.48 アルゴリズム的思考と建築』p.166より

という企図を持って、漸進的な設計、絶え間ないコミュニケーションを、その設計プロセスに取り入れました。

  • 建築の要求の束を満たす設計を、少しずつ、部分的・漸進的に行うこと
  • モックアップにより、設計にたずさわる者同士が細かな、膨大なコミュニケーションを行い、当初見えることのなかった問題点を洗い出したり、また、よりよい設計の方法に気付くことが可能であること
  • 作業履歴を残すことにより、これまでの来歴が可視化され、そのことにより後戻りを防ぎ、スピードが生まれること
  • フィードバックを評価し、再設計に取り込んでいくこと

「超線形プロセス」は、以上の4点をその特徴とします。たとえばBUILDING Kの建築過程を示すドキュメントに実例が示されています。これは、ソフトウェア技術者にはお馴染の、また、本書の三題噺のひとつでもあるXP/アジャイルの方法論そのものです。ここでもやはり、建築とソフトウェア設計とは、同じ時代を生きているのですし、ひいては本書の主張する通り、「時を超えた創造の原則」が生きているのだろうと思います(藤村龍至氏については、上掲『10+1』における論考の他、『思想地図 Vol.3』『ユリイカ 2009年6月号 レム・コールハース特集』も合わせて参照のこと)。

アルゴリズミック・デザイン―建築・都市の新しい設計手法

アルゴリズミック・デザイン―建築・都市の新しい設計手法

10+1 No.48 特集=アルゴリズム的思考と建築

10+1 No.48 特集=アルゴリズム的思考と建築

ユリイカ2009年6月号 特集=レム・コールハース 行動のアーキテクト

ユリイカ2009年6月号 特集=レム・コールハース 行動のアーキテクト