What is IDA ?

Idea Driven Architecture(アイデア駆動アーキテクチャ),あるいは Imagine Driven Architecture(空想駆動アーキテクチャ)という新しい設計手法があるらしい.

IDAは従来の設計手法とは異なり,「こんなシステムがあったらいいな〜」というのを起点に,実現可能かどうかは別として,先に大まかな設計を行い,それに対して「じゃあどうやって実装すれば少しでもそれに近いものが出来るか」というのを考えて詳細設計と実装を行う手法です.

嘘です.ごめんなさい.IDAというのはさっき自分で考えた開発手法です.一昨日あたりから,「現在のシステムの限界はヒューマンインタフェースを設計時に考慮してしまうからではないか」とか「現実社会で今必要とされているシステムしか現在開発されていない」とか少し考えていて出てきた考えなのです.

IDAにおける考え方をいくつか並べます.

  1. 作っていて楽しいシステム,わくわくするシステムを作る,自分の嗜好に沿ったものを作れ.
  2. 開発生産性や保守性などは気にしない,どうせ自分の趣味で作るわけだし.
  3. ハードウェアリソースなども気にしない,無限にあると思ってふんだんに使え.
  4. ヒューマンインタフェースも気にしない,バイナリ出力,ハードコーディングも構いません.

要するに,システム開発者によるシステム開発者のためのシステムを自由な発想で作ろう,ということ.そんでもって,そのために必要な技術はふんだんに使おうということ.

最近いろいろ勉強して,知識や理解の量は増えていっているんだけど,何か嫌な感じがする.他人からみたら頭でっかちな状態ってやつかもしれない.「なぜシステムを作るのか」「なぜシステムを利用するのか」「その技術を使うと,どんな楽しいことがあるのか」「その技術を使うと,どんな便利なことがあるのか」そういったことももっと体験的に学ぶ必要がある.

あと現在作っている様々なシステムは,現在の様々な制約上で作られているわけだけど,そういった制約が無い場合の可能性について,調べておく必要がある.制約は社会と共に変化していくからね.

例えば「ユビキタス社会の到来と言われているが,それによって自分の身の回りで何が代わるのか,いろいろ想像を巡らせてみないといけないよ.そういったことを考えられないと生き残っていけないよ.」と飲み会で上司に言われた.

ユビキタスというと,最近だとICタグ系の話が多いのかな.でもそれ以外でもいっぱいある気がする.うちは今はメインフィールドがJ2EEなので,ユビキタスもそうだけど,それ以外も含めて今後のJ2EEの可能性について考えてみたい.というかもうちょい話を広げて,「今後のシステムと社会の有り方」とかも.

で,話は振り出しに戻るわけ.現在の制約から外れたところで考えないと,未来のことは分からないと思うんだよね.

予想したって当たるかどうかなんてわからないわけだけど,少なくともやっていて楽しめれば良しとしようかな,と.