昨日は、スタロジの「ぶり祭り2008」に行く。「Buri」や「ギョイゾー!」のことは、多少知っている程度だったので、実際に聞いて、見てみてかなり分かった。この間、羽生さんが、ギョイゾーの裏側というエントリーで書いていたことを読むだけでは理解できなかったことが明らかになった。
プログラムは、
よかったのは、最初にここに至った歴史的背景について1時間以上も羽生さんがしゃべってくれたことである。何か新しいことができるためには、背景というか、状況を冷静に分析することが不可欠で、その認識が的確であれば必然の結果として出てくる。
そういう意味では、業務システムの観点から見ると、ここ10年間、アーキテクチャ、インフラなど情報技術の領域ではめまぐるしく進展しているにもかかわらず、何も影響されていない、そして何も変わっていないという言葉は重い。
それと、昔の環境だったからあった機能みたいなものも、今だったら必要ないのにいまだにそれにしがみついていることをやめなくてはいけない。遺物となったコード体系、肥大化した変換プログラムなどなど。
だから、これまでの延長線上で考えるのではなく、不連続線としての変革のアプローチが必要なのである。そうしたビヘイビアをスタロジは持っている。
さて、羽生さんは終わってから、もっとみんな感動してくれるかと思ったらそうでもなかったのでがっかりしたというようなことを言っていたが、ぼくは、声を大にしては言わないが、けっこう感動している。
こういうことって、その場ですぐわあすごいとなかなかなれないことがある。白鳥の水かきじゃないけど、上から泳いでいる姿だけ見ていると、水面下で一生懸命水をかいているのがわからないのと同じように、出来上がったものだけをみると、なかなかその裏ですごいことをやっているのを忘れてしまうもので、実際に同じことを自分でやってみて初めてそのすごさに気がつくということなのだろう。
設計の方法などいろいろ議論したいが、おいおい書いていくことにして、プロセスの切り方についてだけ書く。この辺は以前ちらっと羽生さんと話したことがあったが今回でBuriにおけるプロセスの切り方がわかった。
エンティティレベルで切って、それらのステータスを管理するというのが基本で、長いプロセスになる場合はそれらをつないで構成する。エンティティというのは、例えば申請プロセスであれば、「申請書」でそうした書類というオブジェクトを状態遷移させることと定義できる。この書類の状態遷移が業務処理を表わしていることは同意見でぼくもそういうことを提案している。
しかし、UIを含めてこの開発がほぼ二人でやっているというのは驚きだ。そして、この二人がいい距離感なんだな。お互いに干渉しないというか手を出さないというか、ぼくは人間疎結合だといったのだが、その結果、システム構造的にも、シンプルな疎結合ができあがる。UIからは、何でもtoNextStatusをなげるだけでいいということになる。
Buriとギョイゾー!がIT業界の変革をもたらす起爆剤にならないかとひそかに願っている。それには、少しずつでもいいから実績を積み重ねていってほしいと思う。