프로젝트 불확실성을 대비한 자원관리
상태바
프로젝트 불확실성을 대비한 자원관리
  • 투이컨설팅
  • 승인 2018.12.12 05:17
  • 조회수 1856
  • 댓글 0
이 콘텐츠를 공유합니다

투이컨설팅 김인현 대표 & 임병우 수석

인도네시아에서 컨설팅을 수행한 동료가 들려 준 이야기이다. 고객인 인도네시아 은행의 관리자가 이런 말을 했다고 한다. “한국 사람들은 이해할 수가 없어요. 고객이 요구한 것도 아닌데, 스스로 목표 일정을 빡빡하게 세워 놓고, 사서 고생하는 이유를 모르겠어요.”

소프트웨어공학의 구루인 에드워드 요든은 이런 이야기를 했다. “소프트웨어 엔지니어는 자신을 과대 평가하는 경향이 있다. 자신이 해낼 수 있는 것보다 더 빨리 할 수 있다고 믿는다. 그래서 소프트웨어 엔지니어들의 예측은 대부분 맞지 않는다.”

프로젝트의 성공은 목표 달성 여부에 따라 결정된다. 여러 목표 중에서도 가장 가시성이 높은 기준은 납기 달성이다. 납기를 달성하면 일단 성공한 프로젝트로 인정된다. 하지만 처음 설정한 목표 일정에 맞추어서 끝나는 프로젝트가 많지는 않다.


소프트웨어 프로젝트가 납기를 지키지 못하는 이유는 무엇일까?

첫째, 생산성을 과대 평가하여 작업 별 소요 일수를 충분히 잡지 못했다.
둘째, 워크로드를 완전하게 도출하지 못했다. 숨어 있는 작업을 나중에 발견하였다.
셋째, 업무 요건이 변경되거나 추가되는 등 워크로드의 증가가 예상보다 컸다.
넷째, 워크로드를 수행하기에 필요한 자원이 적기에 준비되지 못했다.
다섯째, 의사결정이 느리거나, 프로젝트 내 커뮤니케이션이 원활하지 못했다.

결국, 프로젝트 납기 달성 함수의 독립 변수는 워크로드와 자원이다. 초기에 워크로드를 제대로 파악했고, 진행 과정에서 워크로드 통제에 성공했다면, 남아 있는 변수는 자원이다. 워크로드를 제대로 관리한다면, 자원을 적기에 확보하고 투입하는 것이 프로젝트 성공을 결정한다.


워크로드 관리보다 어려운 것이 자원관리이다. 워크로드는 어느 정도는 예측할 수 있다. 또한 우선순위를 평가하여 조정하는 의사결정을 내릴 수도 있다. 하지만, 자원은 한정되어 있다. 무한히 투입할 수가 없다. 또한 자원을 확보하는데 시간이 걸린다. 타이밍을 놓칠 가능성이 크다. 자원관리가 어렵긴 하지만 자원관리에 성공한 프로젝트가 실패하는 경우는 거의 없다.


장기간 수행되는 프로젝트일수록 자원관리는 어려워진다. 자원은 작업에 종속되기 때문이다. 하나의 작업이 지연되면 연관 작업의 자원 투입 일정이 모두 조정되어야 한다. 또는 자원의 확보 가능성에 따라 작업 일정이 조정되어야 한다. 기업의 자원은 한정되어 있기 때문에 중요한 자원을 확보하기 위해서는 조직내 공감대 형성과 경영진의 의사결정 및 지원이 필요한 경우도 있다.


소프트웨어 프로젝트의 자원(Resource)은 인력, 시간, 장비, 예산 등이다. 프로젝트를 수행할 때 활용할 수 있는 자원은 유한하다. 프로젝트 내에서 어떤 유형의 자원이 어느 시점에 어느 정도로 필요한가에 대해 상세하고 구체적으로 예측하고 확보 계획을 세워야 한다.

유연한 자원 계획 수립

프로젝트 수행에 필요한 자원을 시작 시점에 모두 확보해 두는 것은 비효율적이다. 작업이 시작되기도 전에 자원을 확보한다면 프로젝트에는 도움이 되겠지만, 유휴 자원이 발생하여 조직의 효율성이 떨어지기 때문이다. 프로젝트 계획을 근거로 자원을 확보하는 것이 타당하다. 하지만 프로젝트 진행 과정에서 불확실성이 존재한다. 예상하지 않은 상황이 되었을 때 자원 계획을 사전에 조정할 수 있는 유연성을 확보해야 한다.
 

투이톡_프로젝트_1.jpg
[그림 1] 소프트웨어프로젝트 예측과 자원

적절한 자원 배분 관리

 

1. 일정과 범위 변경
프로젝트 일정 계획은 변경될 수 있다. 기업의 비즈니스 상황에 따라 최초 수립한 일정을 당겨야 하는 경우도 있다. 제도 등의 변경이 발생하면 범위가 늘어나거나 줄어들 수도 있다. 일정 변경과 범위 변경이 발생하면, 이를 자원 계획 조정에 연계하여 처리해야 한다. 만약 자원 계획 조정이 불가능하다면, 일정과 범위 변경은 불가능할 수도 있다는 점을 공유하고 있어야 한다.

 

2. 자원 가용 불확실성
타스크 별로 필요한 자원은 다르다. 프로젝트 초기에는 주로 아키텍트와 업무전문가가 필요하다. 설계와 개발 단계에는 소프트웨어 개발자가 주로 작업하게 된다. 테스트 단계에는 현업 사용자들이 대거 투입되어야 한다. 문제는 이러한 자원들이 우리가 수행하고 있는 프로젝트 일정에 맞게 대기하고 있지 않다는 점이다. 외부 여건에 의해 자원 투입 일정이 흔들릴 수 있다. 대안으로 플랜 B를 준비하고 있어야 한다. 경우에 따라서는 프로젝트 계획 조정까지도 감수해야 한다.
 

3. 타스크 연관성
프로젝트 내에서 수행되는 대부분의 타스크는 의존 관계를 가지고 있다. 즉 특정 타스크를 수행할 담당자가 투입되어 해당 타스크를 수행하고자 해도, 해당 타스크와 연관되어 사전에 완료되어야 할 선행 타스크가 완료되지 않았을 경우에는 해당 타스크 수행이 불가능할 수 있다. 이러한 경우 해당 타스크 수행 인력은 계약한 기간에 따라 투입되어 있으나 실제 업무는 수행하지 못하는 상황에 봉착하게 되며, 이는 결국 자원(투입 공수) 낭비로 이어지게 된다. 타스크 일정에 따라 자원 운영 계획을 유연하게 조정할 수 있어야 한다.

 

4. WBS를 이용한 자원관리
프로젝트 시작 전 상세한 일정계획을 수립하고 그 결과를 WBS(Work Breakdown Structure)에 담아 구체화 하는데, 이 때 프로젝트 관리자는 WBS에 정의된 상세 수행 타스크 별 수행 일정과 필요 인력 및 자원을 정의해야 한다. WBS에 정의된 모든 타스크 별 공수와 기타 필요 자원 설정이 ‘프로젝트 자원 배분’이며, 배분된 자원의 합계가 바로 해당 ‘프로젝트의 자원 계획’인 것이다. 프로젝트의 불확실성을 극복하는 방법은 WBS 세부 수행 타스크 기준으로 프로젝트 자원 계획을 최대한 상세화 하는 것이다.

성공 비결: 여유 자원 확보

소프트웨어 엔지니어들을 대상으로 한 유명한 실험이 있다. 먼저 소프트웨어 엔지니어들에게 요구사항을 제시하고 완료 일자를 예측하도록 했다. 그리고 실제로 소프트웨어를 개발하도록 한 다음에 최초 예측한 일정과 실제 완료한 일정을 비교했다. 결과는 대부분의 소프트웨어 엔지니어들의 완료 일정은 예측 일정보다 30% 정도 늦었다고 한다.


 프로젝트 계획을 수립할 때, 필요한 자원을 완전하게 예측하기는 쉽지 않다. 문제가 되는 것은 과소예측이다. 부족하게 자원을 준비한 프로젝트는 이미 실패를 예정하고 있는 셈이다. 어느 금융회사의 최고경영자는 이런 말을 했다. “프로젝트 시작할 때 예산과 인력에 여유를 두고 의사결정을 받으면 좋았을 텐데, IT부서는 항상 나중에 추가 예산 품의를 올리는지 모르겠다.” 정밀하게 그리고 완전하게 자원을 예측했다고 하더라도, 최소한 10% 이상의 버퍼를 확보하는 것이 성공 비결이다.

 투이톡_프로젝트_2.jpg
출처: https://ardalis.com/5-laws-of-software-estimates

- 끝 -

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.