WBS 자원 할당: 큰 팀이 항상 더 빠른 것은 아니다

발행: (2025년 12월 17일 오후 11:44 GMT+9)
7 min read
원문: Dev.to

Source: Dev.to

사람을 더 늘리면 더 빨리 끝날 거죠?
개발자들은 이 말을 들으면 보통 속으로 한숨을 쉽니다.
실제로는 더 오래 걸릴 수도 있습니다.

브룩스의 법칙—“지연된 소프트웨어 프로젝트에 인력을 추가하면 프로젝트가 더 늦어진다”—는 50년 동안 사실이며 오늘도 여전히 유효합니다. 아래에서는 왜 큰 팀이 항상 더 빠른 것이 아닌지, 그리고 자원을 효과적으로 할당하는 방법을 살펴봅니다.

커뮤니케이션 오버헤드

팀 규모가 커질수록 커뮤니케이션 경로 수는 제곱적으로 증가합니다:

팀 규모 (n)커뮤니케이션 경로 (n × (n‑1) / 2)
33
510
1045
20190

20명 팀에서는 하루에 1시간이 조정에만 사라집니다. 측정된 데이터에 따르면 10명 이상의 개발자 팀은 하루에 4시간 미만을 실제 코딩에 할애하고, 나머지는 회의, 리뷰, 질문·답변, 대기 등에 사용됩니다.

팀 규모 가이드라인

“두 개의 피자로도 배를 채울 수 없는 팀은 너무 크다.” – 제프 베조스

이상적인 구성 (≈ 7명):

  • 제품 소유자: 1
  • 백엔드 개발자: 2
  • 프론트엔드 개발자: 2
  • 디자이너: 1
  • QA 엔지니어: 1

“최고의 인재만 배정”이 실패하는 이유

Alice가 React 전문가라 하더라도 도메인 지식이 없으면 생산성이 ≈ 50 % 감소한다. 그녀는 여전히 필요하다:

  • 기존 코드베이스를 이해하는 데 약 2 주
  • 팀 코딩 규칙에 적응하는 데 약 1 주

일반적인 오해

“작업을 10개의 작업으로 나누면, 10명이 동시에 할 수 있다”

// PM's imagination
const ideal_timeline = {
  workDivision: 10,
  peopleAssigned: 10,
  expectedDuration: '1 week',
};
// Actual reality
const reality = {
  dependencyWaiting: '30% time waste',
  integrationWork: 'additional 20% time',
  communication: 'additional 25% time',
  actualDuration: '2.5 weeks',
};

분할 전략

전략설명장점 / 단점
수평 분할 (레이어별)프론트엔드 / 백엔드 / DB 팀지속적인 협업, 책임 인계, 통합 지옥
수직 분할 (기능별)로그인 / 결제 / 검색 기능 팀독립적인 진행, 명확한 책임, 빠른 피드백

팀 구조

핵심 팀 (3‑4명)

  • 핵심 아키텍처 설계
  • 주요 결정
  • 최종 코드‑리뷰 승인

지원 팀 (5‑6명)

  • 특정 기능 구현
  • 테스트 작성
  • 문서화

장점: 의사결정 속도를 유지하고, 품질 일관성을 보장하며, 효율적인 지식 전달을 가능하게 하고, 단일 작업에 용량의 100 %를 할당하지 않음.

권장 자원 할당

# Recommended allocation (percent of capacity)
recommended_allocation = {
    "Planned work": 70,
    "Urgent issue response": 15,
    "Code review / mentoring": 10,
    "Learning / improvement": 5,
}

경험 수준에 따른 조정

junior_allocation = {
    "Planned work": 50,   # lower to allow learning
    "Learning / improvement": 20,
}

실제 사례

Project A – 3개월 프로젝트, 5인 팀

  • 1개월 후: 진행률 20 %에 불과
  • 결정: 인원을 5명 추가
  • 결과: 교육 오버헤드, 커뮤니케이션 3배 증가, 빈번한 병합 충돌 → 2개월 지연

Project B – 같은 회사, 다음 프로젝트

  • 구조: 3명씩 구성된 3팀, 각각 독립 마이크로서비스 담당
  • 조정: 사전 정의된 API 계약, 전체 동기화는 주 1회만
  • 결과: 2주 일찍 완료

작업 부하 시각화

resource_heatmap = {
    "Mon": {"Alice": 120, "Bob": 80,  "Charlie": 100},
    "Tue": {"Alice": 100, "Bob": 120, "Charlie": 80},
    "Wed": {"Alice": 80,  "Bob": 100, "Charlie": 120},
    # …
}
  • ≥ 120 % – 과부하 (빨강)
  • 80‑120 % – 적절 (초록)
  • < 80 % – 사용 가능 (파랑)

페어 로테이션

// Weekly pair rotation
const pair_rotation = {
  'Mon‑Tue': [
    ['Senior', 'Junior'],
    ['Mid',    'Mid'],
  ],
  'Wed‑Thu': [
    ['Senior', 'Mid'],
    ['Junior', 'Mid'],
  ],
  Fri: 'Individual work / Refactoring',
};

효과

  • 지식 공유 극대화
  • 코드 품질 향상
  • 버스 팩터 감소

글로벌 협업

Korean Team (09:00‑18:00 KST)
   ↓ Handoff
US Team (09:00‑18:00 PST)
   ↓ Handoff
European Team (09:00‑18:00 CET)

24시간 개발 사이클이 가능하지만, hand‑off documentation가 필수적입니다 (예: Plexi의 실시간 WBS 업데이트, GitHub PR 비동기 댓글, Notion RFC, Loom 비디오 스탠드‑업).

핵심 요점

  • 5‑7명 규모의 소규모 크로스‑펑셔널 팀이 대규모 그룹보다 성과가 좋다.
  • 커뮤니케이션 비용은 제곱적으로 증가하므로 낮게 유지한다.
  • 용량의 **≤ 70 %**는 계획된 작업에 할당하고, **≈ 30 %**는 예상치 못한 이벤트에 대비한다.
  • “슈퍼스타 의존”을 피하고 팀 전체 역량을 높이는 데 투자한다.
  • 페어 프로그래밍과 정기적인 로테이션은 버스 팩터를 낮추고 지식을 확산한다.
  • 자원 할당을 복잡한 최적화 문제로 다루며, 단순한 산술이 아니다.

효율적인 자원 관리와 WBS가 필요하신가요? Plexo를 확인해 보세요.

Back to Blog

관련 글

더 보기 »