今週のプログテーマは、反面教師としてダメなアーキテクチヤにフォーカスしてみたい。ご承知の通り、ソフトウェアアーキテクチャーは目に見える形がない。そこで、企業システムのダメな構造を建造物に例えてみたい。
最初に思い浮かんだのが、故ジェームズマーチンの1994年の著書「データベース環境の実現と管理」にも出てくるバベルの塔である。同じく、継ぎ接ぎだらけのシステムを例えた日本の”温泉旅館”がすぐに頭に浮かぶ。どちらも10年以上前から引用してきた例えであるが、最近、これらは“まだましな方”ではないかと思う。そして近年の企業システムに相応しい例として最も近いイメージがジブリの“ハウルの動く城”である。これらの三つのうち最初と最後は地球上には実在しない。二番目の温泉旅館も近年の消防法のおかげでいずれ消えようとしている。バベルの塔はもとより温泉旅館も最近の若い人には何のことかよくわからないであろうが、“ハウルの動く城“だとかなりの人は「あー、あれネ」とイメージできるのではないだろうか。他との違いはそれが“動く”ことである。映画の中でこれがギクシャクと動くシーンがまさに現代のモンスター化した企業システムに酷似しているように思えてならない。
当ブログシリーズでは何度か言及しているが、現実社会はカオスである。ユーザニーズをそのまま既存システムに素直に反映するだけでは、いずれこの絵のような様相を呈することは時間の問題である。こうなれば建造物(ハードウエア)の場合には再構築する以外に方法はないが、ソフトウエアではどうであろうか。もちろんソフトウエアも修復不可能なレベルになればスクラップ&ビルドせざるを得ない。しかし、その名の通りその柔らかさの恩恵をふんだんに取り入れれば、長持ちさせることは可能である。問題は長寿を保つ方法である。対処療法的(プロセス)増改築は全体の構造を早く老朽化させるし、血液(データ)の流れを歪める変な突起物を作らないことも重要である。その為にはソフトウエア増改築のルールが必要である。例えばマスタデータのアプリ間の直接的やり取りを禁ずる“MDM憲法”などがそれに該当する。また、システムの安易な“横展開”もソフトウエアにとってはいささか問題であり、コピー&ペーストだらけのシステムと同じくらい性質の悪い病巣となる。横展開は物理コピーと増改築がシステムを”雪だるま式”にモンスター化させる。これを防ぐためには“横展開3回迄ルール“などを作ることも必要なのではなかろうか。
ソフトウエアを長寿にする為の幾つかの保守のルールに触れてみたが、これらはそもそも初期のシステム構築の出来映えによって大きく左右されることは言うまでもない。外部から与えるデータ(パラメータ)の変更だけで環境変化に対応できる構造、コピー&ペーストせずに部品の性質を“継承”できる構造など、全体の姿を大きく変えずに保てるような“アーキテクチャ“の考慮が設計段階で必要となる。これからシステムの再構築に入ろうと企画構想される企業のシステム部門の方々は、何よりこのアーキテクチャ(構造)にこだわっていただきたい。そして”機能要件、非機能要件だけが実現できれば良いといった”アーキテクチャに言及しない丸投げ型開発”が、如何に将来に禍根を残すものであるかをお解りいただきたい。たとえパッケージ製品を導入しようとも、あまりのアドオン・カスタマイズの多さでシステムが完成した段階で既に”ハウルの動く城”の状況となれば、これも同類のアーキテクチャ不在と言えよう。ユーザ企業にとってITは事業を支えるインフラであるが、そのコストは有限である。システムのアンチエイジングには日頃から気を配りたいものだ。