極北データモデリングスマートフォン用の表示で見る極北データモデリングこの広告は、90日以上更新していないブログに表示しています。モデリング営業のアプローチ方法にA,Bがあるとして(例えば「礼状は手書きで出す」「礼状は印刷して出す」とか)、Aの成約率が10%でBのそれが5%なら、「Aしかやらない」というのは悪くない選択だろう。我々の仕事は営業とは違っている。ある量産品の製造方法にA,Bがあるとして、Aの良品率が98%でBのそれが95%なら、Aで製造するのが正しいだろう。我々の仕事は量産品の製造とは違っている。システム開発における失敗プロジェクトは、営業における失注や工場における不良品のようなものではない。事業を行う上での必要経費ではない。A,Bどちらの開発技法を採用すべきかを、プロジェクトの成功率で決めることはできない。仮に自然キーを採用したプロジェクトの成功率が5割で、サロゲートキーを使った場合のそれが9割だったとして、「すべてのシステムにサロゲートキーを使う」という判断は間違っている。1割のプロジェクトが確実に失敗するからだ。その1割に自然キーがフィットしていたとすれば、完全な判断ミスをしたことになる。この1割の存在を云々することはサロゲートキーに対する批判・攻撃ではない。それはサロゲートキーという技法を安全に使うために絶対必要な何かだ。みんな大好きクレイトン・クリステンセンがこのあたりのことを繰り返し書いている*1。クリステンセンは「現実を観察して理論を作ったら、次はその理論に対する反例を探せ」と言う。自分の理論を支持する事例などいくら集めても意味がないのだ。理論が失敗する事例を積極的に探して、失敗する条件を明らかにすることで初めて理論は改善される。「こうすれば、結果は何%の確率でこうなる。結果には...という傾向が見られる」という相関関係の記述から、「〜という条件が揃ったところででこうすれば、結果は必ずこうなる」という「条件付き因果関係の言明」に理論が進化する、のだそうだ。後者の理論があって初めて、我々は(全体の傾向ではなく)個々の事例の結果を予測することができるようになる。これから書くことはサロゲートキーへの批判ではない必要なのは、技法が通用する時・しない時の、正確な場合分けだ。これは、その技法を使っている人にはできないことだと思う。「自然キーはいつ変わるかわからないから、すべてのテーブルにサロゲートキーを振るべきだ」と信じている人は、世の中に「(正当な理由をもって)サロゲートキーを振ることが不可能なシステム」があることに気付いていないだろう。内側から限界は見えないのだ。よって、ある技法の限界を探るには、その技法を使っていない人の協力が必要になる。ところで現状の俺は完全な自然キー派だ。いま運用担当しているお客さん(2社)のシステムは、1つは本番DB内のテーブル数が900本、もう一つは2000本以上あるが、サロゲートキーを付加しているテーブルは1つもない。サロゲートキー派の人には地獄のような状態に見えると思うが、これらはいわゆる情報系のシステムであって、基幹系からデータの供給を受けて動いているので、自前でサロゲートキーを振ることが不可能*2なのだから仕方がない。近日中に、そういう立場からサロゲートキーの適用範囲を云々するつもりだが、これは既述の通り自然キー派によるサロゲートキーへの批判・攻撃ではない。