2章
業務知識を発見する
本番環境にリリースされるのは開発者の理解(あるいは誤解)です。業務エキスパートの知識ではありません。
──アルベルト・ブランドリーニ*1
前の章で、事業活動を探求するところから出発しました。事業領域はどこか、そして競合する他社と差別化する基本方針は何かを特定する方法を学びました。つまり、業務領域の細分化とカテゴリー(中核、補完、一般)です。
この章も事業活動の分析を続けます。しかし、方向は「深さ」に変わります。事業活動を深く理解するために、それぞれの業務領域の内部、つまり業務機能と業務ロジックに焦点を合わせます。この章で学ぶのは、意図を適切に伝え、知識を共有するためのドメイン駆動設計の基本的な道具である同じ言葉(Ubiquitous Language)です。この章では、事業活動の複雑な細部を知る方法として同じ言葉を使います。以降の章では、同じ言葉を業務ロジックのモデリングと実装の方法として使います。
2.1 事業の課題
私たちがソフトウェアを開発するのは事業課題を解決するためです。ここでいう「課題」は数学の問題やなぞなぞとは違います。あらかじめ決まった答えはありません。事業活動における課題とは、もっと広い意味を持ちます。業務プロセスやワークフローの最適化、手作業の最小化、経営資源(ヒト、モノ、カネ)の管理、意思決定の支援、そして業務データの管理などです。
事業課題は、事業レベルと業務領域レベルの両方に現れます。事業の目標は、顧客がかかえる課題の解決です。第1章のクロネコヤマトの例で考えてみましょう。顧客の課題は荷物の迅速な移動です。クロネコヤマトは、配送のやり方を最適化して、顧客の課題を解決します。 ...
Get ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.