【要約】コアドメイン・パターン

今回もDDD関連の記事を紹介。

Nick Tuneさんによる「Core Domain Patterns」(2020年)という記事。(一応、日本語での要約の許可は取っている最中)

※あと、鵜呑みにしないでください。他人の知識は情報なので実践・検証を踏まえないと自分の知識にならないので、今回は情報提供の一環ということでお願いします

時間とリソースは有限なので、選択と集中をどうするのかというテーマ。前回の記事もサブドメイン戦略の観点だったが、この記事はコアドメイン戦略に的を絞っている。

Nick Tuneさんの記事には、コアドメイン戦略のパターンが示されている。数が多いので重要そうなものだけをピックアップして紹介&考察してみる。

Context Distillation(コンテキストの蒸留)

https://miro.medium.com/v2/resize:fit:1400/format:webp/1*eXtFuCxdStajdCioEEsgkw.jpeg

According to this definition, a Core Domain is an area of the domain with the opportunity for high business differentiation. This represents a compelling ROI. In addition, the implementation must have at-least a reasonable level of complexity (model complexity). If a simple forms over data (aka CRUD) solution will suffice, we shouldn’t waste time over-engineering.

Using this visualisation, we can go further and identify patterns which will guide our technology strategy and software development investments in the present and the future.

この定義によれば、コアドメインは高いビジネス差別化の機会を持つドメインの領域です。これは魅力的な投資収益率を表している。さらに、実装には少なくとも合理的なレベルの複雑さ(モデルの複雑さ)が必要です。単純なフォームデータ(いわゆるCRUD)のソリューションで十分な場合、過剰な設計に時間を無駄にすべきではない。

この視覚化を使用して、私たちはさらに進んで、現在および将来の技術戦略とソフトウェア開発への投資を導くパターンを特定することができる。

  1. 効率的なリソース配分:コアドメインに焦点を当てることで、企業はリソースを最も価値のある領域に集中させることができる。これにより、効果的な結果を得られる

  2. 明確な戦略的方向性:コアドメインを識別することで、技術とビジネスの目標が明確になり、長期的な戦略的計画を立てやすくなる

  3. 過剰な複雑性の回避:必要以上に複雑なソリューションを開発することを避けることで、開発時間とコストを節約できる。これは、特にリソースが限られている場合に重要だ

  4. 市場での競争力の強化:ビジネスの差別化に寄与するコアドメインに注力することで、競争上の優位性を確立しやすくなる

  5. 将来の投資の方向性:現在の市場と技術の動向を理解し、それに基づいて将来の投資を計画できる

全体的に、この考え方は、ビジネスと技術の両面で重要な領域に焦点を当てることで、効果的な意思決定をサポートし、企業の競争力を高めるのに役立つと思われる。

Decisive Core(決定的なコア)

When a core domain is extremely complex and offers maximum business differentiation potential, this is a decisive capability. Decisive because whichever organisation gets this right is likely to become market leader. The high levels of complexity necessitate that a big investment is required to triumph.

コアドメインが非常に複雑であり、最大のビジネス差別化の可能性を提供する場合、これは決定的な能力だ。なぜなら、この点を正しく把握する組織が市場のリーダーになる可能性が高いからだ。高度な複雑さは、勝利するために大きな投資が必要であることを意味する。

これの何がよいのか。

  1. 市場リーダーシップの機会:決定的なコアドメインに注力することで、その分野でのリーダーシップを獲得し、競合他社に対する顕著な優位性を築ける

  2. 長期的な競争優位:このような複雑で差別化された領域に投資することで、他の組織が容易に模倣できない独自の競争力を確立できる

  3. 大規模な投資の正当化:高い複雑性と差別化の潜在力は、大規模な投資を正当化する。これは、その分野での持続的な成功と成長を保証するために重要だ

  4. イノベーションの促進:高度に複雑な問題に取り組むことは、技術的およびビジネスプロセスのイノベーションを促進する

  5. リスクとリターンのバランス:高リスクだが、成功した場合には高リターンをもたらす可能性がある

このアプローチは、市場での独自性とリーダーシップを目指す組織にとって、戦略的な価値が高い。ただし、大規模な投資とリスクを伴うため、注意深い計画と実行が必要だ。

Short-term Core(短期的なコア)

When a core domain has high differentiation potential but complexity is relatively low, it may be a short-term core. Due to the low complexity, it’s not a defensible advantage and the competition will catch up in a relatively short time frame.

コアドメインが高い差別化の可能性を持ちながらも複雑さが比較的低い場合、それは短期的なコアかもしれない。複雑さが低いため、守りがたい利点であり、競争相手は比較的短期間で追いつくだろう。

これの何がよいのか。

  1. 迅速な市場投入:複雑性が低いため、製品やサービスを比較的迅速に市場に投入し、一時的な競争優位を享受できる

  2. 初期の市場リーダーシップ:短期的なコアを活用することで、特定の領域で一時的に市場リーダーとなることが可能だ

  3. 低リスクのイノベーション:複雑性が低いため、イノベーションへの投資リスクが比較的低く抑えられる

  4. 市場ニーズの迅速な探索:短期的なコアドメインは市場ニーズやトレンドに迅速に対応し、フィードバックを素早く取り入れることができる

  5. 柔軟な戦略調整:競争が激化する前に、他の長期的コアドメインに資源をシフトする柔軟性を提供する

この考え方は、市場の変化に迅速に対応し、短期間で競争上の優位性を得ることを目指す組織にとって有益だ。ただし、競合他社による追随が早いため、継続的なイノベーションと市場の動向に敏感であることが重要である。短期的なコアは、一時的な機会を最大限に活用する戦略の一部として有効に機能する。

Hidden Core(隠れたコア)

A potential anti-pattern to be wary of is the hidden core. If a context has low complexity, a simple forms-over-data CRUD system, it’s not a core domain which requires us to innovate.

However, if this capability represents something which is differentiating for the business, we should be wary — either the competition will easily be able to gain parity or the business is missing a greater opportunity — for example, the complexity is still handled manually by employees and the software system is just replacing paper.

In this situation, the business should ask “Can we leverage the potential of technology here? Can we take manual processes and let computers do all of the hard work which people are currently doing?”.

注意すべき潜在的なアンチパターンは「隠れたコア」です。あるコンテキストが複雑さが低く、単純なフォームデータのCRUDシステムである場合、それは私たちに革新を要求するコアドメインではありません。

しかし、この能力がビジネスにとって差別化要素を表している場合、注意が必要です。競争相手が簡単に同等の地位を得ることができるか、ビジネスがより大きな機会を見逃している可能性があります。例えば、複雑さは依然として従業員によって手動で処理されており、ソフトウェアシステムは単に紙の代わりをしているだけです。

この状況では、ビジネスは「ここでテクノロジーの可能性を活用できるか?現在人々が行っている困難な作業をコンピュータに任せることはできるか?」と自問すべきです。

これはシステムのモデルが実際の複雑さを反映していないというアンチパターン。その悪影響はどういうものが考えられるのか。

  1. イノベーションの見落とし:単純なシステムやプロセスがコアドメインとしての潜在力を持っている場合、それを認識せずにイノベーションの機会を逃す可能性がある

  2. 競争優位の喪失:隠れたコアドメインが明らかにならない場合、競合他社が同じレベルに到達しやすくなり、ビジネスにとっての独自の優位性が失われる恐れがある

  3. テクノロジー活用の遅れ:手動プロセスが依然として主流である場合、テクノロジーを十分に活用していない可能性がある。これにより、効率化や自動化の機会を見逃すことになる

  4. 市場機会の見逃し:隠れたコアドメインを見過ごすことで、市場での大きな機会を逃すリスクがある

  5. 戦略的なミスアライメント:ビジネスの本質的な差別化要因を見落とすと、組織の戦略的な取り組みが最も価値のある領域からずれる可能性がある

隠れたコアドメインを認識し、適切に評価し、活用することは、ビジネスの成長とイノベーションにとって重要だ。組織は、単純なプロセスやシステムの中に隠された潜在的な価値を見逃さないよう、常に注意深く分析を行う必要がある。

---

「コアドメイン・パターン」はビジネスの差別化と技術戦略の整合性を明確にし、リソースを重要な領域に集中させるために使えるツールの一つだが、モデルの複雑さとビジネス差別化の度合いの評価が主観的で難しく、市場と技術の変化に影響を受けやすいというところが課題だとは思う。

適切に利用すると、イノベーションの方向性と投資の優先順位を効果的に導くことができると思うが、継続的な市場分析と柔軟な戦略調整が求められそう…。

元の記事には他のパターンの記載もあるで、興味がある人は読んでみるといいかも。

併せて読みたい

@j5ik2o
歳をとっても霜降り肉!をモットーにしております