4 명의 숙련 된 개발자로 구성된 팀은 대형 모듈 식 Windows 응용 프로그램 (약 200KLoC)에서 작업합니다. 프로젝트를 시작한 이래 (3 년 전) 핵심 코드베이스에 중점을 두 었으며 팀 관리자는 아니지만 점차 반납 개발자 위치로 전환했습니다.
현재 반복은 상위 코드 관리에 의해 요청 된 우선 순위가 높은 UI 새로 고침이며 핵심 코드베이스에 대한 약 15 개의 변경이 포함됩니다. 관리자의 요청에 따라 15 개의 변경 사항 을 완료 하는 데 4 시간 미만 , 총 7 일 미만 이 소요될 것으로 예상했습니다 . 나는 그 일을 수행하기 위해 자원했다. 대신, 관리자는 15 개의 작업을 4 명의 개발자 모두에게 고르게 분배하기로 결정했습니다.
일을 시작한 지 3 일 만에 두 가지를 관찰했습니다.
경험이없는 다른 팀원은 각각 약 1 개 이하의 작업을 완료했습니다.
Brook의 법칙 : 저는 약 절반의 시간을 지원을 제공하는 데 보냈습니다 (구성 요소 사용에 대한 코치를 시도 함). 결과적으로 5 또는 6이 아닌 2 개의 작업 만 완료했습니다.
나는 우리가 늦게 달리고 있다는 우려로 관리자에게 접근하여 나머지 작업을 완료 할 것을 다시 제안했습니다. 나의 요청은 친절하게 거절되었고, 부하를 고르게 나누는 이유는 두 가지였다.
- 트럭 / 버스 요소를 제한하십시오. 이제 다른 개발자가 이러한 기술을 익히도록해서 앞으로 모든 작업을 나뿐만 아니라 다른 사람에게도 줄 수 있습니다.
- "병목 현상"(me)을 제거하고 작업을 더 빠르게 수행합니다.
분명히, 나는 a) 시간 교육에 투자, b) 내 코드를 만지는 사람들, 또는 c) 직업 보안에 문제가 없습니다. 실제로, 나는 정기적으로 팀 리더에게 위험을 줄이기 위해 핵심 코드베이스의 특정 측면에 대해 다른 개발자를 훈련시킬 것을 제안합니다.
이 반복에서는 우선 순위가 높은 버그 수정 모음도 다수 있으므로 워크로드가 재분배되면 더 많은 진전이있을 수 있습니다.
Mythical-Man-Month에서 Brooks '는 모든 팀이 리드 + 하위 리더 (관리자 및 저)와 몇 가지 사소한 역할로 구성된 " 수술 팀 "을 제안 합니다. 마치 우리가이 조직에 자연스럽게 빠져있는 것처럼 느껴지지만 관리자가 반대하고 있습니다. 나는 버스 요소가 이미 처리되어 있고 (관리자는 핵심 코드에 정통하고) 병목 현상이 실제로 존재하지 않는다고 생각합니다 (더 많은 개발자가 참여해도 작업 속도가 빨라지지는 않습니다). 이와 관련하여 외과 팀은 좋은 일이라고 생각합니다.
이것들은 내 감정이지만, 숙련 된 관리자는 아니며, 버스 요소 (나무를 두드리는 소리)를 다루지 않아도됩니다. 브룩스가 맞았 어? 버스 팩터가 작동하는 "외과 팀"에서 일했습니까? 분산 전문 지식을 관리하는 더 나은 기술이 있습니까?
유제: