맨먼스 미신(The Mythical Man-Month)

맨먼스 미신(The Mythical Man-Month)

프레더릭 브룩스 지음
김성수 옮김
Addison Wesley

 

▲ Man-Month : 특정 프로젝트에 투입되는 월간 일력


  프레더릭 브륵스가 지은 맨먼스 미신라는 책이 세상에 나온지도 20년이 지났다. 20년이라는 숫자가 말해주듯 세상은 그 변화의 크기를 가늠하기 힘들 정도로 바뀌었다. 교실 크기의 큰 컴퓨터를 사용하던 시기에 나온 이 책은 손바닥 크기의 컴퓨터를 들고 다니는 지금에도 읽히고 있다. 이 책에서 언급되는 System/360, IBM1401 등은 컴퓨터 역사 교과서에나 나올 법한 컴퓨터이다. 언급되는 메모리의 양도 160KB 등으로 지금의 개인용 컴퓨터에 사용되는 2GB에 비하면 그 크기에서 비교가 되지 않는다. 책에 등장하는 컴퓨터, 언어 등은 바뀌었지만 프로젝트를 수행하는 진리는 바꾸지 않았다. 그래서 20년이 지난 지금에서도 소프트 엔지니어는 이 책을 읽고 있는 것이다.

브룩스의 법칙(Brooks' law)은 프레더릭 브룩스가 자신의 1975년 저서 《인월미신》 (The Mythical Man-Month)에서 "지체되는 개발 프로젝트에 인력을 더하는 것은 개발을 늦출 뿐이다"라고 주장한 법칙이다. 브룩스는 "임산부가 아무리 많아도, 아이를 낳는 데에는 9개월이 걸린다"라고 자신의 주장을 비유적으로 표현했다. 이 브룩스 법칙이 자주 인용되지만, 《인월미신》에 이 주장 바로 위에 써 있던 "극도로 단순화해서 말하면"이란 구문을 생략되어 본뜻이 왜곡되어 전해지기도 한다.

출처 : 위키피디아

  소프트웨어 프로젝트에 성패를 결정하는 하나의 가장 핵심적인 요소는 시간이다. 적시에 소프트웨어가 나오지 않는다면 시장 또는 해결해야 할 문제는 이미 변해 있다. 이런 이유에서 프로젝트를 적시에 끝내기 위해서 인력을 더 투입하게 된다. 두 명의 인력이 한 명의 인력이 하는 일을 할 경우 1/2의 시간 단축 효과를 가져 올 수 있다는 생각에서 기인한다. 실제로 2명이 하는 일을 할 경우 1/2의 시간 단축 효과를 가져 올 수 있을 것인가?


 저자는 다음과 같은 착각으로 프로젝트의 일정이 틀어질 것이라고 이야기 한다.

  1. 모든 일이 정해진 일정대로 진행 될 것이다.
  2. 일을 분할할 경우 정확히 나눌 수 있다.
  3. 업무 진행 원칙을 철저히 지킬 수 있다.
  4. 상황의 진행을 정확히 파악 할 수 있다.
  5. 일정이 늦어지면 추가 인력 투입으로 일정을 단축 할 수 있다.


  저자는 위에서 언급한 것을 “맨먼스 미신”이라고 표현한다. 인간사 모든 일은 다양한 변수에 의해서 변형된다. SW 프로젝트도 예외가 될 수 없다. 다양한 상황으로 인해서 일정에 변경이 가해지는 것은 피할 수 없다. 업무의 내용을 정확히 둘로 나누는 것은 불가능 하다. 분할은 가능하지만 분할된 업무끼리의 커뮤니케이션 시간이 필요하다. 그리고 분할된 업무의 결과물을 다시 합치는 시간이 추가적으로 필요하다. 프로젝트의 진행 사항을 파악하기 위해선 커뮤니케이션이 필요한데, 인력의 추가 투입은 커뮤니케이션의 빈도를 증가시키고 진행 사항의 파악을 어렵게 하거나 추가적 시간을 필요로 한다. 이러한 추가적 시간을 단축시키기 위해서 인력을 투입하게 되고 이는 다시 시간을 더 필요로 만든다.


  맨먼스 미신을 타파하기 위한 방법으로 필자는 다양한 방법을 소개하고 있다. 그 중에 하나가 “외과 수술팀”을 언급하였다. 정예의 소수 그룹에서 한 사람의 리더를 두고 특정 목표를 정한다. 리더를 제외한 나머지 팀원들은 리더가 정한 방향에 맞게 리더를 도와 생산성과 효율성을 증대 시킨다. 이때 리더는 팀의 목표를 달성하기 위해서 팀원들의 역할을 적절히 분배하고 이것을 다시 합치는 역할을 한다.


  20년이라는 시간 동안 수 많은 언어와 개발 툴이 만들어졌다. 언어의 기능은 막강해졌고 개발툴과 하드웨어의 성능은 비약적으로 발전하였다. 그에 비래하여 필요로 하는 SW의 요구사항도 증가하였다. 이러한 이유로 인해서 20년 전에 나온 맨먼스 미신이라는 책이 소프트웨어 공학자들에게 읽히고 있는 것이다.