
Mars Model開発記(5)~データ層の要旨
MarsModelとは(現段階の構想)
IT音痴の組織がIT導入をする際に用いるフレームワーク。
骨子は、「プロセス層(Value Process Layer)」「ロジック層(Application Logic)」「データ層(Data Flow Layer)」の3つの観点で業務を組む話。
既存の手法と違うのは、原則 Fit to Standard。
今回はデータ層の定義の話。
データ層を考える
ここからがグッと理解度が落ちるデータ層の話です。
ロジック層と比べると、説明は比較的簡単ですが、実施は簡単じゃないですね。ロジック層は、説明が難しく、実施は簡単という。
データ層は業務群を回すことを前提に考える
アプリケーションのロジックを動かす
アプリケーションのアプトプットから別のアプリケーションのロジックを動かす
意思決定に必要なデータ分析をする
共通データ・モデルを作る(1)
→業務やアプリケーションでデータが不整合を起こすと面倒なので、まず、全体の共通データモデルを作る
各業務が必要とするデータを確定する
各アプリケーションが必要とするデータを特定する
業務から生じるデータを特定する
各アプリケーションが出力するデータを特定する
共通データ・モデルを作る(2)
業務レベルのデータフローを作る
アプリケーション間のデータフローを作る
共通データ・モデルを作る(3)
各アプリケーションの制約を踏まえた共通データモデルを作る
ここで、エンティティ云々みたいな細かいことを考える必要はない。どうせDBはバラバラだから。
テクニック
全社共通キーの設定
アプリケーション間で授受できるデータ項目数にずれが必ず生じるので、全社共通キーを設けて結合する事を前提にする。
→ぶっちゃけ、大企業でもこれ出来ていないことが多い。
業務から受け取れるデータのギャップは最初に課題に置く
ようはインプットデータがゴミや欠損だらけだと何も生まれないので、データ品質と、量(項目)のギャップはすべて課題に挙げておく。おおむね人間の入力が変われないことで起きる。
【宿題】これを解決するアプローチは、今後、導入・運用の論議の中で言及する。
データの流れを考える
業務とデータのタイミングの整理
業務とデータの発生のタイミング
データの伝達と業務の開始のタイミング
→プロセスとプロセスの流れ中心。この流れがスムーズでなければ意味が無い。
ロジックとデータのタイミングの整理
ロジックがデータを処理するタイミング
→バッチ処理だと待たねばならないロジックに必要なデータが集まるタイミング
→データの流れが N:1 の時に必要
テクニック
業務の流れにウェイトを置いて、業務自体の順番を組み立てる
ロールバックパターンを確定しておく