DDD
ドメイン駆動設計
モブプログラミング

ちょっとずつ読むドメイン駆動設計 第一部 ドメインモデルを機能させる 第一章 知識をかみ砕く2

モブモデリングのすすめ

知識の噛み砕きは独りで行う作業ではない。開発者とドメインエキスパートからなるチームが共同して行うもので、たいていは開発者が率いる。(第一部 第一章より)

ポイントは2つ。

1. チームでやる

開発者とドメインエキスパートからなるチームで行う。メンバー全員で行う。

メンバ全員がモデルを一緒に噛み砕くことで変化する。(第一部 第一章より)

今関わっているプロジェクトでは、モデルは(特に新規で作る場合)メンバー全員が集まって作っています。

効率が悪いと思うかもしれない。
誰かが作って後からレビューすればいいかもしれない。

これはやってみないと良さがわからないかもしれないです。

以下、全員でやってみた感想です。

  • 複雑なドメインであるほど集まって議論する方が深いモデルになっていくのがわかります。(白熱しすぎることもあります・・・><;)
  • 全員がドメインに詳しくなります。
  • 日本人にとっては英語への変換がある。みんなで議論することでしっくりくる言葉が思い浮かびます。逆にしっくりこない言葉も浮き彫りになります。
  • ビジネスにおいて重要な箇所や、複雑な箇所が自ずと浮き彫りになる。
  • 普段の会話が本当にモデルの言葉を使うようになります。

全員でモデルを作る作業を自分で勝手にモブモデリングと呼んでいます。

この辺り、色々伝えたいことがあるので別途記事でまとめたいと思います。

2. 開発者が主導する

ドメインエキスパートから一方的に情報を貰うだけでは、深いモデルになりません。
開発者側が積極的に関わることで、お互いに学びが生まれてモデルは良いものになっていくのだと思います。

特に間にマネージャーや調整役が入ってしまうと、開発者側から質問する機会はあれど、お互い一方通行で深いモデルに関する議論がされていかないです。

開発者が自ら主導することで、その辺りを防止できます。

全員で、開発者が主導し、学びながら深いモデルを追求する。