異なる作業を同時に行うのが難しい問題
from 従来のレイヤードアーキテクチャの問題点
人月の神話 には以下のような記述がある
遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトを更に遅らせるだけである。
しかし、開発の規模が健全な大きさであれば、開発者の数を増やすことで開発速度が上がることも期待できる
が、実現するには アーキテクチャ が並列作業をサポートするようにしておく必要がある
そして、レイヤードアーキテクチャ は同時に作業できるような構造になっていない
理由
すべてものが永続化層上に構築されており、永続化層 → ドメイン層 → Web 層 の順番で実装する必要があるため
データベース中心の設計になってしまう問題#66bc93f675d04f0000e755dd
1 つの機能に対して、同時に作業できる開発者の人数が 1 人のみ
永続化に関するロジックが ビジネスロジック に混ざっているため、最初に インタフェース を定義して、インタフェースに対してプログラミングをする戦略も取れない
サービス が肥大化している場合、異なる機能を異なる開発者で同時に開発するのも難しくなる
同じサービスに対して変更を行い、マージコンフリクト が発生する
場合によっては リグレッション(デグレーション) が起こることも