브룩스의 법칙(Brooks' law) 소프트웨어공학 / ITPE('12~) 2013. 9. 20. 9:35 https://blog.naver.com/yulian/10176590509 |
■ MM(Man Month)의 한계, 브룩스의 법칙(Brooks' law)
- "지연되는 프로젝트에 인력을 더 투입하면 오히려 늦어진다"는 이론
- 개발자를 추가할수록 그들 사이에서의 미팅, 인터페이스 합의, 의사소통 등과 같은 커뮤니케이션 비용이 월등히 증가하여 프로젝트가 지연되는 현상, N명 추가시 N*(N-1)/2 만큼의 의사소통 비용 증가
■ 브룩스의 법칙의 개념도
- 프로젝트 인력이 3명인 상황에서 1명 충원시 의사소통라인은 3에서 6으로 복잡도가 증가함
■ 브룩스의 법칙을 고려한 일정단축 방법
방법 | 설명 |
Fast Tracking | 순차적으로 진행되는 작업을 재조정하여 병행으로 수행하는 일정단축 기법 |
전문인력 투입 | 해당 도메인에 경험이 우수한 인력을 투입하여 학습시간을 단축하는 방법 |
아웃소싱 | 외부 전문업체에 위탁하여 Fast Tracking과 전문인력 투입의 효과를 모두 가짐 |
잔업 | 초과근무로 일정단축 효과, 장기적 측면에서는 오히려 생산성저하 발생가능 |
요구사항 변경 | 고객과 협상을 통해 우선순위에 기반한 기능축소 또는 우회적인 방법으로 구현 |
- 프로젝트의 성격, 작업분할 가능정도, 전문인력의 역량 등을 종합적으로 고려하여 선별적 적용
출처: https://m.blog.naver.com/finway/221187035265
소프트웨어 공학에서는 브룩스의 법칙(Brook's Law)라는 것이 있다. 프레더릭 브룩스라는 사람이 <맨 먼스 미신>(The Mythical Man-Month)라는 책에서 말한 법칙으로 다음과 같다.
지체되는 소프트웨어 개발 프로젝트에 인력을 더하는 것은 개발을 늦출 뿐이다
-맨 먼스 미신, 페레더릭 브룩스 -
프로젝트가 늦어지고 지연되는 경우 관리자 입장에서 가장 싸게 조치를 취할 수 있는 것은 '1인분 더요~' 정도이다. 한 사람이 일을 전부 못하니까 한 명 더 투입해서 속도를 2배로 올린다. 맨 먼스로 관리되는 프로젝트에서는 맞는 말이다. 인력이 두 배가 되면 기간은 절반으로 줄어야 한다. 하지만 소프트웨어 프로젝트를 한 번이라도 진행해본 사람은 공감하지 않을 것이다.
브룩스 법칙의 페레더릭 브룩스는 직접적으로 다음과 같은 비유를 들었다. "임산부가 아무리 많아도, 아이를 낳는 데에는 9~10개월이 걸린다". 여기에 필자가 설명하는 예는 다음과 같다. "100미터 달리기를 하는데 속도가 느리다고 한 명 더 투입해서 2명 손잡고 같이 달려도 더 빨리 달릴 수 있는 것은 아니다."
인력이 추가될 때마다 늘어나는 커뮤니케이션 채널
브룩스는 프로젝트 관리에서 개발자를 프로젝트에 추가할수록 그들 사이에 의사소통 채널이 늘어나 커뮤니케이션 비용도 마찬가지로 늘어나는 현상을 지적했다. 프로젝트에 인력이 3명(A, B, C)이라면 커뮤니케이션 채널은 A-B, B-C, C-A 이렇게 3개다. 여기에 한 명의 개발자를 추가하면, 커뮤니케이션 채널은 A-B, A-C, A-D, B-C, B-D, C-D 이렇게 6개로 증가한다.
(고등학교 수학에서 볼 수 있는 조합(Combination) 문제를 보면, nCr = nPr / r! = n! / (k!(n-k)!)이다. 프로젝트 인력이 증가함에 따라 커뮤니케이션 채널 수는, 1C1, 2C2, 2C3, 2C4, 2C5 ... 이렇게 증가한다. 숫자로 보면, 1, 1, 3, 6, 10, 15 .. )
또 한 새로 투입된 인력을 교육하는 비용도 생각해야 한다. 교육은 이미 투입되어 있는 인력들이 진행해야 하므로 안 그래도 할 일이 많은데 교육까지 해야 하냐는 불평을 들을 가능성도 있다.
물론 프로젝트에 병렬성이 있어서 작업을 동시에 할 수 있는 요소가 있다면, 즉 Parallelism의 여지가 있다면 인력 투입이 프로젝트 진행 속도를 개선할 여지는 있다. 예를 들어 프로젝트에 매뉴얼 작성 작업과 소프트웨어 개발 작업이 있다고 하면, 동시에 작업을 할 수 있는 두 일을 혼자서 하는 것보다 두 명이 진행하는 게 더 나을 수도 있다.
프로젝트의 특징을 잘 파악하고 인력 투입이 속도를 개선할 수 있는지를 매니저가 잘 파악해야 한다는게 브룩스 법칙의 교훈이라 할 수 있다. (인력만 던져놓고 쪼지만 말자. 애초에 불가능한 프로젝트도 있다.)
'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
스크린 캡처 (0) | 2024.07.28 |
---|---|
엑셀 IF 다중조건 공식 (1) | 2024.07.22 |
테스트 단계 (0) | 2024.06.21 |
[번역] Actix 문서 러스트 웹프로그래밍 (0) | 2024.06.12 |
Rust와 WebAssembly (0) | 2024.06.12 |