なぜ事実を正確に記述できるのか(1)

以下はアンケートに正美氏への質問欄があったので書いてきたこと。
回答がいただければ(そしてそれが理解できれば)確実に次の段階に入れる。非常に楽しみ。

TMDと「単なるお絵かき」の違い

TMによる事業解析は、管理過程の情報を入力として「事実を正確に記述する」ことを第一段階の目的としている。
TMD(TM Diagram. T字形ER図)の姿かたちをしていても、事実が正確に記述されていない図は、「単なるお絵かき」とされる。
事実を正確に記述したTMDを見る人が見れば、その会社の事業が丸見えになり、強みも弱みも全部読める。


ところで、そういう素晴らしいTMDがあったとして、その絵は現行システムのデータベースをリバースしたER図とはぜんぜん違うだろう。
現行DBがTMで構築されていなければ、従業員マスタに部門コードがあったり、データを横持ちしていたり、「パフォーマンス向上のための非正規化」が施されていたりするかもしれない。
そういうDBにはそういうDB特有の問題があり、ある部分では事業の足を引っ張っているだろう。そしてその問題は「正確なTMD」には表されていない。


ここでわからなくなった。

TMDが「正しい」のはなぜか

正美氏は上流工程のoutputについて「それが正しいことを証明できますか?」と何度も問うていた。
「正しい」とは「現実を正確に記述している」ということだろう。正しいTMDを出力できたとしたら

  • このTMDは事実を正確に記述している。
  • しかし、それは現実に動いているDBのER図とは似ても似つかない。
  • ということは、現行システムをリバースして作成したER図は事実を正確に記述していない*1

と、こうなる。何だか不思議な感じがする。


TMDと現行DBの差は、アプリケーションが埋めているのだと考えれば、そんなに不思議ではないかもしれない。
一般に、現行システムのDBを見れば何でもわかるかというと、そんなことはない。アプリケーションのソースコードを突き合せてみないと何やってるか分からないことはよくある。
現実ではプログラムで表現されていることが、TMDではデータ構造で表現される。だからリバースしたER図だけ見ても分からないことが、TMDを見れば分かる。
... と考えれば、別に何でもないような気もする。


が、強み弱みが全部読めるという所が理解できない。ハズレや見落としが発生しないのはなぜだろう。

  • ハズレ: TMDから読める弱みを指摘したら、アプリケーションですごいトリッキーな対策が取ってあって「別にそんな弱点はありません」て言われないか。
  • 見落し: 現実のDBが原因の、TMDに表れていない弱みを見落とさないか。それはTMで再構築すると自動的に消えるから考えなくていいのか。


というわけで「正しい」とは、あるいは「事実を正確に記述する」とは何か、というものすごい入り口のところで躓いている。

*1:あるいは、TMDも正しいしER図も正しい。みんなちがってみんないい