進化的アーキテクチャ ―絶え間ない変化を支える

昨日読了。

進化的アーキテクチャ ―絶え間ない変化を支える

進化的アーキテクチャ ―絶え間ない変化を支える

 

意外な良書。マイクロサービスアーキテクチャーに至る、いろいろなアーキテクチャーを「進化的」かどうかで比較する。

進化的アーキテクチャ構築のための手引。イミュータブル、可逆可能な判断、予測可能ではなく進化可能、腐敗防止層、犠牲的アーキテクチャ(試行錯誤で捨てる)、外部(ツール、フレームワーク等)依存性を減らす、スナップショットではなくCD、内部バージョニング。コードの再利用を避け結合より重複を選ぶ、適応度関数。

アーキテクチャーは、漸進的な変更が可能か、適応度関数による誘導的な変更が可能か、適切な結合か、で評価する。結合度は無共有(共有が無いという意味ではなく、絡まった結合点が無いこと)を目指す。過去のアーキテクチャーはインフラ、ミドルウェアが高価だった時代の産物。そのため、共有することが必要であった。

組織は、逆コンウェイ戦略。機能横断型チームで調整の摩擦をなくす、機能性ではなくビジネス能力を中心とした組織化、プロジェクトよりもプロダクト、統制のために企業規模の適応度関数を作る。

進化的アーキテクチャを選択しない場合。元が泥団子、もっと支配的なアーキテクチャ特性がある、MVPなど犠牲的アーキテクチャ