はじめに
ドメイン駆動設計についての記事です。
今回、コードはなく、エンジニアと専門家(今回は店主)との会話から、DDDについての学びを深めていきます。
背景・目的
DDDは、業務を正しくとらえ理解し、コードに落とし込むことまでが大切になります。
では、その業務はどうやったら正しくキャッチできるか。
一つに、
専門家に話を聞いて、双方理解することがあります。
しかし、これが難しい。。
なぜ難しいのか端的に説明すると、
専門家とエンジニア(素人)は背景が違うからです。
もっている知識や経験に差があるため、理解が困難になります。
例えば、野球経験者と素人が大谷選手の凄さを語る場合、視点が異なる可能性はあります。
実際に課題を15分間で挑戦してみました。もし時間があればやってみてください。
課題
まず、自分の想像だけで、フードデリバリーの業務モデルを簡単に図にします。
消費者 ⇆ 配送業者 ⇆ お店
次に、Chatgptに以下のプロンプトを出しました。
あなたはフードデリバリーに出店している、個人経営の中華料理店の店主です。
私はシステム開発者で、あなたの業務を理解するためにヒアリングをします。
・最初の悩みは「最近、評価が下がって注文が減っている」です。
・その悩みの本当の原因を、あなた自身で一つ設定してください。
ただし、店主自身もその原因にまだ気づいていない設定にしてください。
・店主として自然に、具体的なエピソードを交えて答えてください。
・聞かれたことにだけ答え、原因を自分から話さないでください。
・質問が表面的であれば、表面的な答えを返してください。
・私が「答え合わせ」と入力したら、設定した原因と、
それにたどり着くために有効だった質問を教えてください。
要は、売上落ちたから原因探ろうというわけです。
以下はQAの一部やり取りです。
結果、想定していた原因は大まかに割り出せることができました。
原因を割り出すにあたり、業務モデルを想像でもいいので思い描いていた所にあると考えています。
配達に要因があるのか、店側に要因があるのかを調査しました。
そうすると、調理時間が掛かった件と出て、そこを深堀していきました。
しかし、レビュー内容や注文時間とレビュー書き込み時間の関係性などは把握できていないため改善ポイントだと感じました。
フードデリバリーの業務モデルは細かく分けると、例をあげると以下になります。
消費者 → お店(注文受付、決済、配達員手配、調理)→ 配達員 → レビュー
おわりに
業務で落ちた原因と推測はあっていましたが、より詳細な原因分析までできるとさらに、業務知識も増していくと思いました。
参考記事





