ビジネス分析&仕様検討強化月間なので忙しいのだが、こういうときこそ感じるものが多いのでメモ。思いつくままに書くので意味不明かも。
業務分析をしていると「体系化力」なるものが重要だと気づく。ビジネス書的にはロジカルシンキング。顧客から1時間話しを聞いて「結局こういうことですよね」と1枚のA4紙にかかれた表と5,6点のまとめに集約する力だ。構造化、類型化、分類、整理、ま、総じて分析力というか。
これって"物事に対するフレームワーク"の発見ではないかと感じる。複雑系でいうところの「物事のあり方」というか。"物事に対するフレームワーク"というのは、ある範囲の物事に対する"いくつかの軸"であり、それを用いて説明すると、ちゃんと理解できるようにまとまるというものだ。
ここから妄想が広がる。ソフトウェア開発においては、実装に落ちるイメージまで含んだフレームワークというのが存在するのではないだろうか。そのフレームワークをつかって仕様をまとめれば、そのまま特定のソフトウェアフレームワークへのプラグインとして開発が可能になるというものだ。
もちろん物事には範囲があるので、モノシリックなフレームワークですべてを包含するまでにはいたらないだろう。きっと複数のレイヤーに分かれて、上位層に行くほど特定の範囲に絞られていくわけだ。その範囲に応じたビジネスは、あるAPIに従ってロジックを実装していく。
はっきりとはいえないが、そのプラグインがビヘイビアとなり、データを制御するわけだ。フレームワークは、ま、今風にいえば"依存性を制御"する。
ようは「仕様のまとめかた」と「それに対応した実装フレームワーク」というのがセットになっているわけだ。
ヒントになるのは、IoCパターン(Dependency Injection, Dependency Lookup)やAOPというところだろうか。数々のOSSのフレームワーク製品(Workflow、Chainなど)からも学ぶことは多そうだ。
で、こういった"仕様と実装のフレームワーク"の構築こそがアーキテクトの役割ではないかと。そのために必要な力を"体系化力"と呼んでみたりして。
帰りの電車で同僚と話したのだが、こういう力というのはどうやったら身に付くのだろうか。才能だけではなくトレーニングによっても十分に身に付く気がする。ロジカルシンキングのトレーニングなんかが応用できそうだ。フレームワークのフレームワーク。むー、できる気もすれど...
2005/05/20: 今回の案件でも、最も重要な一部の機能には上記の考え方を導入済み。まだ実装にいたっていないのでなんともいえないけど手ごたえはあり。
ある「物事」の仕様というのを決定すると、それを示すコードが1クラスに書かれるという感じ。結局、ビジネスのある物事というのは、"Aのタイミングでa処理"と"Bのタイミングでb処理"というのを総合して、"****"っ呼びましょうみたいな。で、AタイミングのAPIと、BタイミングのAPIを、1つのクラスで実装する。
実例を出すわけにいかないので、わけわからないかも(笑)。ただ、クライアントの担当者がコードを書ける人だからついてこれているだけかもしれない。そこの見極めは難しいところ。

コメント (1)
はじめまして。いつも参考にさせて貰ってます。
ちょっと読み間違ってしまったようですが、自分の対象分野である情報化企画や要求定義としてはどうか、という観点から書いてみました。
投稿者: Harry | 2005年05月20日 15:45
日時: 2005年05月20日 15:45