11章
設計を進化させる
目まぐるしく変化する今の世の中で、企業はじっとしている余裕はありません。他社との競争で生き残るために、変化を続け、発展し、さらには、自社のやり方を抜本的に変えていくことが必要です。ソフトウェアを設計する時、この現実を無視してはいけません。事業からの要求に適切に対応するために、事業は変化し続けるという現実に、正面から取り組む必要があります。よく考えられたすばらしい設計でも、変化をうまく扱えないソフトウェアは、時間がたつにつれ、修正や拡張がやっかいで危険になります。この章では、ソフトウェア設計で考慮すべき四つの変化のベクトル、つまり、事業活動、組織の構造、業務知識、そしてシステムの成長について検討します。
11.1 事業活動の変化
第2章で、事業を構成する業務領域を次の三つのカテゴリーに分類することを学びました。
中核
競争優位を得るために、競合他社とは異なる独自のやり方で活動する領域
補完
他社とは異なるやり方が必要だが、他社との差別化につながらない領域
一般
どの会社でも同じやり方をする領域
これまでの章で、業務領域のカテゴリーの違いは、設計方針と実装方法の選択に影響することを見てきました。つまり以下の設計判断です。
- 区切られた文脈の境界をどう設計するか
- 文脈どうしをどう連係させるか
- 業務ロジックの複雑さに対応した実装方法のどれを選択するか
事業活動の要求に応えるための設計活動では、対象となる業務領域とそのカテゴリーを特定することがきわめて重要です。それだけではありません。業務領域の進展に機敏に対応することが同じように重要です。企業が成長し進化していくにつれ、ある業務領域のカテゴリーが別のカテゴリーに変化することは、めずらしいことではありません。そういう変化の具体例を見てみましょう。 ...
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.