A:「どちらのDBに保存しても一応作れますが、個人的にはこっちのDBに作成した方がいいと思ってます」
B:「それってそもそもどのように情報が扱われて、サービスとしてどのような目的で運用されるか決まってるんですか。その情報の保有期限とか・・・」
ざっくり上記のような会話が開発会議で上がった。
ここで感じるのは、Aはモデルレベルの話をしていて、Bはドメインレベルの話をしている、ということである。
ドメインとは、対象ユーザーの活動や関心と関係があるもの、平たく言えば目的になるだろう。
単純にシステムを作る、という観点ではなく、結局サービスとしてどのような価値を生み、それがどのような手段で以ってその価値が実現されていくか、という観点の考察(設計)が無くして、そのサービスの良し悪しは決めることができないだろうと思う。
動くシステムを作ることはできるかもしれないが、前提となるシステム設計(モデル的な定義ではなく、ドメイン指向での定義)がない場合、そのシステムには成功も失敗もない。いやむしろ何らかの目的が達成されないという意味では全て失敗になるだろうと思う。
事業会社であれば当然の観点なのだろうが、このようなドメインレベルでの設計がないままシステムを作るとして、受託開発であれば問題ないのかもしれないが、自社開発企業ともなるとかなり問題だと思う。
いわゆる社内受託開発のような構造になってしまった時は開発サイドからドメイン設計の提案ができると良いのだろうとも思う。