エリックエバンスのドメイン駆動設計の「第1章 知識をかみ砕く」まとめ

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

今回は、「第1章 知識をかみ砕く」のまとめです。

効果的なモデリングの要素

  1. ドメインモデルと実装を結びつける → 実装を通して、モデルにフィードバックをかけることが重要

  2. ドメインモデルに基づいて、言語を洗練させる → モデルがプロジェクトの中心で、他のドキュメントなどはモデルから言葉を取り出す

  3. 知識豊富なドメインモデルを開発する → データモデルと違い、振る舞いと業務ルールも表現する

  4. ドメインモデルを蒸留させる → イテレーションごとに重要な概念を追加し、不要な概念を削除する

  5. ドメインモデルの言葉をブレーンストーミングなどで実験する → 会話の表現がわかりやすいか、ぎこちないかを検証する

の5点が挙げられてました。

今、実際の開発現場での経験からすると、3のスキルが不足しているなと痛感していて、何をどこまで細かく表現するのかってところは自分の中で答えを見つけ出せていない状況です。

また、1、4、5で説明している内容は、僕も実体験でその通りだと思います。

知識のかみ砕き

  1. ドメインエキスパートの頭にある膨大な情報から役に立つ知識をモデル化する

  2. イテレーションごとに知識の深さを広げていく

  3. メンバ間で一緒にモデルをかみ砕くことにより、メンバ間のやりとりを変化させていく

  4. 最終的には、プロジェクトで流れ続ける情報を体系化するためのツールとしてモデルを位置付ける

知識のかみ砕きの流れはこんな感じで書かれてました。

ここまでできれば、モデルを中心に、アジャイルをうまく回せるだろうなっと想像しました。

もう一度、ドメイン駆動設計を意識しながら、アジャイルの勉強をしても面白いだろうなー。

で、上に書いてなくて、すごく重要なことが書かれてました。

その内容として、

技術だけに注力して作られたソフトウェアはドメインエキスパートの考え方と結びつかない

です。

ドメイン駆動設計を採用しているのも関わらず、業務中心ではなく、技術中心になっているということですね。

この内容はこの本で何度も出てくる重要な概念になります。

僕らエンジニアの頭は、どうしても技術中心になりがちなので、意識的に業務を中心に捉える必要があります。

以上が「第1章 知識をかみ砕く」のまとめです。

ドメインモデルを中心に、プロセスやメンバ間のやりとりを日々成長させていく。っていうのは、すごいいいことですね。

ぜひ、今の現場でも実践できるように工夫してやっていきたいと思いました。