見出し画像

人のためのシステムアーキテクチャ

アーキテクチャを考えることはひどく機械的である種の暴力性を帯びる。しかしアーキテクチャを考えるのはむしろ人間のことを考えるからだとぼくは思う。これは全体最適は個人を排除することか、という問いと似ている。むろんバランスなのだが、それを考える。


アーキテクチャの暴力性

アーキテクチャは構造が構成要素を制御することについて考えている。アーキテクトはどのような構造であれば構成要素が期待通りに制御できるかを考えている。

構成要素を人間だとすれば、組織がいかに人間を制御するか、という話であって、ひどく特権的で上から目線で暴力的なふるまい(設計主義的)だといえる。だからアーキテクトはこのあたりに繊細である必要がある。

機械は文句を言わないから自由に設計し放題である。しかし例えば組織アーキテクチャや運用含むアーキテクチャを考えれば、構成要素である人間が問題になりうる。ぼくの現実感では、人が構成要素に全くならないシステムアーキテクチャなど(いまのところ?)現実に存在しないので、いつも重要だと考えている。

活人アーキテクチャ

以前、開発基盤を設計するときに考えていたことは、なるべく開発者が自由に開発したいやり方で開発できる環境をつくることだった。そこに、(ただし予算やセキュリティなどの範囲に限る)みたいな制約が加わる。だから目指すべくは「これ以上はダメだよ~という大きな外枠を用意しつつ、その中では自由に開発できる」アーキテクチャだと考えた。

たとえばオブジェクト指向設計は開発に制限を加えることについて話していると思う。オブジェクト指向設計はどう考えてもコーディングの自由を奪う。しかしその制限を加えることがむしろトータルで開発を捗らせる、ということについて考えている。

建築のように考える

アーキテクチャを普通に和訳すれば建築である。建築を想像すればこれらの話は自然なことだと思う。

建築家は、生活する人やものの配置や動線、建設時の人やものの動線、そして問題発生/緊急時の動きを考えて建築物を設計するだろう。そして物理的な空間制約や周辺環境、法律、安全性、予算などを考慮して限界を設計することになるはず。

ある空間での限界と、その範囲内での人間の自由。このようなことをシステムアーキテクチャも考えていると思う。

アーキテクチャが何を制御するか?

ぼくは個人の意思をあまり制御・管理したくないと思う。ぼく自身されたくないと思ってもいるのだろう。

まあそのことを一般論的に表現すれば、大上段から制御すると(システム全体の仕事量はともかく)少なくとも個人のパフォーマンスを制限したり、モチベーションを低下させてしまうかもしれないことが問題だといえる。

また実際問題として、他人から個人を制御・管理することが可能なのか?とも思う。アバウトだと思われるようであれば、予測可能性が低いという表現でも構わない。

だからこそアーキテクチャを考える。アーキテクチャに人を合わせるのではなく、人にアーキテクチャを合わせる。制約の中での個人の自由な行動をなるべく許容するようにアーキテクチャを設計する。

関係している人々のことをなるべく具体的に想像しながら、アーキテクチャは設計されなければならない。そうでなくては、ただの理想を押し付ける暴力装置になってしまう。

すべてを人のように考える

とはいえ先でも軽く述べた通り、人に限らず機械に対してもそう考えるべきだ、とぼくは思っている。アーキテクチャがすべてを解決すると勘違いしてしまうのは、すべての構成要素が制御可能に見えるからではないかと思われるからだ。

アーキテクチャの構成要素はすべて”生きて”いて、完全に制御できるようなものではない。自然界の生態系におけるたとえば植物のように、ある視点では意志がないように見えたとしても、人間よりも長いスパンであったり種の全体最適として意志のようなものを示していたりする。

アーキテクチャ設計によって構成要素を制御するのではなく、構成要素を制御できないからアーキテクチャを設計する。この先、構成要素としてAIが増えていくことを考えても、その反転が重要だろうとぼくは思う。

この記事が気に入ったらサポートをしてみませんか?