情報システム学会 メールマガジン 2012.5.25 No.07-02 [7]

連載 オブジェクト指向と哲学
第17回 パターン言語 − 育てるということ

河合 昭男

 前回は、パターン言語のソフトウェアへの浸透をテーマとし、2大潮流があるとしました。
 第1はデザイン・パターンから始まった一連のソフトウェア・パターンのムーブメント、第2は一連のオブジェクト指向開発プロセスへの影響です。統一プロセスRUPや、その対極として生まれたXPから始まったアジャイル開発ブームにパターン言語の考え方がとり込まれてきました。
 知識の観点から捉えるなら、パターン言語とは知識の形式化の技術です。組織および個人の経験や試行錯誤を通して蓄積されてきた暗黙知を新たな形式知として創出する技術です。
 第1のムーブメントは設計知識の再利用技術として取り込み、第2のムーブメントは開発プロセスの知識表現技術として取り込みました。

アレグザンダーの3部作
 クリストファ・アレグザンダー(C.A.)の3部作はC.A.の考える建築の価値[1]、価値を創造するための基本戦略[3]および具体的な基本戦術[2]から構成されています。
 --
 [1] The Timeless Way of Building,1979
  邦訳「時を超えた建設の道」鹿島出版会
 [2] A Pattern Language,1977
  邦訳「パタン・ランゲージ - 環境設計の手引き」鹿島出版会
 [3] The Oregon Experiment,1975
  邦訳「オレゴン大学の実験」鹿島出版会
 --

図1 アレグザンダーの3部作の位置付け
図1 アレグザンダーの3部作の位置付け

 [1]は当連載第15回で紹介した「無名の質」がキーワードです。建築物というハードウェアだけの品質ではなく、そこで実際に生活する住民も含めた場のクオリティというものこそが求められるべきだとします。

 [2]はずばり「パターン言語」をタイトルとし、具体的な253パターンが記述されています。このパターン記述形式は、ソフトウェア・パターンでも踏襲された「問題とその解決策」として記述するC.A.独特のスタイルです。
 原題は A Pattern LanguageThe Pattern Language ではありません。パターン言語は対象とする問題領域ごとに自由に作れるものなので Another Pattern Language はいくつでも作れます。例えば、同じ建築がテーマでも具体的プロジェクト毎に利害関係者が集まって独自のパターン言語を作成することができます。本書はどこでも使える一般的な建築のためのものです。

オレゴン大学の実験
 [3]はプロセスがテーマです。パターン言語を用いて具体的にどのようにして建築を行おうとしているのかを説明する最初の書です。オレゴン大学プロジェクトの建設と計画に関するマスタープランとして示されていますが、他のプロジェクトでも活用できるものです。

 「従来のマスタープランや予算処置に替わるべきものとして、これら6箇条の原理を採用するように私たちは勧めることとする。」[3]

 プロセスの基本原則を6つの原理として挙げています[3]。
 --
 (1)有機的秩序の原理  The principle of organic order
 (2)参加の原理     The principle of participation
 (3)漸進的成長の原理  The principle of piecemeal growth
 (4)パターンの原理   The principle of patterns
 (5)診断の原理     The principle of diagnosis
 (6)調整の原理     The principle of coodination
 --
 さて、ここでは(2)と(3)に注目します。従来の建築はハードウェアの品質に重点があるが、C.A.はそこで実際に生活する住民が満足できる品質を重視する。その品質は人間系を含むものであり、具体的には説明困難であり、C.A.はとりあえず「無名の質」と名付けた。そのようなあいまいなものをどうしてアーキテクトが始めに顧客の要望を聞いて設計できるのであろうか?顧客も言葉ではうまく表現できないであろう。実際に完成してそこで生活してみないことにはわからない。
 つまり住民参加でゆっくりと時間を掛けて作り上げてゆくしかない。それが(2)参加の原理+(3)漸進的成長の原理です。一気に作ろうとせず、育ててゆくのです。

反復型開発
 オブジェクト指向開発プロセスの特徴は反復型開発ができることです。これは統一プロセスRUPでもXPなどのアジャイル開発でも同じです。なぜ反復型開発にするのかは建築と同じです。利用者にとって、システムは実際に使用してみないとそれが本当に使いやすく有用なものであるかどうかはわからないからです。反復型開発のメリットは、全体完成前に途中で何度も利用者が実際に使ってみて評価しフィードバックできることです。反復型開発とユーザ参加はセットで効果を発揮します。実際XPにはオンサイト・カスタマというプラクティスが含まれています。

場のクオリティ
 C.A.の考え方は「建築物+住民」からなる場の人間重視のクオリティを、住民参加で時間を掛けて作り上げてゆくことです。システム開発も同様に捉えることができます。「システム+利用者」からなる場の人間重視のクオリティを、利用者参加で時間を掛けて作り上げてゆくことです。

図2 人間系を含む場のクオリティを作り上げる
図2 人間系を含む場のクオリティを作り上げる

花と種
 「建物や町の無名の質は、人々の平凡な日常活動から間接的に生成されるだけで、人為的にそれをつくることはできない。ちょうど、花が種から生成されるだけで、人為的にそれをつくれないのと同じである。」[1]

 建築もシステム開発も実際は予算と納期があるので、ゆっくりと作ってゆく訳にはゆきません。直接的効果が数値化できないクオリティと、経済の制約とのトレードオフの調整が問題となります。

有機的秩序の原理
 これは、人工物を作るのも自然のように始めから完成品を作るのではなく育ててゆくという考え方です。規模が大きくなるほど、利害関係者が多くなるほど時間を掛けて全体調和を保ちつつ成長させてゆかねばなりません。

 「現在認められているようなマスタープランが、ある全体を創造し得ないこと、つまり、ある総体性(totality)を創造できても、全体性(whole)は創造できず、また全体主義的秩序を生みだし得ても、有機的秩序は生み出し得ないことを論じて見たい。」[3]

 whole は「無名の質」の2つ目に挙げられていた特性で、C.A.のキーワードです。

 有機的秩序とは「部分の要求と全体の要求との間に完璧なる均衡が存在する場合に達成されるような秩序」[3]と定義している。

 この考え方もC.A.の書籍の様々な場面で登場します。また稿を改めて考えて見たいと思います。

【C.アレグザンダー著書】
[1] The Timeless Way of Building,1979
 平田翰那訳「時を超えた建設の道」鹿島出版会、1993
[2] A Pattern Language,1977
 平田翰那訳「パタン・ランゲージ - 環境設計の手引き」鹿島出版会、1984
[3] The Oregon Experiment,1975
 宮本雅明訳「オレゴン大学の実験」鹿島出版会、1977


ODL ObjectDesignLaboratory,Inc. Akio Kawai