Post
EN

두 가지 가치에 대한 이야기

행위

​

소프트웨어의 첫 번째 가치는 바로 행위다.

  • 프로그래머를 고용하는 이유는 이해관계자를 위해 기계가 수익을 창출하거나 비용을 절약하도록 만들기 위해서다.

​

아키텍처

소프트웨어의 두 번째 가치는 ‘소프트웨어’라는 단어와 관련이 있다. ‘소프트웨어’라는 단어는 ‘부드러운soft’과 ‘제품ware’이라는 단어의 합성어다.

​

소프트웨어는 ‘부드러움을 지니도록’만들어졌다. 소프트웨어를 만든 이유는 기계의 행위를 쉽게 변경할 수 있도록 하기 위해서다. 만약 기계의 행위를 바꾸는 일은 어렵게 만들고자 했다면, 우리는 소프트웨어가 아니라 하드웨어라고 불렀을 것이다.

​

소프트웨어가 가진 본연의 목적을 추구하려면 소프트웨어는 반드시 ‘부드러워’야 한다.

다시 말해 변경하기 쉬어야 한다. 이해관계자가 기능에 대한 생각을 바꾸면, 이러한 변경사항을 간단하고 쉽게 적용할 수 있어야 한다.

​

소프트웨어 개발 비용의 증가를 결정짓는 주단 요인은 바로 이 변경사항의 범위와 형태의 차이에 있다.

바로 이 때문에 개발 비용은 요청된 변경사항의 크기에 비례한다. 또한 개발 첫 해가 다음 해보다 비용이 덜 들고, 다음 해에는 그 다음 해보다 비용이 적게 드는 이유도 이 때문이다.

​

더 높은 가치

기능인가 아니면 아키텍처인가? 둘 중 어느것의 가치가 더 높은가? 소프트웨어 시스템이 동작하도록 만드는 것이 더 중요한가? 아니면 소프트웨어 시스템을 더 쉽게 변경할 수 있도록 하는 것이 더 중요한가?

​

업무 관리자의 변경 요청에 “변경 비용이 너무 커서 현실적으로 적용할 수 없다”라고 대답하면, “실질적으로 변경이 불가능한 상태에 처할 때까지 시스템을 방치했다”며 당신에게 화낼 가능성이 있다.

​

아이젠하워 매트릭스

​

소프트웨어의 첫 번째 가치인 행위는 긴급하지만 매번 높은 중요도를 가지는 것이 아니다.

소프트웨어의 두 번째 가치인 아키텍처는 중요하지만 즉각적인 긴급성을 필요로 하는 경우는 절대 없다.

​

일의 우선순위를 매길 수 있는 방법은 아래와 같다.

​

  1. 긴급하고 중요한

  2. 긴급하지는 않지만 중요한

  3. 긴급하지만 중요하지 않은

  4. 긴급하지도 중요하지도 않은

​

아키텍처, 즉 중요한 일은 이 항목의 가장 높은 두 순위를 차지하는 반면, 행위는 첫 번째와 세 번째에 위치한다는 점을 주목하자.

​

아키텍처를 위해 투쟁하라

​

이러한 책임을 다하려면 싸움판에 뛰어들어야 하며, 더 정확히는 ‘투쟁’해야한다.

맡은 업무 자체를 봐도 소프트웨어 아키텍트는 시스템이 제공하는 특성이나 기능보다는 시스템의 구조에 더 중점을 둔다. 아키텍트는 이러한 특성과 기능을 개발하기 쉽고, 간편하게 수정할 수 있으며, 확장하기 쉬운 아키텍처를 만들어야 한다.

​

하나만 기억하자. 아키텍처가 후순위가 되면 시스템을 개발하는 비용이 더 많이 들고, 일부 또는 전체 시스템에 변경을 가하는 일이 현실적으로 불가능해진다.

​

​

This article is licensed under CC BY 4.0 by the author.