인력 계획 (=조직 계획)


인력 계획은 말 그대로 사람에 대한 계획이다. S/W 개발은 다른 어떤 분야보다도 사람이 차지하는 비중이 크기 때문에 엄청 중요함 ! 

 

인력에 대한 계획을 잘 세우기 위해서는 아래와 같은 특성을 알아둬야 한다.

  1. 기간이 긴 프로젝트에서는 사기를 높이고 이직을 줄이기 위하여 개개인의 일에 대한 만족도를 높여줘야 한다.
  2. 문제의 특성에 맞게 팀의 규모를 맞추고, 팀원들을 구성해야 한다.
    (큰 규모의 팀보다 작은 규모의 팀은 보다 단결력이 강하고 사기가 높으며, 생산성이 높다.)
  3. 팀 구성 권한을 가지는 관리자는 일정, 예산, 품질 등의 요소들을 고려하여 팀을 구성해야 한다.

 

 

그렇다면 팀을 어떤 식으로 구성해야 좋을까? 정답은 아니겠지만 이 질문에 대한 가이드라인이 있다.

가이드라인에서 제시하는 팀 구성 방법에는 3가지가 있다.

  1. 중앙 집중형 팀 구성 (=책임 프로그래머 팀 구성)
  2. 분산형 팀 구성
  3. 혼합형 팀 구성 (중앙 집중형 + 분산형)

 

위 3가지 팀 구성 방법에 대해 정리해보자

 

 

중앙 집중형 팀 구성 ( =책임 프로그래머 팀 구성)


한 관리자가 의사 결정을 하고 팀 구성원들은 그 결정에 따르는 팀 구성 방식이다.

프로젝트 수행에 따른 모든 권한과 책임을 한 관리자(책임 프로그래머)에게 위임한다.

 

 

이 팀 구성 방식은 책임 프로그래머의 능력에 따라 프로젝트의 성패가 갈릴정도로 책임 프로그래머의 역량이 중요하다.

위 그림에서 각각의 역할을 정리하면 다음과 같다.

  1. 책임 프로그래머 : 요구 분석 및 설계, 중요한 기술적 판단, 프로그래머에게 작업 지시 및 배분 
  2. 프로그래머 : 코딩, 테스트, 디버깅, 문서 작성
  3. 프로그램 사서(Librarian) : 설계 문서, 테스트 계획 등 프로젝트와 관련된 모든 사무적인 일들을 담당
  4. 보조 프로그래머 : 책임 프로그래머를 어시스트. (이 포지션이 좀 애매함)

 

 

 

분산형 팀 구성


모든 팀원들이 동등한 레벨을 가지며, 팀원 모두가 의사 결정에 참여하는 방식.

분산형 팀 구성 방식의 장, 단점은 다음과 같다.

  1. 팀 구성원의 참여도와 작업 만족도를 높일 수 있다.
  2. 의사소통의 경로가 많아져 결정 한번 하는데 많은 시간이 소요된다.
  3. 다 같이 책임을 지는 구조라서 생산성이나 책임감이 많이 낮아질 수 있다.

 

 

 

혼합형 팀 구성


위의 팀 구성 방식들을 혼합한 것. (이 방식을 많이 사용한다고 함)

프로젝트 책임자가 5~7명의 프로그래머를 목적에 맞게 작은 그룹으로 나누고, 각 그룹마다 중간 관리자를 두는 계층형 관리 방식.