소프트웨어의 두 가지 가치
모든 소프트웨어 시스템은 이해관계자에게 행위(Behavior)
와 구조(Structure)
를 제공한다.
행위
- 개발자는 이해관계자가 기능 명세서나 요구사항 문서를 구체화할 수 있도록 돕는다.
- 이러한 요구사항을 만족하도록 코드를 작성한다.
아키텍처
- 소프트웨어가 가진 본영의 목적을 추구하려면 소프트웨어는 반드시 변경하기 쉬워야 한다.
행위 vs 아키텍처
- 완벽하게 동작하지만, 수정이 아예 불가능하다면?
- 요구사항을 받아들이기 힘들고, 따라서 프로그램은 거의 쓸모가 없어진다.
- 동작은 하지 않지만, 변경이 쉬운 프로그램이라면?
- 요구사항을 반영하여 변경하기 쉽고, 이를 유지보수할 수 있다.
- 앞으로도 계속 유용한 채로 남는다.
아이젠하워 매트릭스
!https://cms.boardmix.com/images/kr/articles/2023/skills/eisenhower-matrix02.png
- 긴급하고 중요한
- 긴급하지는 않지만 중요한
- 긴급하지만 중요하지 않은
- 긴급하지도 중요하지도 않은
아키텍처를 위해 투쟁하라
- 아키텍처가 후순위가 되면 시스템을 개발하는 비용이 더 많이 든다.
- 일부 또는 전체 시스템에 변경을 가하는 일이 현실적으로 불가능해진다.