본문 바로가기

Web Insight

지체된 프로젝트와 추가 투입 인력

소프트웨어 공학의 법칙 중 아주 유명한 것이 있다,

"지체된 프로젝트에 추가 인원을 투입하면 프로젝트는 더 늦어질 뿐이다."

Brooks의 법칙(<The Mythical Man-Month>, Brooks, 1995)이라 불리는 이 사실은 수많은 소프트웨어 프로젝트를 통해 증명되었다. 이 법칙은 새로 투입된 인력이 업무에 익숙해질 때까지 필요한 학습곡선(learning curve) 문제와 인력이 증가할수록 커뮤니케이션 복잡성도 함께 증가한다는 사실에 기초한다. 그럼에도 불구하고 여전히 지연된 프로젝트가 인력 때문이라고 믿는 사람들이 많다. 소프트웨어 프로젝트는 노동집약적 산업이 아니다. 그런데 노동집약적 관점 혹은 근대 산업적 관점에서 바라보는 나쁜 버릇 때문에 자주 지체된 프로젝트에 추가 인력을 투입하여 해결하려는 일이 생긴다. 


몇 개월 지체된 프로젝트의 속도를 높이기 위해 개발자를 새로 뽑는 회사의 CEO와 이야기를 나누었다. 그는 프로젝트가 생각보다 너무 늦게 진행되는 이유를 두 가지 들었다,

1) 개발 이슈를 해결할 인력이 부족하다
2) 개발 이슈가 너무 많고 새로운 인력이 보강되어야 한다

두 문제는 비슷한 것 같지만 서로 다르다. 첫번째 문제는 고급 개발 인력 즉 시스템 아키텍처를 조망하고 필요하다면 새롭게 디자인할 사람이 필요하다. 두번째 문제는 프로젝트 규모와 인력 규모에 대한 문제다. CEO는 두 문제를 동시에 해결하기 원했고 그래서 팀장급 인력과 5년 이하 경력직 개발자를 뽑고 있었다. 대기업도 아니고 그렇다고 튼튼한 기술적 기반이 있는 회사가 아니었으므로 지원자 자체가 매우 적었다. 운영 자금이 부족한 상태는 아니지만 프로젝트 상황은 심각했다. 계획했던 프로젝트 일정이 두 배 이상 지연되었기 때문이다.

첫 만남이 있은 후 몇 주 지나 다시 그 회사 CEO를 만났다. 새로운 인력을 여전히 구하지 못하고 있었다. 나는 그에게 솔직한 조언을 했다,

"지금 인원으로 개발할 수 있는 수준으로 개발 이슈를 줄이거나 일부 포기하세요."

CEO나 경영진은 '포기'라는 단어를 매우 싫어 한다. 그들은 '도전', '극복', '달성'과 같은 단어를 즐기고 '포기', '후퇴', '정체'와 같은 단어를 사용하는 건 패배적 태도라고 믿는다. 이 CEO도 내가 개발 이슈를 줄이거나 포기해야 한다고 말하자 굳은 표정으로 아무 대답도 하지 않았다. 조금 부드러운 표현을 쓸 수 있었을 것이다. 그러나 표현이 달라진다고 해야 할 일이 달라지는 건 아니다. 

일단 새로운 웹 사이트를 지금 계획하는 것보다 낮은 수준에서 개발 완료를 하면 새로운 개발자를 더 쉽게 뽑을 수 있을 것이라고 설득했다. 사이트가 개발되는 과정에서 고급 인력을 뽑는 것은 매우 힘들고 설령 뽑았다고 해도 그 사람이 새로운 프로젝트에 적응하는 시간이 필요하기 때문에 프로젝트가 예상한 것처럼 빠르게 진행되지 않을 것이라고 했다. 보편적인 개발자들의 학습곡선에 대한 예도 보여줬다.

몇 시간 후 그는 여전히 굳은 표정이었지만 제안을 받아 들이는 것 같았다. 그리고 또 몇 주 시간이 흘렀다. 멈춰 있던 프로젝트는 빠르게 움직이기 시작했다. 프로토타입조차 나오지 않았던 웹 서비스의 몇몇 주요 기능이 구현되었다. 처음 목표했던 웹 사이트보다 크게 낮은 수준이지만 어쨌든 웹 사이트는 도메인을 갖고 움직이게 되었다. 이 회사는 새로운 개발자 구인 공지를 올렸다. 구인 공지에 이런 내용이 포함되어 있었다, "우리 웹 사이트를 멋지게 꾸밀 분을 모십니다." 과거보다 훨씬 많은 개발자들이 지원하기 시작했다.  


지연된 프로젝트에 새로운 인력을 보강하면 프로젝트는 더욱 지연된다. 그렇다고 손 놓고 있어야 하는가? 아니다. 지연된 프로젝트의 구체적인 이유를 알아야 한다. 그것이 현재 인력으로 구현하기 힘든 개발 이슈나 과도하게 많은 개발 이슈 때문이라면 이슈 자체를 줄이거나 없애야 한다. 새로운 개발 인력 입장에서 개발 중인 프로젝트 특히 지연된 프로젝트에 참가하는 것은 매우 부담이 된다. 때문에 더욱 개발자를 구하기 힘들다. 빠르게 현재 문제가 된 프로젝트를 완성하고 인력을 뽑는 게 낫다. 나중에 웹 사이트를 뒤짚어 엎더라도 진행 중인 프로젝트에 끼어 들어 불필요한 고민을 하는 것보다 훨씬 부담이 적다. 이런 결정은 CEO나 경영진이 해야 할 가장 중요한 역할이다.