第2章 2つの価値のお話

全てのソフトウェアはステークホルダーに振る舞いと構造の2つのことなく価値を提供する
開発者はこの2つの価値を維持する責任がある

振る舞い
ステークホルダーのマシンが要求を満たせるようにコードを書く

構造(アーキテクチャ)
ステークホルダーが機能を変更したいと思えば、その変更を簡単にできるようしなければならない
変更の難易度は変更の形状ではなく、変更のスコープに比例する必要がある

アーキテクチャが特定の形状を選択していると、新しい機能に適さない可能性が高くなっていく
しかがって、形状にとらわれないアーキテクチャにした方が実用的

ソフトウェアの振る舞いは、緊急だが常に重要とは限らない
ソフトウェアのアーキテクチャは重要だが、常に緊急とは限らない

「緊急だが重要ではない」ものと、「緊急かつ重要」なものの区別がつかない間違いはよくある
そのため、システムの重要ではないことを優先して、システムの重要なアーキテクチャーを無視することにつがなる
開発チームには機能の緊急性よりも、アーキテクチャの重要性を強く主張する責任がある