ドメイン駆動設計のゴール
成瀬氏がここで示したドメイン駆動設計のゴールは次のとおり。
- 開発者とエキスパートが協力しドメインを正しく捉える
- 真に役に立つモデルをつくり、真に役に立つソフトウェアをつくる
ただ、言うはやすし、その道のりは険しい。開発者だけで完結しないからだ。開発者だけがドメイン駆動設計をやりたいと思ってもうまくいかない。それがドメイン駆動設計の実践における難しさに直結している。
ドメイン駆動設計は、むしろステークホルダーやエキスパートのためのもの。彼らのビジネスを補佐するものであって、真に役立つソフトウェアをつくるための方法だ。関係者全員が一丸となってドメイン駆動設計でやりたいと思わない限りは実践できない。
それには、チームを巻き込むことだと成瀬氏は言う。いかに賛同者を増やすか。『ドメイン駆動設計入門』を書いた理由はそこで、最初の一歩としてパターンだけをまとめた。もちろん、パターンだけでは難しい。あくまで、パターンは手段。ただ、そこから入ってドメイン駆動設計を勉強し、実践していく。それが今、求められるのではないかと成瀬氏は言う。
最後に、ドメイン駆動設計の「本来の目標」を次の図で示した。
コードは人の曖昧さを受け入れない。うまくいかないなとなったときこそ、ドメインの捉え方に立ち返って改めて見つめ直す。こうした双方向にフィードバックを回す、イテレーティブな開発、継続的な、反復的な開発こそがドメイン駆動設計の目標なのだ。
さらに成瀬氏がゴールと目するのはその先。お互いのことを理解し真に役に立つモデルを作り上げ、真に役に立つソフトウェアを開発することだ。「ともにつくる」を実践する、それがまさにソフトウェアの未来を守ることにつながると言う。