← 인사이트 목차
시리즈 「프로젝트가 무너지는 여섯 개의 순간」 — 1편EN한국어

빠뜨린 일은 '계획에 없던 일'이 아니다

착수 3주 뒤에 "이 작업은 누가 하기로 했죠?"라는 질문이 나온다. WBS의 100% Rule·8/80 Rule·상호배제로 빠뜨린 일을 계획 단계에서 잡는 방법.

발행 ·5분

5칸으로 나뉜 작업 분해에서 가운데 한 칸이 비어 물음표로 표시되고 전체가 100%인 개념도. 계획이 놓친 일을 나타낸다.

착수 3주 차 주간회의다. 개발 리드가 조심스럽게 손을 든다. "저, 데이터 마이그레이션은 누가 하기로 했죠?" 회의실이 조용해진다. 계획서 어디에도 그 작업은 없다. 견적에도, 일정에도, 담당자 배정에도 없다. 하지만 그 일을 하지 않으면 오픈할 수 없다.

PM은 이 순간을 "예상 못 한 변수"라고 부르고 싶어진다. 하지만 냉정하게 보면 데이터 마이그레이션은 변수가 아니었다. 시스템을 교체하는 프로젝트에서 데이터를 옮기는 일은 처음부터 있었다. 계획에 없었을 뿐이다. 빠뜨린 일은 계획에 없던 일이 아니라 계획이 놓친 일이다. 이 차이가 프로젝트의 성패를 가른다. 앞의 것은 리스크 관리의 영역이지만 뒤의 것은 계획 품질의 영역이기 때문이다.

왜 일을 빠뜨리는가

WBS(Work Breakdown Structure)를 만들어 본 PM이라면 안다. 트리를 그리는 것 자체는 어렵지 않다. 어려운 것은 이 트리가 프로젝트의 전부를 담고 있는지 확신하는 일이다.

일을 빠뜨리는 패턴은 대개 3가지다.

첫째, 눈에 보이는 산출물 중심으로만 분해한다. 화면, 기능, 문서처럼 손에 잡히는 것은 잘 쪼갠다. 그러나 마이그레이션, 권한 셋업, 성능 테스트 환경 구축, 이해관계자 교육처럼 작업 사이에 끼어 있는 일은 트리에 오르지 못한다.

둘째, 분해 수준이 들쭉날쭉하다. 어떤 가지는 4단계까지 파고들었는데 어떤 가지는 "백엔드 개발" 한 덩어리로 남아 있다. 큰 덩어리 안에는 언제나 빠진 일이 숨어 있다.

셋째, 같은 일이 두 가지에 걸쳐 있다. "API 개발"과 "연동 개발"에 같은 작업이 반쯤 걸쳐 있으면 서로 상대가 하는 줄 알고 아무도 하지 않는다.

60년 전에 이미 나온 답

이 3가지 패턴에는 검증된 처방이 있다. PMBok(PMI의 프로젝트 관리 지식체계 표준)이 정리한 WBS 원칙이다.

100% Rule. WBS의 각 상위 노드는 하위 노드의 합과 정확히 100% 일치해야 한다. 하위를 다 합쳤는데 상위에 못 미치면 빠진 것이고, 넘치면 범위 밖의 일이 들어온 것이다. 이 규칙 하나만 검토 회의의 기준으로 삼아도 작업 사이에 끼어 있던 일의 상당수가 드러난다. 실천법은 단순하다. 트리의 모든 부모 노드 옆에 "자식의 합이 나와 같은가?"라고 묻는 체크를 붙인다.

8/80 Rule. 최하위 작업 단위(Work Package)는 8시간보다 작지도, 80시간보다 크지도 않게 쪼갠다. 80시간이 넘는 덩어리는 아직 분해가 끝나지 않은 것이다. "백엔드 개발 6주"는 계획이 아니라 희망이다.

상호배제(Mutually Exclusive). 어떤 작업도 두 노드에 동시에 속하면 안 된다. 겹침이 보이면 경계를 다시 긋는다. "서로 상대가 하는 줄 알았다"는 사고를 막는 규칙이다.

원칙은 명쾌하다. 문제는 이 원칙이 사람의 집중력에 의존한다는 점이다. 노드가 30개일 때는 눈으로 검토할 수 있다. 300개가 되면 불가능하다. PM 도구를 만들며 수십 개의 실제 WBS를 검증해 보니, 노드 100개가 넘는 트리에서 100% Rule 위반이 하나도 없는 경우는 드물었다. 사람의 문제가 아니라 방법의 문제다. 규칙 검증은 원래 사람이 아니라 시스템이 할 일이다.

100% Rule을 적용하기 전과 후

말로만 하면 추상적이니, 사고가 자주 나는 노드인 "Go-live(서비스 오픈) 준비"로 비교해 보자.

검토 전

Go-live 준비 = 운영 배포 + 오픈 공지

"자식의 합이 나와 같은가?"를 물은 후

Go-live 준비 = 운영 환경 구성 + 데이터 마이그레이션·정합성 검증 + 계정·권한 셋업 + 배포 리허설(컷오버 시나리오) + 롤백 계획 수립 + 운영 이관 교육 + 운영 배포 + 오픈 공지

작업 6개가 새로 드러났다. 전부 3주 차 회의에서 손을 들게 만드는 유형의 일이다.

큰 덩어리 쪼개기: 8/80 적용 예시

"백엔드 개발 6주(240시간)"를 Work Package로 분해하면 이렇게 된다.

Work Package공수산출물완료 기준
인증·회원 API40hAPI 명세 + 코드통합테스트 통과
정산 배치64h배치 잡 + 재처리 로직3개 시나리오 검증
외부 연동 어댑터56h어댑터 모듈샌드박스 연동 성공
관리자 API40hAPI 명세 + 코드통합테스트 통과
성능 개선·튜닝40h튜닝 리포트응답시간 목표 충족

분해하면서 따라오는 효과가 있다. 쪼개는 순간 산출물과 완료 기준을 묻게 된다. 그 질문에 답할 수 없는 덩어리가 바로 빠진 일이 숨어 있는 곳이다.

30분 WBS 완전성 리뷰

지금 진행 중인 프로젝트의 WBS를 열고 다음을 점검한다.

구조 점검 (10분)

  • 80시간이 넘는 최하위 노드가 있는가 → 분해가 덜 됐다
  • 부모와 자식의 합이 어긋나는 노드가 있는가 → 100% Rule 위반
  • 같은 작업이 두 가지에 걸쳐 있는가 → 상호배제 위반

숨은 작업 체크리스트 (10분). 시스템 프로젝트에서 가장 자주 빠지는 8가지다.

  • 데이터 마이그레이션·정합성 검증
  • 계정·권한·SSO 셋업
  • 테스트 환경 구축·테스트 데이터 준비
  • 보안 검토·취약점 점검
  • 이해관계자 교육·매뉴얼
  • 운영 이관·모니터링 셋업
  • 내부·고객사 승인/결재 절차
  • 전환(cut-over) 리허설·롤백 계획

책임 경계 점검 (10분). 각 Work Package에 3가지를 묻는다.

  1. 이 작업의 산출물은 무엇인가? 답이 없으면 작업이 아니라 활동이다.
  2. 완료를 누가 승인하는가? 승인자가 없으면 영원히 진행 중으로 남는다.
  3. 두 팀이 걸친 작업의 최종 책임자는 누구인가? 한 명이 아니면 아무도 아니다.

PM의 실행 블록

내일 바로 할 일 3가지

  1. 위 30분 리뷰를 캘린더에 지금 등록한다(팀 말고 혼자, 먼저).
  2. 80시간 초과 노드 상위 3개를 골라 담당자와 함께 분해한다.
  3. 숨은 작업 체크리스트에서 걸린 항목을 WBS에 추가하고 공수를 배정한다.

회의에서 던질 질문

  • "이 부모 노드, 자식을 다 합치면 정확히 100%가 됩니까?"
  • "이 240시간짜리 작업의 첫 번째 산출물은 언제 무엇으로 나옵니까?"
  • "마이그레이션·권한·교육은 어느 노드에 있습니까?"

좋은 신호와 나쁜 신호

좋은 신호나쁜 신호
최하위 노드마다 산출물·완료 기준이 있다"개발", "지원" 같은 동사 없는 덩어리가 있다
WBS 검토에서 매번 뭔가 새로 발견된다"WBS는 킥오프 때 끝났다"고 말한다
겹치는 작업의 경계를 놓고 논쟁한다두 팀이 서로 상대 일이라 생각하는 작업이 있다

도구가 해결해야 하는 부분

이 리뷰의 병목은 판단이 아니라 대조 작업이다. 노드 300개의 합산·중복·크기 검증은 사람이 아니라 시스템이 할 일이다. wbsgantt에 100% Rule과 8/80 위반을 저장 시점에 자동으로 잡아내는 기능을 가장 먼저 넣은 이유다. 규칙 검증에 시간이 들지 않으면 PM의 30분은 전부 판단에 쓸 수 있다.

빠뜨린 일은 반드시 돌아온다. 계획에 없던 얼굴로, 예산에 없던 청구서를 들고 온다.