arclamp

ITアーキテクト 鈴木雄介のブログ

アーキテクチャ設計の意味を問う - クリストファー・アレグザンダーの思考の軌跡

建築家クリストファー・アレグザンダーが「パターン」という概念を広め、それがウォード・カニンガムケント・ベックによってソフトウェア開発のデザイン・パターンに応用されたことをご存じの方も多いでしょう。

(ご存じでない方には、江渡さんの「パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)」をお勧めします)

クリストファー・アレグザンダーの思考の軌跡―デザイン行為の意味を問う」は、そのアレグザンダーがパターン・ランゲージに至った経緯、そしてパターン・ランゲージの限界を超えていった流れを追うことができる本です。

この本を読むと、アレグザンダーは一貫して”数学的”であり、客観的に証明可能な構造を求め続けたからこそ、近年では”神”の視座へと導かれていったのだと分かります。

パターン・ランゲージと設計プロセス

アレグザンダーはパターン・ランゲージによって、モノの”形”と、それに対する人の”価値”の美しい関係性を探求していました。

ある形をデザインする際の難しさは、複数の要求に対して全体的な整合性を取ることです。ソフトウェアのアーキテクチャ設計でも性能と保守性、コストとセキュリティなどの要件は「こちらを立たせれば、あちらが立たず」になりがちです。

そこで、パターン・ランゲージと呼ばれる複数の「部分的な形の基準(=パターン)」を用意しました。パターン・ランゲージを用いて要求を部分へと分解し、それらを再統合していく過程で、部分ごとに要求と形のギャップを解決していけば、美しい形を自動的に作り上げていけると考えたのです。

パターン・ランゲージが興味深いのは、単に「優れたパターンを用意しました」ということではなく、「パターンを基準として要求とのギャップを探索することで、段階的にデザインが進められる」という設計プロセス論であり、かつ、それは「誰が使っても同じ結果に至る」ことを前提にしていた点です。

機能の限界

しかし、こうした設計プロセスでは「形と価値への探求」が「形に与えるべき機能」と「機能がもたらす価値」という議論に分裂することが分かりました。そして、アレグザンダーは「機能」の議論を突き詰めていっても美しい形にはたどり着けないことに気づいたのです。

そもそも、人は「”形そのもの”に価値を感じる」のではなく、その「”形がもたらしうる機能”を通じて価値を解釈する」こと、言い換えると「形への意味づけ(≒機能)によって価値を考える」ことが脳の構造的に好きなのです。よって、価値と形を直接的には結びつけずに「価値から機能へ、機能から形へという変換」が発生していたのです。

この変換には、どうしてもデザイナーの志向性が反映されてしまうため「誰が使っても同じ結果に至る」ことができないのはもちろんのこと、美しいものとはなりませんでした。

なぜ通販番組で物が売れるのかと言えば、それは「触れて分かる形への直感的な価値を感じた」ではなく「機能への説明に対する概念的な価値を感じた」によるものなのでしょう。しかし、買った物を使い続けられるのかというと、それはまた別の話なのです。「美しいと感じる」ことと「機能が優れている(と納得した)」ことには乗り越えられない壁があるのです。

これは現代的に言われる「デザイン手法」に対する痛烈な皮肉とも捉えられます。つまり、「よく考えられたデザイン」であるほど、それは「機能と価値」という概念的な議論にすぎず、「形と価値」という具体的なモノ(存在)への探求ではないわけです。

中心的な価値基準の存在

この絶望は、アレグザンダーを次の段階へと進めます。

アレグザンダーは『(形に対する)諸価値基準の相違は、ある1つの中心的な価値基準に訴えることで解消できる。<中略>それをわれわれは一者(the One)や無(the void)や偉大なる自己(the great self)と呼んでもいいだろう』という、”いっちゃった”考えにたどり着きます。

とはいえ、論理は明快です。人は価値を機能によって考えがちではあるが、理由無く形に感動できるので、やはり、「形と価値はどこか深いレベルで直接的に関係している」としたのです。

そこで「価値は(形の)全体性からもたらされる」と考え、さらに「機能は全体性の動的側面に過ぎない」としました。

たとえば建物というのは、その形が独立して存在するものではなく、その周りにある庭や道路や隣家や、あるいは街や国のような存在から連続した全体性として存在します。そして、機能というのは「全体性の中で(構造が見いだされるときに)立ち現れてくるもの」だとしました。

こうなると機能を追い求めることは無意味となります。機能は全体性から生成されてくるものなので、機能そのものを直接定義することはできないのです。むしろ、優れた機能を提供し続けられる構造そのもの、つまり、形そのものを探求する必要があります。

よって、機能を部分的な静的構造と紐つけたパターン・ランゲージは否定され、価値ある機能を生み出し続けることができる構造を特徴づける幾何学的特徴を探求し、15個の幾何学的特徴を提示しています。

この15個は「自己と似ている形を探し続ける」という不思議な手法で見つけられています。アレグザンダーは形に対して感じる美しさ(≒価値)というのは「自己の中にある究極的な自己」と「全体性から現れる瞬間的な構造」が一体になることでもたらされるとしています。よって、「自己と似ているもの」を探すことが、美しいものを探すことになるのです。

この説明は形而上学的なので一見するとオカルト的ではありますが、形と自己に対する純粋な解釈によって成り立っています。この力強い精神は、納得感とは別として感銘を受けるものです。


戦い

2012年にアレグザンダーは"The Battle"を発表しています。これは日本の盈進学園東野高等学校で起きたことをまとめたものです。東野高校はアレグザンダーの成功例として知られていますが、これを作り上げるにあたり起きた様々な出来事をしるしています。

この部分はぜひ本で読んでいただければと思いますが、ソフトウェア開発の人にとっては「ウォーターフォールアジャイルのせめぎ合い」を感じることができると思います。

そして、そこで語られるアジャイル的思想の純粋さに恐ろしくなるはずです。開始時点では完成形は分からない、費用は予算によってのみ決まる、実物を触ることでしか設計しない、完成した物に対して常にフィードバックを行って修正する。これをウォーターフォールしか知らない人たちと共にやりきろうとする。これがアレグザンダーが経験した戦いなのです。

ソフトウェア開発におけるアーキテクチャ設計

さて、せっかくですから最後にソフトウェア開発におけるアーキテクチャ設計に寄せましょう。

アレグザンダーがパターン・ランゲージを諦めたからと言って、デザイン・パターンが無意味であったわけではないでしょう。ただ、やはり現代においては意味が弱くなったとは考えたほうが良いように思います。

おそらく、現代のソフトウェアは、アレグザンダーの言う全体性の議論を考慮しないといけないほど、部分では語れない連続的なものへと成長したと捉えるべきなのでしょう。静的(クラスの構造)なパターンは、ある閉じた系においては美しく存在できますが、開いた系では周辺からの圧力によって美しくはなれず、むしろ、美しさとは動的(インスタンスの動作)に現れるものなのです。

これがマイクロサービスアーキテクチャの議論に結びつきます。マイクロサービスアーキテクチャは、静的な構造としてだけではなく、各システム間の依存性や開発プロセスといった動的な要素を取り入れています。これがソフトウェアアーキテクチャ論の進化の方向性であることを感じさせてくれるのです。

最後に「優れた物から見つけられた秩序を他者が実践しても優れた物ができるとは限らない」ことを付記しておきます。「成功した人の手法を真似ても成功するとは限らない」という身も蓋もない話です。アレグザンダーが言うようにデザインとは「する」ものではなく「成る」ものなのです。