← wbsgantt 홈
케이스 스터디

한 작업이 3일 밀리면, 전체는 며칠 밀리는가

앞 작업의 +3d 지연이 종속선을 타고 도미노처럼 뒤 작업들을 밀고, 마일스톤 마름모가 점선 기준 위치에서 +5d 뒤로 이동한 개념도 — float 15d가 0d로.

첫 케이스 스터디에서 Claude는 이 ERP 프로젝트의 WBS를 만들며 종속성 세 줄을 스스로 추가했다(첫 케이스 스터디). 그중 하나가 **"마이그레이션 실행·검증 → 통합 테스트 수행"**이었다. 정제된 데이터가 없으면 통합 테스트가 의미 없다는, 말로 하면 당연한 상식을 선(線) 하나로 박아 둔 것이다. 그 선이 이번 편에서 일을 한다.

지난 두 편에서 우리는 SPI 0.84를 보고 마이그레이션 검증 작업의 기간을 사흘 늘렸고, 그 기록까지 복기했다. 남은 질문이 이 글의 제목이다. 한 작업이 사흘 밀리면, 전체는 며칠 밀리는가. 답부터 말하면 — 처음엔 0일이었고, 그 0일이 문제였다. 광고가 아니라 실험 리포트다. 무대는 앞선 두 편과 같은 재앵커링 복제본(화면 코드 MCG-26B), 실행 7주차다.

이론 최소분 — 선의 문법

간트의 화살표에는 문법이 있다. 선행이 끝나야 후행이 시작하는 FS(Finish-to-Start)가 기본형이고, 같이 시작하는 SS, 같이 끝나는 FF, 드물게 SF가 있다. 선 위에 지연(lag)·선도(lead)를 얹을 수도 있다. 이 선들이 모이면 그래프가 되고, 그래프 위에서 하루도 여유가 없는 최장 경로가 계산된다 — Critical path다. 크리티컬 위의 작업이 하루 밀리면 프로젝트가 하루 밀린다. 크리티컬 밖의 작업에는 **여유(total float)**가 있어서, 그 범위 안의 지연은 전체에 닿지 않는다.

수식 없이 요약하면 이렇다. 지연은 선을 타고 흐르고, 여유는 지연을 흡수하며, 크리티컬 패스는 여유가 0인 물길이다. lag의 쓸모도 한 줄로 — "계약 서명 후 착수까지 대금 지급 7일"처럼 작업이 아니라 기다림인 시간은, 가짜 작업을 만드는 대신 선 위에 +7d로 얹는 게 그래프를 깨끗하게 유지한다.

선은 말단 작업끼리만 긋는 게 아니다. 이 프로젝트의 통합 테스트 Phase는 네 모듈의 단위 테스트를 선행으로 달고 있는데(트리의 선행 칸에 1.4.2, 1.5.2에 +2가 접혀 있다), Phase에 그은 선은 계산 시점에 그 아래 말단들로 펼쳐진다. "단위 테스트가 다 끝나야 통합 테스트 국면이 열린다"는 문장을 선 넷 대신 하나로 적을 수 있는 셈이다 — 그래프의 문법이 사람의 문장에 가까워질수록, 빠뜨림도 줄어든다.

우리 프로젝트의 시작 상태: 92일 계획, 크리티컬 패스 12노드 — 계획 수립에서 요구사항·설계 검토를 지나, 네 모듈의 단위 테스트와 결함 조치·사용자 교육을 거쳐 안정화까지 이어지는 물길이었다.

조정 전의 간트 — 월 줌으로 후반부 구간이 보이고, 마이그레이션 Phase와 통합 테스트·사용자 교육·오픈 구간의 막대가 종속성 화살표로 이어져 있다. 시스템 오픈 마일스톤 마름모가 크리티컬(빨강) 경로의 꼬리 앞에 있다

사흘을 밀었다 — 그리고 아무 일도 없었다

기간을 늘리기 전, 마이그레이션 실행·검증 노드의 상세 패널은 이렇게 말하고 있었다.

마이그레이션 실행·검증 노드의 상세 패널 — 헤더 아래 초록 체크로 "일정 여유 15일 — 늦어져도 전체 일정에 영향 없음", VALIDATION 박스에 Off critical path · 15d total float가 표시돼 있다

"일정 여유 15일 — 늦어져도 전체 일정에 영향 없음." 도구가 float를 사람 문장으로 번역해 준다. 그리고 기간을 7일에서 10일로 늘리자, 예고대로였다. 후행인 통합 테스트 수행이 닷새(달력) 뒤로 밀렸고 — 사흘의 작업일 지연이 주말을 끼고 번진 결과다 — 전파는 거기서 멈췄다. 시스템 오픈, 그대로. 프로젝트 종료, 그대로. 재계산은 우리가 손대지 않은 후행의 날짜까지 자동으로 옮겼지만, 여유가 지연을 다 삼켰다.

사흘 연장 직후의 간트 — 마이그레이션 실행·검증 막대가 길어지고 통합 테스트 수행 막대가 오른쪽으로 밀렸는데, 시스템 오픈 마름모와 오픈·안정화 구간은 제자리다. 밀린 통테 수행 막대의 끝이 오픈 마름모보다 오른쪽에 있다

엑셀 일정표였다면 이 대목에서 다른 밤을 보냈을 것이다. 셀 하나를 고치고, 그 셀을 참조하는 행들을 눈으로 따라가며 하나씩 수선하는 밤. 여기서는 선을 따라 계산이 흘렀고, 사람은 결과를 읽었다. 참고로 이 자동 이동은 지난 편에서 본 변경 이력에 남지 않는다 — 사람이 만진 건 기간 하나였고, 이력에도 그 하나만 남았다. 나머지는 계산의 몫이다.

0일이라는 답을 의심하다

그런데 캡처를 다시 보라. 밀린 통합 테스트 수행의 막대 끝이 시스템 오픈 마름모보다 오른쪽에 있다. 통합 테스트가 끝나기 전에 시스템을 연다는 뜻이다. 명백한 모순인데, 화면 어디에도 경고가 없다.

CPM은 거짓말을 하지 않았다. 우리가 말해 준 선만 지켰을 뿐이다. 원래 계획에서 통테 수행은 오픈 직전에 끝나게 되어 있었고, 그래서 "수행이 끝나야 오픈한다"는 선을 아무도 긋지 않았다 — 안 그어도 결과가 같았으니까. 지연이 그 가정을 무너뜨리자, 없는 선은 없는 대로 계산됐다. 15일이라던 여유의 정체가 이것이다. 그 여유의 대부분은 실제 여유가 아니라, 빠뜨린 종속성이 만든 가짜 여유였다.

100% Rule이 "빠뜨린 작업"을 잡는 규율이라면(1편), 종속성 그래프에는 아직 그런 규율이 없다. 빠뜨린 선은 조용하다. 지연이 와서 두들겨 볼 때까지.

일정 실무에는 이런 구멍을 킥오프 전에 찾는 점검 관례가 있다 — 후행이 하나도 없는 작업(dangling activity)을 훑어서 "이 일이 늦으면 정말 아무 데도 안 아픈가"를 되묻는 것이다. 우리 통테 수행이 정확히 그런 노드였다. 후행 없음, 여유 넉넉 — 점검표 위에서라면 5분 만에 걸렸을 구멍을, 우리는 지연이 두들긴 뒤에야 봤다. 도구가 그래프를 계산해 주는 시대에도 그래프를 심문하는 일은 남는다.

선 하나를 채우자 크리티컬 패스가 이사했다

조정 세션의 마지막 손질로 그 선을 그었다 — 통합 테스트 수행 → 오픈·안정화, FS. 재계산이 돌았고, 이번에는 전체가 움직였다.

종속성 보완 후의 간트 — 마이그레이션 실행·검증과 통합 테스트 수행 막대가 빨간 크리티컬로 바뀌고, 시스템 오픈 마름모가 오른쪽으로 이동했으며, 네 모듈의 단위 테스트 막대는 파란 일반으로 돌아왔다. 툴바의 총 기간이 92일로 늘어 있다

크리티컬 패스가 이사했다는 건 통계가 아니라 관리 대상이 바뀌었다는 뜻이다. 어제까지 PM이 아침마다 들여다봐야 할 작업은 단위 테스트 넷이었다. 오늘부터는 마이그레이션 검증과 통합 테스트 수행이다. 지연 하나가 프로젝트의 감시 목록을 갈아치웠는데, 그걸 사람이 다시 계산할 필요가 없었다 — 빨간 물길이 새 주소를 알려준다.

제목의 질문에 이제 답할 수 있다. 한 작업이 사흘 밀리면 전체는 며칠 밀리는가 — 그래프가 정직하면 사흘(작업일), 그래프에 구멍이 있으면 0일처럼 보인다. 0일이 더 무섭다. 사흘은 대응하게 만들지만, 0일은 안심하게 만들기 때문이다.

덧붙여 둘 관찰 하나. 재앵커링한 복제본의 후반 일정은 원본과 며칠 다르게 계산됐는데, 원본의 실행 창에 있던 추석·한글날 연휴가 복제본의 창에는 없기 때문이다. 일정 계산이 달력의 공휴일까지 보고 있다는 뜻이라, 캡처 속 날짜가 캔온과 어긋난 또 하나의 이유로 적어 둔다.

정직하게 — 안 되는 것

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

맺음

3부작을 관통한 건 하나의 사건이었다. 리스크 등록부가 경고했던 레거시 데이터가 실제로 발목을 잡았고(9편), SPI가 그 지연을 숫자로 끌어냈고(10편), 이력이 대응의 기록을 남겼고(11편), 종속성 그래프가 지연의 행선지를 계산했다(이번 편). 네 화면은 결국 한 질문의 네 얼굴이다 — 계획과 현실이 어긋날 때, 무엇을 근거로 다음 결정을 내릴 것인가.

간트차트의 화살표는 장식이 아니다. 그 선들은 PM이 프로젝트에 대해 아는 것을 그래프로 적어 둔 것이고, 계산은 딱 그 지식만큼 정직하다. 선을 긋는 것은 여전히 사람의 일이다 — 첫 편의 문장을 빌리면, 회상은 기계가 하되 약속은 사람이 한다. 이 도구가 해 주는 건 그 약속들이 서로 모순되기 시작하는 순간, 그것을 숫자와 빨간 물길로 보여주는 일이다.

그러니 이번 주에 당신의 일정표에서 해 볼 일은 하나다. 후행이 없는 작업을 찾아서 물어보라 — "이게 늦으면 정말 아무도 안 아픈가?" 아프다면, 선이 하나 빠진 것이다. 우리는 그 질문을 지연에게 대신 받았고, 수업료로 닷새를 냈다.