思考と現場の間で

「いいサービスづくり」のために、組織づくりやソフトウェア設計など、考えていることを書きます

【DDDメモ】モデルの整合性を維持する:順応者

順応者

エリック・エヴァンスドメイン駆動設計 P.371

 上流チームのモデルに隷従することで生じる、境界づけられたコンテキスト間での複雑な変換を取り除くこと。確かに下流の設計者がとれるスタイルは制限され、そのアプリケーションにとって理想的なモデルが作れなくなるかもしれないが、順応することを選ぶことで統合は大幅に簡略化されるのだ。また、ユビキタス言語を供給者チームと共有することにもなる。供給者がハンドルを握っているのだから、供給者がコミュニケーションしやすくした方がよい。人の役に立ちたいという思いから、彼らは情報を共有してくれるだろう。
 この決定により、上流への依存関係は深くなり、アプリケーションの可能性は上流モデルに今ある能力と純粋に付加的に行われる機能追加によって制限される。心情的には全く魅力的でないので、実際には選択すべき時でも、用いられないことが多い。

 順応者になる方がうまく行ったり効率的な場合はあった。短期的なプロジェクトであったり、上流が大きかったり上下関係で上の場合だ。理想は色々ありつつも、システム的にもチームとしても順応せざるを得ない、またはそのほうが良いことは多い。また、選択したくない心情もわかる。ただ、何が最も高い価値なのかという視点で見れば、順応すべき場合があるのもその通りだと思う。「順応者」という考え方は現実感がありありと伝わってくる…。

エリック・エヴァンスドメイン駆動設計 P.372

 ここまで、境界づけられたコンテキスト同士の統合における、さまざまな共同作業のやり方を見てきた。非常に協力的な共有カーネルや顧客/供給者チームから、一方的な順応者までさまざまなものがある。次の最終ステップでは、関係性に対する、より悲観的な見方へと進む。ここでは、向こう側からは協力も得られなければ、役に立つ設計も得られないと想定される…。