← wbsgantt 홈
케이스 스터디

그 ERP 프로젝트, 실행 7주차에 밀리기 시작했다

계획(PV) 점선과 실적(EV) 실선이 7주차 오늘 선에서 벌어지고 SPI 0.84 배지가 붙은 S-커브 개념도 — 지연이 숫자로 드러난다.

지난 케이스 스터디에서 우리는 그 ERP 프로젝트에 리스크 등록부를 붙였다(지난 케이스 스터디). 8건 중 가장 신경 쓰였던 건 레거시 데이터 품질 불량 — P3×I5, Score 15, 완화 담당까지 정해 두고도 마감이 지나 Overdue 딱지가 붙어 있던 그 리스크다. 경고는 등록부에 적혀 있었다.

그리고 계획은 실행에 들어갔다. 실행이 시작되면 PM의 질문은 하나로 수렴한다. "우리 지금 어디쯤이지? 계획대로 가고 있나?" 주간회의에서 이 질문에 "느낌상 조금 밀린 것 같습니다"로 답하면, 그다음 질문을 막을 수 없다. 얼마나? 어디가? 언제부터? 이번 편은 그 질문에 숫자로 답해 보는 실험이다. 미리 밝혀 둔다. 광고가 아니라 실험 리포트다. 되는 것과 안 되는 것을 그대로 적는다.

실험 설계 — 계획편에서 실행편으로

앞선 세 편이 계획 국면(WBS 수립 → 보고서 추출 → 리스크 등록)이었다면, 이번 편부터는 실행 국면이다. 그래서 실연 방식을 하나 바꿔야 했다. SPI 같은 라이브 지표는 실제 오늘 기준으로 계산된다 — 아직 시작 전인 일정 위에서는 아무 숫자도 나오지 않는다. 이번 실연은 같은 44노드 구조를 캡처 시점이 "실행 7주차"가 되도록 착수일만 재앵커링한 복제본(화면의 프로젝트 코드가 MCG-26B인 이유다) 위에서 진행했고, 몇 주치 진척과 주간 스냅샷 이력도 그 재구성의 일부로 채워 넣었다. 캡처 속 날짜가 앞선 편들과 다른 건 그래서다. 본문은 날짜 대신 주차로 쓴다.

무대는 그대로다. 요약 12 · Work Package 31 · 마일스톤 1의 44노드, 종속성 17건, 마지막 마일스톤은 "시스템 오픈".

기준선 — 움직임을 재려면 움직이지 않는 것이 필요하다

착수 시점에 한 일은 하나다. Baseline 수립. 버튼 하나로 BL-1이 만들어지고, Overview 맨 위에 카드가 앉는다 — Scope 44노드 · Schedule 종속 17건 동결.

동결이라는 말이 핵심이다. 3편에서 "일정이 밀린 게 아니라 기준이 사라진 것"이라고 썼다. 기준 없이 실행에 들어간 프로젝트는 밀려도 밀린 줄 모른다 — 비교할 원본이 없기 때문이다. BL-1은 그 원본이다. 이후 계획을 아무리 고쳐도 BL-1은 변하지 않고, 모든 "계획 대비"는 이 불변 스냅샷을 분모로 계산된다.

엑셀 계획서에도 "기준 계획" 시트를 만들 수는 있다. 문제는 그 시트가 편집 가능하다는 점이다. 일정이 밀리기 시작하면 기준 시트를 슬쩍 고쳐 편차를 지우고 싶은 유혹이 생기고, 실제로 많은 프로젝트에서 그렇게 기준이 증발한다. 여기서는 구조가 유혹을 막는다 — 베이스라인은 수립 이후 편집이라는 개념 자체가 없고, 활성 기준선은 프로젝트당 하나로 강제된다. 기준을 바꾸고 싶으면 몰래 고치는 게 아니라 새 기준선을 다시 수립해야 하고, 그 사실은 기록에 남는다.

7주차 아침, 0.84 — 그리고 벌어지는 곡선

실행 7주차. Overview를 열면 카드 한 장이 먼저 눈에 걸린다.

Overview의 지표 카드 행 — 진척률 39%, 노드 수 44, 예상 기간 92d, 남은 기간 44d, Critical path 92d와 나란히, 줄 끝의 SPI 카드에 빨간 숫자 0.84와 SV -8% · 계획 대비가 표시돼 있다

SPI 0.84 · SV −8%. SPI(Schedule Performance Index)는 계획한 가치 대비 실제로 번 가치의 비율이다 — 1.0이면 계획대로, 밑돌면 지연. 4편에서 "'80% 완료'라는 거짓말"을 이야기하며 EVM의 원리를 다뤘는데, 그 원리가 여기서는 카드 한 장으로 줄어 있다. 이날 기준 계획상 진척(PV)은 47%, 실제 번 진척(EV)은 39%. 39를 47로 나누면 0.84가 나온다. "느낌상 조금"이 아니라, 계획의 84% 속도로 가고 있다가 답이 된다.

중요한 건 이 숫자를 누가 계산했느냐다. 아무도 안 했다. 진척률 입력은 말단 Work Package에만 허용된다 — "회계 기능 개발 9%", "레거시 데이터 정제 12%"처럼. 요약 노드와 루트의 진척은 가중치(weight)로 자동 rollup되어 이날 루트가 39%였고, 같은 가중치 체계로 계획 곡선을 계산해 PV 47%가 나왔다. 두 숫자의 비율이 SPI다. 팀은 자기 작업의 %만 넣었고, 합산·가중·기준선 대비는 전부 화면이 했다. 주간보고를 위해 엑셀에서 SUMPRODUCT를 조립하는 시간이 0이 됐다.

하나 더. 이 숫자는 보고 주기와 무관하게 산다. 엑셀 기반 EVM은 누군가 시트를 갱신하는 금요일에만 존재하지만, 이 카드는 진척률이 입력되는 순간 다시 계산된다. 지연이 보고일까지 기다려 주지 않는 것처럼, 지표도 기다리지 않는다.

숫자 하나로는 "언제부터"에 답할 수 없다. 그건 곡선의 일이다.

일정 성과 S-Curve 카드 — 회색 PV 곡선과 파란 EV 곡선이 3주차까지 겹쳐 가다 이후 벌어지고, 빨간 점선의 오늘 위치에서 PV 47% 대 EV 39%의 간격이 보인다

PV 곡선(계획)과 EV 곡선(실적)은 3주차까지는 거의 붙어 간다. 4주차부터 미세하게 벌어지기 시작해, 금요일 스냅샷 기준 SPI가 1.00 → 0.97 → 0.93 → 0.89 → 0.84로 한 주에 3~5%p씩 미끄러졌다. 어느 한 주에 사고가 난 게 아니다. 매주 조금씩, 보고서에는 잡히지 않을 만큼씩 밀렸다. S-Curve가 무서운 건 이 기울기를 보여준다는 점이다 — 오늘의 0.84보다, 4주째 한 방향으로 내려가고 있다는 사실이 더 큰 경고다.

빨간 점선의 "오늘" 왼쪽은 기록이고 오른쪽은 계획이다. 오늘 이후의 PV 곡선은 모듈 개발이 겹치는 구간에서 가파르게 서는데, 그 말은 지금의 84% 속도를 유지하면 간격이 지금보다 빠르게 벌어진다는 뜻이다. 곡선은 예언은 아니지만, 방치의 비용이 어느 구간에서 청구될지는 보여준다.

Top Delay — 범인은 등록부에 예고돼 있었다

얼마나 밀렸는지 다음은 어디가 밀렸는지다. Overview의 지연 상위(Top Delay) 카드는 기준선 대비 가장 뒤처진 작업 다섯을 줄 세운다.

지연 상위 Top Delay 카드 — 마이그레이션 설계 SPI 0.30, 회계 단위 테스트 0.60, 구매 단위 테스트 0.65, 인사 단위 테스트 0.65, 마이그레이션 실행·검증 0.30 다섯 행이 SV와 함께 나열돼 있다

1위 마이그레이션 설계 SPI 0.30, 5위 마이그레이션 실행·검증 0.30. 사이에 낀 회계(0.60)·구매(0.65)·인사(0.65) 단위 테스트는 정제 안 된 데이터를 받아 든 후폭풍이다. 목록의 양끝이 전부 데이터 마이그레이션이다.

이 목록이 "진척률 낮은 순"이 아니라는 점이 중요하다. 진척 0%인 작업은 프로젝트에 널려 있다 — 아직 시작할 때가 아니어서 0%인 작업은 지연이 아니다. Top Delay는 기준선상 지금쯤 얼마여야 하는데 얼마인가의 편차에 가중치를 곱해 줄 세운다. 그래서 시작도 안 한 통합 테스트는 목록에 없고, 지금 한창이어야 할 마이그레이션이 맨 위에 있다.

지난 편의 그 리스크 — 레거시 데이터 품질 불량, 완화하겠다던 마감이 지나 Overdue로 남아 있던 — 가 숫자가 되어 돌아왔다. 리스크 등록부가 "터질 수 있다"를 적는 곳이라면, Top Delay는 터졌다는 것을 기준선 대비 편차로 증명하는 곳이다. 행을 클릭하면 WBS의 해당 노드로 바로 이동한다. 대시보드에서 범인의 책상까지 클릭 한 번이다.

기준 대비 — 조정하고, 오버레이로 확인한다

원인 노드 앞에 섰으니 조정이다. 그 자리에서 마이그레이션 검증 작업의 기간을 +3일 늘려 잡았고, 들여다보는 김에 계획의 구멍 — 통합 테스트 수행과 오픈 사이에 빠져 있던 선행 관계 — 하나를 보완했다(이 조정이 일정 전체에 어떻게 번졌는지는 그 자체로 한 편 분량의 이야기라, 다다음 편에서 따로 다룬다).

조정이 끝난 간트에서 Baseline 토글을 켜면, 현재 막대 아래에 BL-1의 회색 막대가 깔린다.

간트의 Baseline 오버레이 — 각 작업의 현재 막대 아래 회색 기준 막대가 깔리고, 마이그레이션 검증·통합 테스트 수행·시스템 오픈·안정화 구간에 +5d 지연 배지가 붙어 있다. 기준 마일스톤(속 빈 마름모)과 현재 마일스톤(주황 마름모)이 나란히 보인다

밀린 다섯 구간에 +5d 배지가 붙었고, 시스템 오픈 마일스톤은 기준 위치(속 빈 마름모)와 현재 위치(주황 마름모)가 나란히 보인다. Overview의 베이스라인 카드도 Δ 지연 5 · 추가 0 · 삭제 0으로 요약을 갱신했다. "원래 계획이 뭐였죠?"라는 질문은 이제 회의에서 나올 수 없다 — 화면에 원래 계획이 같이 그려져 있기 때문이다.

정직하게 — 안 되는 것

케이스 스터디의 관례대로, 못 하는 것도 그대로 적는다.

맺음

기준선과 SPI가 바꾼 건 지연의 크기가 아니라 지연이 발견되는 시점이다. 기준 없이 갔다면 이 프로젝트의 7주차 회의는 "조금 밀린 것 같은데 다음 주에 정확히 보고드리겠습니다"로 끝났을 것이다. 기준이 있으니 같은 회의가 "계획 대비 84%, 4주째 하락, 원인은 마이그레이션, 오늘 조정했습니다"가 된다.

물론 0.84라는 숫자가 프로젝트를 구해 주지는 않는다. 지표는 처방이 아니라 조기 경보다. 무엇을 줄이고 누구를 붙일지는 여전히 PM의 판단이다. 다만 판단이 서려면 먼저 사실이 서야 하고, 이번 실험이 보여준 건 그 사실 — 얼마나, 언제부터, 어디가 — 이 입력 몇 번에 화면 한 장으로 선다는 것이다.

그날 우리는 일정을 고쳤다. 기간을 늘렸고, 이름을 다듬었고, 담당을 지정했고, 잘못 넣은 진척률을 정정했다. 그런데 일주일 뒤 회의에서 누군가 물으면 — "이 마감일, 원래 언제였죠?" — 무엇으로 답할 것인가. 그 답이 다음 편이다.