システム開発・プログラミングと建築とのアナロジー

休みの日は雑感が多くなり、さらに休日にしかエントリを書かなくなれば雑感が増えるのは当然のことである。
と、毎度冒頭の言い訳が続く今日この頃。

よくシステム開発やプログラミングは建築と比較され、また、たとえ話として建築の世界の話が用いられることが多い。


システム開発の分野では、開発プロセスが建築の世界ではきっちりしているからシステム開発の分野も見習うべき、的文脈で。

プログラミングの分野では、建築家と大工さんがSEとプログラマの比喩に用いられたり。設計と実装の部分でなど。


比喩だけではなく、デザインパターンなどは実際に建築の分野から輸入した概念であるし、両者との相関関係は高い、いや、こちらから一方的に建築側を参考にさせていただいている。


同じ、ものを作る、なのになぜこれほどまでに違うのだろう?という疑問が根底にあるのだろう。建築の方が歴史が長いから、とかプログラムはそんなに簡単に定式化できない、といっても説得力に欠ける。これは建築の世界への一方的な憧れ、片思いなのではないか。


そんな風に思っていた矢先、10+1 No.48 特集=アルゴリズム的思考と建築という建築雑誌の特集が、「アルゴリズム的思考と建築」だった。建築雑誌に「アルゴリズム」の文字。建築側からの歩み寄りに驚いた。
もっともこの雑誌は建築とは言っても内容は哲学・現在思想みたいな本なので、突然ロシアフォルマリズムだとか、ニクラス・ルーマンウンベルト・エーコと別業種の引用が多いのですが。ここで述べられていたのは、建築物とは複雑な構造物であり、これらをいかに定式化、最適化させるか。そんなことが問題になっているらしい。
さらに、大規模都市開発においては、ITの世界のITアーキテクトに相当するトップダウンで指示を行うものが現代建築にはいない。一つのビルを建てるにも多くの事務所が絡み合って作っていると、逆にIT側の開発を参考にしようとしていたり。


知らない世界でした。建築側から見ると、我々が行ってきたこと、特にインターネットという網状の情報通信ネットワークを前にして彼らは戸惑っている。建築とは、人と外界(環境)にしきりを作り、新たな空間を生み出す行為であると思う。そんな中、人間がネットという網状空間と離れられなくなっている。そういうなかで建築とはどうあるべきか、彼らは迷っている。


そうは行っても、建築は歴史的に長く、法律面もしっかりしているし、その辺を開発フローの参考にしようという気は自分にはある。
建築マネジメント概論―米国で始まり世界中に広まった建築マネジメント方式 FM・PM・CMとはなにか という本を見つけた。ITのプロジェクトマネジメントとどのくらい違うのだろう。
読んで驚いた。「建築マネジメント」という言葉は1970年台に不況まっただ中のアメリカで生み出されたものらしい。全然最近の話である。あるところでは同時期にシステム開発も行われていたであろう。それ以前の建築はマネジメントされていなかったということか。自分の中の建築のイメージがガラガラっと崩れた。。


事実を知ると安易にアナロジーとかメタファーとかで使うことをためらう。分かりやすく説明する際に使うくらいにとどめよう。そうしないと的はずれなことを言ってしまいかねない。


参考ページ
http://www007.upp.so-net.ne.jp/kengai/fowler/newMethodology_j.html

・設計上の決定がUMLの上で全部できちゃうとしたら、建築屋さんみたいに「モノ作り」のプランをたてて設計書をコーダーに渡して、後は知らん顔したってかまわない。

だけどここでちょっと考えてほしい。あなたは、本当に何も考えないですぐにコードが書けるような設計書ってものを見たことがあるかな?

「実はソースコードが設計書で、(建築でいう)モノ作りに相当するのは、コンパイラーとリンカーを動かしてる時間だけじゃないだろうか」

示唆に富んでおります。アナロジーもどこに適用するかで解釈が変わることがあるという。所詮たとえ話なんだという心構えが必要。