모든 소프트웨어는 이해관계자에게 서로 다른 두 가지 가치를 제공한다.
행위(Behavior)와 구조(Structure)이다.
행위
누군가가 프로그래머를 고용하는 이유는 아래와 같다.
- 수익 창출
- 비용 절약
이해관계자는 기능 명세서와 요구 사항 명세서를 고용된 프로그래머에게 제공한다.
프로그래머는 이러한 요구 사항들을 만족하도록 코드를 작성하며, 요구 사항을 위반할 때 디버깅을 진행한다.
구조
소프트웨어(software)는 부드러운(soft)과 제품(ware)의 합성어이다. 여기서 부드럽다는 변경하기 쉽다는 것을 뜻한다. 즉, 소프트웨어는 변경하기 쉬운 제품을 의미한다.
프로그래머는 변경하기 쉬운 제품을 만들기 위해 소프트웨어의 구조를 잘 만들고, 이 구조를 향상하거나 유지해야 한다.
더 높은 가치(행위 vs 구조)
프로그래머는 두 가지 가치 모두를 최상으로 유지해야 한다. 하지만, 시간이 없거나 시간이 없거나 시간이 없어서 둘 중 하나를 포기하는 경우가 많다. (정말 그냥 시간이 없다. 중요해서 여러 번 썼다.)
그리고 프로그래머 대부분은 구조를 포기하게 된다. 그러면서 소프트웨어는 변경하기 불가능할 정도로 점점 딱딱해지기 시작한다. 결국에는 소프트웨어 변경이 불가능해서 행위 가치마저도 포기하게 된다.
다시 말하지만, 소프트웨어는 변경하기 쉬운 제품이다. 그러므로 구조가 더 중요하다.
마치며...
원래 이 장의 마지막에는 "구조를 지키기 위해 투쟁하라."라고 적혀있다. 그것도 꽤 길게...
맞다. 그래야 한다. 하지만 어떻게 투쟁해야 하는지를 모르겠다. 두 가지 가치 중 하나를 선택하는 것은 분명 프로그래머이다. 즉, 내부에 적이 있다. 제거해야 하나...
'편(編) > 책' 카테고리의 다른 글
Clean Architecture - 1장. 설계와 아키텍쳐 (0) | 2021.11.02 |
---|---|
일 잘하는 사람은 글을 잘 씁니다:글쓰기가 직장인을 전문가로 만든다 (0) | 2021.05.26 |