
소프트웨어 시스템가 제공하는 두 가지 가치
→ 행위(behavior) & 구조(structure)
첫 번째 가치
⇒ 요구사항을 기계에 구형하고 버그를 수정하는 일
( 많은 프로그래머들이 행위가 할 일의 전부라고 생각하지만 틀렸음)
두 번째 가치
소프트웨어 software → ‘부드러움을 지니도록’ 즉 기계의 행위를 쉽게 변경할 수 있도록 하기 위해 만들어짐.
소프트웨어는 변경하기 쉬워야함. 변경 사항을 간단하고 쉽게 적용 가능해야 함.
변경사항을 적용하는 데 드는 어려움은 변경되는 범위(scope)에 비례하고 형태(shape)과는 관련 X.
소프트웨어 개발 비용의 증가를 결정짓는 주된 요인은 변경사항의 범위와 형태의 차이에 있음
∴ 개발 비용은 요청된 변경 사항의 크기에 비례
⇒ 아키텍처는 형태에 독립적이어야하고 그럴수록 더 실용적.
기능(동작, 행위, 범위) vs 아키텍처(쉽게 변경, 구조, 형태)
⇒ 아키텍처가 더 중요

소프트웨어의 첫 번째 가치인 행위는 긴급 But 중요도 낮음
소프트웨어의 두 번째 가치인 아키텍처는 중요 But 긴급성 낮음
∴ 소프트웨어 개발팀은 기능의 긴급성이 아닌 아키텍쳐의 중요성을 알고 설득하는 일을 해야 함.