본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

프로젝트 팀 구성은 소프트웨어 개발 프로젝트의 인력을 의사결정 권한과 의사소통 구조에 따라 조직하는 방식으로, 중앙집중형(책임 프로그래머 팀), 분산형(민주주의식 팀), 혼합형(계층형 팀)이 대표적이다.

팀원이 n 명이면 서로 주고받을 수 있는 의사소통 경로는 n(n-1)/2 개다. 사람이 늘수록 경로가 급격히 늘어 조정에 드는 시간이 커진다(브룩스의 법칙). 팀 구성은 이 경로를 누구에게 모을지, 결정을 누가 내릴지를 정하는 일이다. 프로젝트의 규모, 기간, 난이도, 팀원의 숙련도를 보고 고른다.

구분 중앙집중형 (책임 프로그래머 팀) 분산형 (민주주의식 팀) 혼합형 (계층형 팀)
구조 책임 프로그래머 한 사람에게 권한이 모인다 구성원이 모두 동등하다 고급 프로그래머가 초급 프로그래머 몇 명을 이끄는 작은 단위를 프로젝트 리더가 묶는다
의사결정 팀 리더(책임 프로그래머)가 목표 설정과 결정을 한다 구성원 합의로 정한다 리더와 고급 프로그래머가 나눠 맡는다
의사소통 리더를 거친다. 구성원 사이의 교류는 적다 구성원 사이에 자유롭다 단위 안에서는 활발, 단위 사이는 리더를 거친다
장점 결정이 빠르고 경로가 짧다. 일관된 설계 참여도·만족도가 높고 어려운 문제를 함께 푼다 대규모에 맞고 두 방식의 장점을 섞는다
단점 리더 한 사람의 능력에 성패가 달렸다. 구성원의 참여도·만족도가 낮을 수 있다 결정이 느리고 책임이 흐려진다 단위 사이의 의사소통이 막히기 쉽다
맞는 프로젝트 소규모, 짧은 기간, 비교적 쉬운 문제 장기간, 복잡하고 어려운 문제 대규모 프로젝트

팀원 사이의 의사교류를 활성화해 참여도와 만족도를 높이는 것은 분산형(민주주의식) 팀의 특징이고, 중앙집중형은 그 반대다.

책임 프로그래머 팀

편집 원본 편집

1970년대 초 IBM 의 할런 밀스(Harlan Mills)가 제안했다. 외과 수술팀처럼 한 사람이 핵심 설계와 코딩을 맡고 나머지가 돕는다.

  • 책임 프로그래머 : 설계·핵심 코딩·기술적 결정을 맡는다
  • 보조 프로그래머 : 책임 프로그래머를 돕고 대신할 수 있다
  • 프로그램 사서 : 소스·문서·테스트 자료 같은 산출물을 관리한다
  • 필요에 따라 테스트·언어·관리 전문가를 둔다

민주주의식 팀

편집 원본 편집

와인버그(G. Weinberg)가 말한 비이기적 프로그래밍(egoless programming)에 바탕을 둔다. 코드를 개인 소유가 아닌 팀의 것으로 보고 서로 검토한다. 오늘날 애자일의 자기 조직화 팀이 이 계열이다.