大事なことは何か
複雑な対象をシンプルに捉える
既存システムは時間の経過とともに機能が追加され複雑になっています。その複雑さは多くの場合、人がケースバイケースで対応している柔軟性をシステムに取り込んだことと、システムの作り方に起因します。
ビジネスそのものは人が行っている以上、理解できないほどに複雑になることはなく、現場に柔軟に対応したためにシステムの機能間の関係が複雑化したケースや、システム上の制約から手順が複雑になったケースなどが考えられます。
既存システムの調査分析では、その複雑なシステムを詳細に捉えることが重要なのではなく、膨大な資料やプログラムに素早くアクセスするための地図を作成することが重要です。
地図には写真のような個々の詳細な情報はありません。道路や公共施設などの重要な目印が強調されて示されます。余計なものを省き、重要なものだけ記述することで情報を分かりやすく表現します。
ここからはシステムの地図を作るために、既存システムの調査分析の役割を見ていきましょう。システム再構築のための要件を決める手順は単純化すると以下の3ステップです。
- 既存システムの機能はこうで、このように使われている
- 次のシステムの方向性はこうだ
- だから次のシステムではこうする
1が既存システムの分析にあたります。システムの仕様化では機能を組み立てていくことが必要であり、そのための材料と判断基準が必要になります。その材料と判断基準を洗い出すのが既存システムの調査分析です。
その材料と判断基準が「誰に 何を行い、それは何のために」を示すことです。「誰に」が関わるアクターや外部のシステムになります。「何を行い」という部分がシステムとの入出力と機能、データにあたり、そして「何のために」が広い意味でのビジネスルールに該当します。
システムの地図は「誰に 何を行い それは何のために」を記述したものになります。
省けるものは何か
既存システムの分析作業が肥大化しないために、省けるものとして以下の2つがあります。
- アーキテクチャの整理
- 詳細な情報の整理
通常システムを再構築するときはアーキテクチャが変わります(既存のアーキテクチャで対応できなくなりシステムの再構築に迫られるため)。従ってシステムの作りがどうなっているのかは調査から省くことができます。
同様に詳細な情報の整理にも踏み込みません。プログラムはさまざまな制約(時間的制約、物理的制約、開発時制約…)の中で、開発保守され、それらの制約の結果として作られています。従って、プログラムを詳細に調べることはさまざまな制約の中で作られた現実解を見ているに過ぎません。システムを取り巻く状況は変化しているので、再構築するシステムではまた違った制約になります。必要なのはそれらの制約を取り払った、ビジネス上価値のある真の機能(何を行っているのか)を把握することです。
アーキテクチャの整理や詳細な情報の整理は、後で必要になったときに目的を明らかにして調べるほうが効率的です。詳細な調査を行うときに対応関係が分かるように情報を整理することが既存システムの調査分析です。その成果物がモデルで表現されたシステムの地図になります。
