[TMMM] #5 두 번째 시스템 효과

문연수·2022년 10월 25일
0

TMMM

목록 보기
5/17

1. 아키텍트를 위한 소통 훈련

 건축물을 설계하는 아키텍트는 나름의 추정 기법을 써서 예산에 맞추어 작업을 진행한다. 이 추정 금액은 향후 도급 입찰 시에 확정되거나, 수정되는데, 입찰가가 전부 예산을 초과하는 때 도 가끔 있다.

컴퓨터 시스템이나 프로그래밍 시스템의 아키텍트도 위와 비슷하나 다음의 특징이 있다:

  1. 설계 초반부터 원한다면 거의 언제라도 입찰가를 받을 수 있다.
  2. 설계에 만족한 정도에 따라 입찰 금액을 올리고 내릴 수 있는 단 한명의 입찰자와 거래한다.

- 추정 비용이 너무 높게 잡힌 경우

만일 추정 비용이 너무 높게 나왔다면 아키텍트는 두 가지의 해법을 가진다:

  1. 설계를 축소
  2. 비용이 적게 드는 구현 방법으로 대응

후자는 구현자가 해야 할 일은 아키텍트가 함으로써 그의 방식에 도전 하는 감정이 개입되는 행동이다. 이 과정을 원활하게 하기 위해선 아키텍트는 다음을 명심해야 한다:

  • 구현 과정에서 창의성을 발휘할 책임은 구현자에게 있음을 기억하고, 지시가 아닌 제안 을 하도록 한다.
  • 명세하는 모든 것에 대해 적어도 한 가지 구현 방법을 제시 할 수 있도록 항상 준비하고, 목적을 똑같이 만족하는 다른 방안도 수용 할 수 있어야 한다.
  • 이런 제안은 조용히 개인적으로 이야기 한다.
  • 개선안을 제시한 공을 인정 받는데 미련을 두지 말아야 한다.

구현 담당은 대개 아키텍트를 변경하자고 응수할 것이다. 그 말이 맞는 때도 있는데, 사소한 기능이라도 실제로 구현해보면 의외로 비용이 많이 들 수 있기 때문이다.

2. 자기절제: 두 번째 시스템 효과

 아키텍트의 첫 작품은 단출하고 깔끔하다. 자신이 무엇을 하는지 스스로도 잘 모른다 는 것을 알고 있기에, 일을 함에 있어 조심스러우며 대단히 자제 하게 된다.

 두 번째 것은 한 사람이 설계할 수 있는 것 중 가장 위험한 시스템 이다. 첫 번째를 만들면서 조심스레 한편으로 밀쳐 두었던 온갖 아이디어와 장식을 도입하여 설계가 과도 해진다.

 두 번째 시스템 효과는 순수하게 기능적인 장식과는 조금 차이가 나는 또 다른 징후로 보여준다. 그것은 기본적인 시스템의 가정이 변해서 존재 가치가 없어진 기술을 계속 개선하려는 경향 이다.

- 두 번째 시스템 효과를 어떻게 회피할 수 있을까?

 아키텍트가 두 번째 시스템 효과를 어떻게 회피할 수 있을까? (두 번째 시스템을 건너뛸 도리는 없다)

  1. 그 시스템이 끼치는 유별난 위험을 자각하고, 기능적인 장식을 더하는 일, 전제와 목적의 변경으로 불필요해진 기능을 확장하는 일을 삼가도록 스스로 자제 시킨다.
  2. 세부 기능 하나하나에 값(x의 가치 는 한번 수행할 때 m 바이트의 메모리n 마이크로초 이상은 아니다)을 부여한다. 이 값들은 초반의 의사결정에 안내 역할을 하며, 구현 중에도 모든 이들에게 지침과 경고가 된다.
  3. 최소 두 개의 시스템을 개발한 경험이 있는 사람을 선임 아키텍트로 고수해야 한다.

 필자 역시 두 번째 시스템 효과를 많이 겪었는데, 당시에는 뭐가 문제인지 몰랐다. 이렇게 풀어서 쓰면 정말 당연한 소리라고 생각할 수 있는데, 실제 개발에 들어서면 이런 디테일이 안 보인다. 작가의 통찰력이 느껴지는 챕터였다.

출처

[책] 맨먼스 미신: 소프트웨어 공학에 관한 에세이 (프레더릭 브룩스 지음, 강중빈 옮김)

profile
2000.11.30

0개의 댓글