개발 프로젝트가 늦어지면 윗분들 - 특히 개발자 출신이 아닌 분들 - 이 항상 하는 말이 있습니다. ‘사람을 더 투입하면 일정을 앞당길 수 있는가?’. 이 말에 제가 항상 하는 답변이 있습니다. ‘사람을 더 투입한다고 일정이 줄어들지는 않습니다’. 제가 이런 답변을 하는 것은 경험에 의한 것인데 솔개님의 블로그 포스팅을 보니 이것을 실제로 증명한 ‘브룩스의 법칙’이라는 연구결과가 있었습니다.
'브룩스의 법칙'은 1975년에 출간된 프레드 브룩스의 ‘작업량과 작업속도에 관한 고찰’을 통해 세상에 알려졌는데 제가 위에서 이야기한 것처럼 ‘지연된 프로젝트에 추가적으로 인력을 투입하면 작업 진행 속도는 더 느려진다’라는 개념이라고 합니다. 또한 로런스 퍼트넘이라는 사람의 연구에 의하면 프로젝트에 20명 이상의 사람이 투입된 경우, 5명 이하의 사람이 투입된 것보다 프로젝트가 더 느리게 진행된다고 합니다. 그 느려짐 정도도 커서 대규모의 팀은 소규모 팀보다 같은 작업을 처리하는데 5배의 시간이 필요한 경우가 흔하게 일어난다고 합니다.
이런 현상이 일어나는 이유로 2가지를 생각할 수 있습니다. 하나는 커뮤니케이션입니다. 사람이 많을수록 커뮤니케이션은 복잡해질 수 밖에 없고 하나의 의견으로 통일하는데 시간은 더 필요하고 사람간의 트러블이 발생할 확률은 높아집니다. 다른 하나는 이미 작업이 진행중인 프로젝트에 새로 투입된 인원들은 프로젝트 현황에 대해 파악할 시간이 필요하고 기존 인원들의 일부는 이들의 시스템 파악 과정을 지원해주어야 하기 때문에 팀의 전체 리소스가 프로젝트 작업에 완전히 투입되는데 시간이 필요하게 됩니다.
물론 이 개념에도 반론의 여지는 있습니다. 제 경험으로는 새로 투입되는 인원이 작업 대상 시스템에 대한 경험이 많이 있고 기존 작업 인원들과 같이 일한 경험이 있을 경우 추가 인력 투입이 작업 일정 단축에 도움이 될 수도 있습니다. 그러나, 이것은 예외적인 경우이고 일반적인 상황에서는 ‘브룩스의 법칙’이 말하는 것처럼 투입된 인력의 규모에 비해 일정 단축이 일어나지 않는 상황이 되어 추가 인력 투입을 지시했던 윗분들은 답답함을 느끼고 실무팀은 압박감을 느끼면서 프로젝트는 산으로 가는 테크트리를 타게 되는 것이죠. 일정이 늦어질 경우의 해법은 추가 인력보다는 작업 범위와 같이 프로젝트 자체에서 찾는 것이 가장 좋다라고 생각합니다.
'브룩스의 법칙'은 1975년에 출간된 프레드 브룩스의 ‘작업량과 작업속도에 관한 고찰’을 통해 세상에 알려졌는데 제가 위에서 이야기한 것처럼 ‘지연된 프로젝트에 추가적으로 인력을 투입하면 작업 진행 속도는 더 느려진다’라는 개념이라고 합니다. 또한 로런스 퍼트넘이라는 사람의 연구에 의하면 프로젝트에 20명 이상의 사람이 투입된 경우, 5명 이하의 사람이 투입된 것보다 프로젝트가 더 느리게 진행된다고 합니다. 그 느려짐 정도도 커서 대규모의 팀은 소규모 팀보다 같은 작업을 처리하는데 5배의 시간이 필요한 경우가 흔하게 일어난다고 합니다.
이런 현상이 일어나는 이유로 2가지를 생각할 수 있습니다. 하나는 커뮤니케이션입니다. 사람이 많을수록 커뮤니케이션은 복잡해질 수 밖에 없고 하나의 의견으로 통일하는데 시간은 더 필요하고 사람간의 트러블이 발생할 확률은 높아집니다. 다른 하나는 이미 작업이 진행중인 프로젝트에 새로 투입된 인원들은 프로젝트 현황에 대해 파악할 시간이 필요하고 기존 인원들의 일부는 이들의 시스템 파악 과정을 지원해주어야 하기 때문에 팀의 전체 리소스가 프로젝트 작업에 완전히 투입되는데 시간이 필요하게 됩니다.
물론 이 개념에도 반론의 여지는 있습니다. 제 경험으로는 새로 투입되는 인원이 작업 대상 시스템에 대한 경험이 많이 있고 기존 작업 인원들과 같이 일한 경험이 있을 경우 추가 인력 투입이 작업 일정 단축에 도움이 될 수도 있습니다. 그러나, 이것은 예외적인 경우이고 일반적인 상황에서는 ‘브룩스의 법칙’이 말하는 것처럼 투입된 인력의 규모에 비해 일정 단축이 일어나지 않는 상황이 되어 추가 인력 투입을 지시했던 윗분들은 답답함을 느끼고 실무팀은 압박감을 느끼면서 프로젝트는 산으로 가는 테크트리를 타게 되는 것이죠. 일정이 늦어질 경우의 해법은 추가 인력보다는 작업 범위와 같이 프로젝트 자체에서 찾는 것이 가장 좋다라고 생각합니다.
===
Project just4fun : http://www.just4fun.kr/