프로그래머를 고용하는 이유는 이해관계자를 위해 기계가 수익을 창출하거나 비용을 절약하도록 만들기 위해서다.
프로그래머는 이해관계자가 기능 명세서나 요구사항 문서를 구체화할 수 있도록 돕는다.
소프트웨어의 두번째 가치는 단어와 관련이 있다.
소프트웨어는 부드러움을 지니도록 만들어졌다. 소프트웨어를 만든 이유는 기계의 행위를 쉽게 변경할 수 있도록 하기 위해서다.
소프트웨어는 반드시 부드러워야 한다 - 즉, 변경하기 쉬워야 한다.
이해관계자는 범위가 비슷한 일련의 변경사항을 제시할 뿐이지만, 개발자 입장에서는 복잡도가 지속적으로 증가하는 퍼즐 판 위에서 이해관계자가 계속해서 퍼즐 조각을 맞추라는 지시를 하는 것처럼 느껴진다.
소프트웨어 시스템이 동작하도록 만드는 것이 더 중요한가? 아니면 소프트웨어 시스템을 더 쉽게 변경할 수 있도록 하는 것이 더 중요한가?
유명하다.
긴급한 문제가 아주 중요한 문제일 일은 드물고, 중요한 문제가 몹시 긴급한 경우도 거의 없다.
소프트웨어의 첫 번째 가치 - 행위
소프트웨어의 두 번째 가치 - 아키텍처
소프트웨어 개발자를 고용하는 이유는 이 딜레마를 해결하기 위해서이다.
기능의 긴급성이 아닌, 아키텍처의 중요성을 설득하는 일은 소프트웨어 개발팀이 마땅히 책임져야 한다.