맨먼스
IT 위키
더 많은 작업
- Man-Month; Person-Month, 인월(人月), M/M
- 한 사람이 한 달 동안 할 수 있는 일의 양을 1로 잡아, 투입 인원과 투입 기간을 곱해 소프트웨어 개발 노력(effort)을 나타내는 단위
- 맨먼스라 읽고 M/M이라 쓴다.
- 불필요한 남녀 구분을 없애기 위해 P/M(Person-Month)이라고 쓰기도 한다.
- 같은 생각으로 날 단위는 맨데이(Man-Day, M/D, 인일), 시간 단위는 맨아워(Man-Hour, 인시)를 쓴다.
- 개발자 2명이 5개월 동안 일했다면 노력은 2 × 5 = 10 M/M 이다
- 투입 인원이 중간에 바뀌면 구간별로 나눠 곱한 뒤 더한다
- 12개월 프로젝트에 처음 5명이 투입되고, 7개월째가 시작될 때 2명이 추가되어 끝까지 일했다면
- 1~6월: 5명 × 6개월 = 30
- 7~12월: (5 + 2)명 × 6개월 = 42
- 합계: 30 + 42 = 72 M/M
- "n개월 시작 시점에 투입" 은 n개월째를 포함한다. 12개월 중 5개월째 시작에 투입되었다면 5~12월, 즉 8개월을 일한 것이다. "n개월이 지난 뒤 투입" 이면 12 − n 개월이다
- 두 명의 개발자가 5개월 동안 10,000 라인의 코드를 개발한 경우
- 노력 = 2 × 5 = 10 M/M
- 생산성 = 10,000 ÷ 10 = 1,000 LOC/M/M
- 날 단위 생산성은 LOC/MD(하루 한 사람이 작성한 라인 수)로 쓴다. 분모의 맨데이는 인원 × 실제 일한 날 수다 → LOC
- 개발자의 월 급여가 500만 원이고 노력이 4 M/M 인 프로젝트
- 총비용 = 500만 원 × 4 = 2,000만 원
- 계산상으로는 2명이 2개월, 4명이 1개월에 끝낼 수도 있지만, 실제로는 아래 '맨먼스 미신' 때문에 인원과 기간을 자유롭게 바꿀 수 없다
프레더릭 브룩스는 1975년 『맨먼스 미신(The Mythical Man-Month)』에서 사람과 개월은 서로 바꿀 수 있는 단위가 아니다라고 지적했다. 일을 나눌 수 없거나, 나눈 일 사이에 의사소통이 필요하면 인원을 늘려도 기간이 그만큼 줄지 않는다. 인원이 n명이면 의사소통 경로는 n(n−1)/2 개로 늘어난다. 늦어진 프로젝트에 인력을 더하면 더 늦어진다는 브룩스의 법칙이 여기서 나왔다.