본문 바로가기
너희가 프로젝트를 아느냐?

너희가 프로젝트를 아느냐? – 2. Mythical Man-Month

by 글쓰는 프로그래머 2009. 11. 25.

목차

0. 들어가며

1. 프로젝트 예측

2. Mythical Man-Month

3. 프로젝트의 크기가 미치는 영향

4. 프로세스에 대한 오해

5. 프로젝트 생산성

6. 진정 하고 싶은 말

7. 인용 자료

 

Mythical Man-Month[각주:1]


프로젝트와 개발자 관계에 관해서 흔히 하기 쉬운 착각 중에 하나가 개발자를 공장의 생산 기계로 생각한다는 것이다. 따라서 생산량이 부족하면 증산을 위해서 생산 기계를 하나 더 들여놓으면 되는 것으로 단순하게 생각한다.

그러나 프로그램의 개발은 공장에서 제품을 생산하는 단계가 아닌 제품을 개발하는 단계와 같으며, 앞서 프로젝트 비용과 일정에서 설명한 바와 같이, 결코 그림6과 같은 등식은 성립될 수 없음을 유념해야 한다.

그림 6 프로젝트 일정과 투입인력 관계 (DeMarco, The Deadline : A Novel About Project Management, 1997, p. 127)

프로젝트팀의 인원이 커질수록 의사소통을 위한 경로가 기하급수적으로 커질 수 밖에 없는 데 의사 소통 경로가 증가할수록 의사 소통에 따른 문제가 증가하고 이를 효율적으로 관리하기 위한 인원과 프로세스가 추가적으로 필요하다.

그림 7 의사소통 경로의 수는 팀원의 수에 제곱에 비례한다 (McConnel, Code Complete, 2004, p. 893)

그림 7의 경우와 같이 의사소통 경로가 20명이 투입된 경우 190(20*(20-1)/2)가지이며 10명의 경우 45(10*(10-1)/2)가지 이다.

결국 프로젝트의 생산성은 인원에 비례하지 않는 결과를 낳는다.

그림 8 프로젝트 생산성과 팀원 수와의 관계 (DeMarco, The Deadline : A Novel About Project Management, 1997, p. 130)

프로젝트가 망가졌을 때 이를 복구하기 위해 인력을 추가하는 것은 불에 기름을 붓는 것과 같다 (Brooks, 1975). 실제로 프로젝트에 새 인력이 추가되면 추가된 인력이 팀의 생산성에 도움을 주기까지는 일정시간이 필요하며 그 시간까지는 프로젝트에 대한 교육 등의 이유로 팀 생산성을 낮추는 요인으로 작용한다.

그림 9 프로젝트 생산성과 신규 인력의 추가 (DeMarco, The Deadline : A Novel About Project Management, 1997, p. 130)

프로젝트 개발기간의 반이 흘렀을 무렵, 개발자 2명이 추가 투입되었다. 이미 많은 시간이 흘러서 개발자에게 업무를 주자니 업무분석 단계의 history 이해하질 못했고, 개발을 위해서 처음에 만들었던 Library 대한 이해가 부족해서 업무를 나눠서 주질 못했다. 결국 단순한 업무화면을 고친다던 , SQL 만든다던 밖에 없었고 개발자들에게 작업을 주는 조차 부담스러울 때가 있었다.



목차

0. 들어가며

1. 프로젝트 예측

2. Mythical Man-Month

3. 프로젝트의 크기가 미치는 영향

4. 프로세스에 대한 오해

5. 프로젝트 생산성

6. 진정 하고 싶은 말

7. 인용 자료


  1. Frederick P. Brooks의 책 The Mythical Man-Month: Essays on Software Engineering (1975) 에서 제목을 차용하였다. [본문으로]