お客様のシステム企画をお手伝いする際、こんなご質問をよくいただきます。
「企画段階でデータモデルを作る必要ってある?」
ご質問の意図は様々ですが、「そもそもデータモデルってどういうもの?」というパターンが一番多いでしょうか。
「レーザーディスクは何者だ?*」という有名な歌詞がありますが、まさにデータモデルは何者だ?というご質問。
CDすら見かける機会が少なくなりましたから、今では逆の意味でレーザーディスクが何者か知らない方が多いと思われますが(むしろ「その歌自体が何者だ?」かも・・・)。
次に多いのが「データモデルはシステムのデータベース設計に使うものだから、設計段階で作れば良いのでは?」というご質問。
こちらはある意味では正しいご意見ですが、大きな誤解が含まれているケースが多い。
弘中伸典の企画一問一答シリーズ、今回はシステム企画におけるデータモデルの必要性について考えてみましょう。
*「俺ら東京さ行ぐだ」 作詞・作曲 吉幾三(1984年)
まず、何者なのか?
一言で表せば「データとその構造を一定の様式に従い表記することによって可視化し、関係者間での意思疎通を可能にしたもの」といった感じ。
もう少し分かりやすく言えば、業務やシステムでどんな情報を扱うのか、誰でも理解できるように書きだしたもの、だと思っていただければ。
例えば、仕事で「顧客情報」「商品情報」「受注情報」といったデータを使いますよね。しかし、企業のビジネスモデルによって「ウチでは郵便物を送るため顧客住所も管理している」とか、「ウチは店舗販売のみで顧客情報を持っていない」とか、「同じ商品でもサイズ違いがあって、どのサイズが売れたのか受注情報に含まれている」といった違いがありますから、立場が異なる人達が共通の理解を持つためには「どんなデータを扱っていて、データ同士がどんな関係になっているのか」を定められたルールに沿った図で表現してあげる必要があります。
そのための道具がデータモデルというものになります(モデルを資料化した結果は「データモデル図」や、「ER(Entity-Relationship)図」などと呼ばれたりする場合もあります)。
それがシステム企画にどう役立つのか。
前提として、「業務やシステムをどう変え、それによって組織にどのような価値をもたらすのか」を定義するのがシステム企画ですから、実現しようとする業務の姿が十分に練りこまれていることが不可欠です(でないと、非効率でミスが多発するような質の低い業務・システムが出来上がってしまいます)。
それには、業務が何によって成り立っているのかを理解することが重要です。
すなわち、業務が「プロセス(手順)」と「データ(情報)」の相互作用によって成り立っている(例えば、納期問い合わせ情報[データ]から、在庫をチェック[プロセス]して、在庫数[データ]をもとに、発送リードタイムを計算[プロセス]して・・・)という事を踏まえて、その両方の観点から検討することが質の高い業務を検討するための鍵になります。
いわゆる「業務フロー」は手順を定義する意味合いが強く(プロセスモデルと呼ばれます)、これにデータモデルを組み合わせることで双方の視点から検討する手法をとれば、「A、Bのプロセスで同じデータを更新しているけど、これって業務を集約できるのでは?」とか、「このデータをCのプロセスで登録しているけど、データを参照しているプロセスは存在しないからこの業務もデータも廃止できるのでは?」といった分析が可能になり、練りこまれた検討を行うために有効な手段となるのです。
引越しの時など、手続きで面倒に思ったことはないでしょうか。何枚も書類が必要で、全部の書類に名前と住所と生年月日を毎回書かされて。。。そのような業務になってしまわぬよう、情報の視点からの分析は欠かせないのです。
また、別のメリットもあります。
「情報システム」とは、文字通り「情報を管理したり処理したりする仕組み」ですから、(処理の複雑さにも依存するとはいえ)基本的に管理する情報の数とシステムの規模には相関関係があります。
つまり、企画段階でデータモデルを作成することでシステム規模の推定が可能となり、開発コストを見積もったり、その妥当性を評価したりするために利用できます。形がなく捉えどころのない水でも、水差しという道具(=データモデル)に入れて何リットルか量れば、多いか少ないか判断しやすくなるのと同じです(具体的な方法はまた別の回で紹介するつもりです)。
さらに、ここまでの内容から「データモデルはシステムのデータベース設計に使うものだから、設計段階で作れば良いのでは?」という意見にも、誤解が含まれていることが分かりますよね。
確かにデータモデルのための手法や表記法は、システムに組み込むデータベース設計の際にも利用するものです。
しかし、上記のように企画段階や要件定義段階で業務を分析するためにも使える訳ですから、単に分析の粒度(「顧客情報」といったデータの固まりレベルか、「顧客名」「顧客名フリガナ」「住所」といったすべてのデータ項目を洗い出すか)や、スコープ・観点(対象が業務で扱う情報なのか、システムで扱う情報のみに絞り込まれたものか)を変えて、異なる目的で同じ道具を利用していると捉えれば理解しやすいのではないでしょうか。
例えるなら、水差しと言う道具が、花瓶としても使えるようなものです(先日逝去された故田村正和さん主演の「古畑任三郎」シリーズにそんな名シーンがありましたね)。
今回の答え。
A情報の視点から質の高い業務を実現するために、必要です
やや抽象的な内容ではありましたが、システム企画においてデータモデルを作成する必要性、ざっくりとご理解いただけたのではないでしょうか。
データモデルの詳しい解説や作成されたデータモデル図のイメージを知りたい方は、当社中山のブログが参考になるかと思いますのでこちらも是非。
中山嘉之のブログ:ビジネスを表すデータモデル図とは?
それではまた次回!