일정 리스크 분석: 프로젝트가 늦어지는 이유
최빈 기간으로 만든 일정은 낙관적이기 때문에 프로젝트는 늦게 끝납니다. 한 건축 프로젝트에서 최빈 기간대로면 55주차에 끝나지만, 시뮬레이션 결과 5,000개 중 그때까지 끝나는 것은 14.3%뿐입니다. 평균 완료 시점은 58.2주차, P80 완료 시점은 60.7주차이므로 60주차 기한을 넘기는 결과가 27.2%입니다.
최빈 완료 시점과 평균 완료 시점 사이의 3.23주는 세 가지 원인으로 생깁니다. 줄어드는 폭보다 늘어나는 폭이 큰 기간(2.50주), 악천후 리스크(0.60주), 병렬 공종 두 개가 만나는 곳의 병합 편향(0.13주)입니다.
일정 리스크 분석은 무엇인가
일정 리스크 분석은 각 활동의 기간을 하나의 숫자 대신 범위로 주고, 작업을 늦출 수 있는 리스크 이벤트를 더한 뒤, 그 범위에서 뽑은 값으로 일정을 수천 번 다시 계산합니다. 바로 몬테카를로 시뮬레이션입니다. 결과는 완료 시점의 분포이며, 여기서 기한을 지킬 확률과 선택한 신뢰 수준의 완료 시점을 읽습니다. 예를 들어 P80은 시뮬레이션 결과의 80%가 그때까지 끝나는 날짜입니다(P50, P80, P90 참고).
단일 값 일정은 “모든 활동이 최빈 기간만큼 걸리면 언제 끝나는가?”에 답합니다. 일정 리스크 분석은 “각 완료 시점의 확률은 얼마인가?”에 답하며, 앞의 답이 대개 너무 이른 이유를 보여 줍니다.
예제 일정
건축 프로젝트 예제에는 비용 추정 옆에 Schedule 시트가 있습니다. 활동 7개의 기간은 주 단위이며, 설계, 허가, 기초, 구조가 차례로 이어진 다음 MEP(기계, 전기, 배관)와 마감 공사가 병렬로 진행되고, 마지막에 시운전이 옵니다. 완료 시점(시작 후 주 수)은 수식 하나로 계산합니다: =C2+C3+C4+C5+MAX(C6,C7)+C8+B10.
MAX(C6,C7) 부분은 병렬로 진행되는 두 공종 중 더 오래 걸리는 쪽을 기다립니다. B10은 악천후로 인한 지연이며 수식은 =Estimate!D14*2입니다. 비용 추정의 리스크 관리대장에 있는 악천후 리스크가 발생하면(30% 확률) 2주가 늘어나고, 발생하지 않으면 지연이 없습니다. 시뮬레이션에서는 각 기간에 최소, 최빈, 최대로 정한 3점 PERT 분포를 지정합니다:
| 활동 | 최소 | 최빈 | 최대 | 평균 |
|---|---|---|---|---|
| 설계 | 6 | 8 | 12 | 8.33 |
| 허가 | 4 | 6 | 12 | 6.67 |
| 기초 | 8 | 10 | 14 | 10.33 |
| 구조 | 14 | 16 | 22 | 16.67 |
| MEP(병렬) | 10 | 12 | 16 | 12.33 |
| 마감 공사(병렬) | 8 | 10 | 15 | 10.50 |
| 시운전 | 2 | 3 | 5 | 3.17 |
최빈 완료 시점과 시뮬레이션 완료 시점
모든 기간이 최빈값이고 악천후 지연이 없으면 엑셀 파일은 55주차라고 답합니다. 단일 값 일정이 약속하는 날짜입니다. 시뮬레이션은 활동 7개의 기간과 악천후 리스크를 함께 뽑는 과정을 5,000회 반복합니다:
| 최빈 완료 시점(모든 기간이 최빈값, 악천후 지연 없음) | 55 |
|---|---|
| 시뮬레이션 완료 시점의 평균 | 58.2 |
| P50(결과의 절반은 이보다 일찍 끝남) | 58.2 |
| P80 | 60.7 |
| P90 | 62.1 |
| 55주차까지 완료 확률 | 14.3% |
| 60주차 이후 완료 확률 | 27.2% |
평균 완료 시점은 58.2주차이고, 55주차까지 끝나는 결과는 14.3%뿐입니다. 60주차 기한은 P50(58.2)과 P80(60.7) 사이에 있습니다. 기한을 지키는 결과는 72.8%, 넘기는 결과는 27.2%입니다. 이 일정의 추정 가운데 부주의한 것은 없습니다. 낙관적인 이유는 최빈값을 더하는 방식에 있으며, 원인은 세 가지입니다.
프로젝트가 늦어지는 세 가지 원인
최빈 완료 시점과 평균 완료 시점 사이의 3.23주는 정확히 세 부분으로 나뉘며, 각 부분은 시행에서 측정한 값입니다.
| 최빈 완료 시점 | 55.00 |
|---|---|
| + 치우친 기간 | 2.50 |
| + 악천후 | 0.60 |
| + 병합 편향 | 0.13 |
| = 시뮬레이션 완료 시점의 평균 | 58.23 |
치우친 기간: 2.50주. 여기 모든 범위는 최빈값 아래보다 위로 더 멀리 뻗어 있습니다. 활동은 줄어드는 폭보다 늘어나는 폭이 더 클 수 있습니다. PERT 기간의 평균은 (최소 + 4 × 최빈 + 최대) / 6이므로, 예를 들어 허가 활동은 최소 4주, 최빈 6주, 최대 12주이면 평균 6.67주가 걸립니다. 최빈 일정의 경로(마감 공사를 뺀 모든 활동이며, 마감 공사는 더 긴 MEP와 나란히 진행됩니다)를 따라 평균에서 최빈값을 뺀 값을 더하면 2.50주이고, 이는 전체 차이의 77.4%입니다. 가장 큰 몫은 허가와 구조에서 나오며 각각 0.67주입니다. 이 활동들의 범위는 최빈 기간보다 위로 6주 뻗고, 아래로는 2주뿐입니다.
악천후: 0.60주. 이 리스크 이벤트는 발생하는 시행(30%)에서 2주를 더하고 나머지에서는 아무것도 더하지 않아, 평균 0.60주가 됩니다. 0.60주만큼 지연되는 시행은 없습니다. 모든 시행은 2주 지연되거나 전혀 지연되지 않습니다. 최빈 일정은 이 리스크가 발생하지 않을 가능성이 더 높다고 보고 뺍니다. 그런데도 기한을 넘기는 비율은 지연이 있는 시행에서 40.9%, 없는 시행에서 21.4%입니다.
병합 편향: 0.13주. 병렬 경로가 만나는 곳에서는 작업이 더 늦은 쪽을 기다립니다. MEP는 평균 12.33주, 마감 공사는 10.50주가 걸리므로 대체로 MEP가 속도를 정합니다. 그러나 시행의 15.0%에서는 마감 공사가 더 오래 걸리고, 그때는 평균 0.85주가 더 걸립니다. 이 시행들이 MAX(C6,C7)의 평균을 MEP의 평균보다 0.13주 높입니다(15.0% × 0.85). 두 기간 중 더 긴 쪽의 평균은 평균 중 더 긴 쪽보다 크며, 단일 값 일정은 이 차이를 보여 주지 못합니다.
고전적인 PERT 방법처럼 경로를 따라 평균 기간을 더하면 57.5주차가 나옵니다. 이렇게 하면 치우친 기간의 낙관은 없어지지만 리스크 이벤트와 병합 편향은 여전히 놓칩니다. 그래서 일정 리스크 분석은 일정 전체를 시뮬레이션합니다.
병렬 경로의 길이가 비슷할수록 병합 편향이 커집니다
병합 편향은 여기서 가장 작은 원인입니다. MEP가 마감 공사보다 평균 1.83주 길어서 마감 공사가 MEP를 앞지르는 일이 드물기 때문입니다. 마감 공사에 MEP와 같은 범위를 주고 같은 시행을 다시 실행해 봅니다(다른 입력은 뽑은 값을 그대로 씁니다):
| 원래 범위 | MEP 범위 적용 | |
|---|---|---|
| 최빈 완료 시점, 주차 | 55 | 55 |
| 마감 공사가 MEP보다 오래 걸림 | 15.0% | 49.7% |
| 병합 편향, 주 | 0.13 | 0.63 |
| 평균 완료 시점, 주차 | 58.2 | 58.7 |
| P80 완료 시점, 주차 | 60.7 | 61.2 |
| 60주차 이후 완료 확률 | 27.2% | 32.8% |
최빈 완료 시점은 달라지지 않습니다. 단일 값 일정은 두 최빈 기간 중 긴 쪽만 보며, 이는 여전히 MEP의 12주입니다. 그러나 이제 마감 공사가 더 오래 걸리는 시행이 약 절반이고, 병합 편향은 0.63주로 커지며, 60주차 이후에 끝날 확률은 27.2%에서 32.8%까지 올라갑니다. 한 지점에서 만나는 경로가 많을수록, 그리고 길이가 비슷할수록 병합 편향은 커집니다. 따라서 길이가 비슷한 병렬 경로가 많은 일정에는 대개 이 예제보다 병합 편향이 더 큽니다.
P80 완료일 정하기
신뢰도 80%의 완료일은 시뮬레이션 완료 시점의 P80입니다. 일정 버퍼, 즉 일정 예비는 최빈 완료 시점과 확약하는 날짜 사이의 시간입니다:
| 신뢰 수준 | 완료 주차 | 55주차 이후 버퍼 |
|---|---|---|
| P50 | 58.2 | 3.2 |
| P80 | 60.7 | 5.7 |
| P90 | 62.1 | 7.1 |
60주차 기한을 지킬 신뢰도는 72.8%이며, P80보다 낮습니다. P80으로 확약하려면 날짜를 60.7주차로 미루거나 완료 시점을 좌우하는 활동을 단축해야 하며, 이는 다음 절에서 다룹니다. 어느 신뢰 수준을 쓸지는 비용 예비비처럼 정책 결정입니다.
xellstorm에서는 S커브에 마우스를 올리면 어느 주차까지든 끝날 확률이 나오고, 확률 입력란에 주차를 입력하면 그 이후에 끝날 확률이 나옵니다.
완료 시점을 좌우하는 요인
분산 기여도는 완료 주차의 흩어짐을 어느 입력이 설명하는지 보여 줍니다. xellstorm은 시행의 순위를 회귀해 추정하며, 앱에 나오는 숫자와 같습니다.
범위가 가장 넓은 두 활동은 허가와 구조이며(최소에서 최대까지 8주), 각각 약 23%씩 설명합니다. 비용 추정에서 온 리스크인 악천후가 설명하는 비중은 10.2%입니다. 마감 공사가 설명하는 비중은 0.4%에 불과합니다. 시행의 15.0%에서만 완료 시점을 정하고, 나머지에서는 기간이 결과에 영향을 주지 않기 때문입니다. 비용 항목과 나머지 리스크 이벤트는 완료 수식에 없으므로 실제 비중은 0이며, 추정값은 합쳐서 0.1% 미만입니다. 토네이도 차트 가이드에서 한 번에 하나씩 바꾸는 토네이도 차트가 병렬 공종 두 개를 어떻게 잘못 읽는지 보여 줍니다.
한계: CPM 네트워크가 아닌 스프레드시트 일정
xellstorm은 엑셀 파일 자체의 수식을 시뮬레이션하며, 일정 논리는 그 수식 안에 있습니다. 순차 활동은 합으로, 경로가 합류하는 곳은 MAX로 표현합니다. 임계 경로법(CPM) 일정 도구와 달리 활동과 연결 관계로 이뤄진 네트워크는 없습니다. 연결 유형이나 지연 시간(lag)도, 달력도, 자원 평준화도 없고, 시행마다 임계 경로를 구하지도 않습니다. 수식이 표현하는 것은 xellstorm이 시뮬레이션하고, 엑셀 파일에 없는 것은 더할 수 없습니다.
xellstorm은 엑셀 파일(.xlsx, .xlsm)을 열고 Primavera P6 파일이나 Microsoft Project 파일은 읽지 않습니다. 이런 도구에 일정이 있다면 이 예제처럼 주요 경로를 엑셀 파일로 모델링하거나, 일정 파일을 읽는 일정 리스크 도구를 쓰면 됩니다. 스프레드시트는 초기 추정, 병렬 경로가 몇 개뿐인 요약 일정, 같은 엑셀 파일의 비용 모델과 연결된 일정에 적합하고, 연결된 활동 수백 개로 이루어진 상세 네트워크는 일정 관리 도구의 영역입니다.
직접 해 보기
- xellstorm에서 모델을 엽니다. 입력, 출력, 60주차 목표가 이미 설정되어 있고, 설치도 가입도 필요 없습니다. 엑셀 파일은 브라우저에서 계산합니다.
- 실행한 뒤 완료 주차의 결과를 엽니다. 같은 시드와 시행 횟수를 쓰면 이 페이지의 숫자가 그대로 나옵니다. 평균(그 아래에 엑셀 파일 값인 55주차), 60주차 이후에 끝날 확률, P90, 그리고 P1부터 P99까지의 백분위수(P80, 60.7주차 포함)입니다.
- 확률 입력란에서
<=조건을 고르고 55 값을 입력하면 최빈 완료 시점을 지키는 경우가 얼마나 드문지 바로 보입니다. - Distributions 단계에서 마감 공사에 MEP의 범위(10, 12, 16)를 주고 다시 실행합니다. 평균과 P80은 더 늦어지지만 엑셀 파일 값은 55주차 그대로입니다.
- HTML 보고서, PowerPoint 슬라이드, 결과 엑셀 파일을 내보냅니다. 결과 엑셀 파일에는 시행마다의 입력과 출력이 모두 들어 있어, 마감 공사가 MEP보다 오래 걸리는 횟수를 직접 셀 수 있습니다.
자주 묻는 질문
프로젝트 일정의 병합 편향은 무엇인가요?
병합 편향은 일정의 병렬 경로가 합쳐지는 곳에서 생기는 추가 지연입니다. 다음 활동은 가장 늦은 경로를 기다리는데, 여러 기간 중 가장 늦은 것의 평균은 평균 중 가장 늦은 것보다 큽니다. 단일 값 일정은 이를 보여 주지 못합니다. 건축 예제에서는 평균 완료 시점에 0.13주를 더하고, 병렬 공종 두 개의 범위가 같으면 0.63주를 더합니다.
P80 완료일은 무엇인가요?
P80 완료일은 시뮬레이션 결과의 80%가 그때까지 끝나는 날짜이므로, 프로젝트가 그보다 늦게 끝날 확률이 다섯 번에 한 번입니다. 일정 자체가 아니라 일정 리스크 분석에서 나오는 값입니다. 건축 예제에서 최빈 기간대로면 55주차에 끝나지만 P80은 60.7주차입니다.
평균 기간을 그냥 더하면 안 되나요?
임계 경로를 따라 평균 기간을 더하는 방식은 고전적인 PERT 방법이며, 치우친 기간은 바로잡지만 리스크 이벤트와 병합 편향은 반영하지 못합니다. 건축 예제에서는 57.5주차가 나오는 반면 시뮬레이션 평균은 58.2주차입니다. 차이는 악천후 리스크와 병합 편향입니다.
Primavera P6 또는 Microsoft Project 일정을 xellstorm에서 열 수 있나요?
아니요. xellstorm은 엑셀 파일(.xlsx, .xlsm)만 열며, Primavera P6 또는 Microsoft Project 파일은 읽지 않습니다. 순차는 합으로, 경로가 합류하는 곳은 MAX로 쓴 요약 일정처럼 스프레드시트 수식으로 쓴 일정은 시뮬레이션하지만, 연결된 활동의 네트워크는 시뮬레이션하지 않습니다.
활동 기간에 상관관계를 지정해야 하나요?
한 가지 원인이 여러 활동을 함께 늘릴 때는 상관관계를 지정해야 합니다. 예를 들어 낮은 생산성이나 계획보다 복잡한 것으로 드러난 설계가 그렇습니다. 상관관계가 있는 순차 활동은 일부가 상쇄되지 않고 함께 늘어나므로 완료 시점의 범위가 넓어집니다. xellstorm은 순위로 입력에 상관관계를 지정할 수 있으며, 이 예제는 단순하게 하려고 독립으로 둡니다.
관련 글
- 프로젝트 비용과 일정
건설 프로젝트에는 예비비가 얼마나 필요할까요?
예제 풀이: 건축 견적의 최빈 비용 합계를 넘는 시뮬레이션 결과가 94.2%입니다. 몬테카를로로 건설 비용 예비비를 산정합니다. - 가이드
P50, P80, P90의 의미와 예산을 잡는 기준
P80은 시뮬레이션 결과의 80%가 그 아래에 머무는 비용입니다. 건축 프로젝트의 비용 항목 6개의 P80을 더하면 2,843이지만(천 달러 단위), 항목 합계의 P80은 2,756입니다. - 가이드
토네이도 차트와 민감도 분석 설명
토네이도 차트는 입력을 하나씩만 움직입니다. xellstorm에서는 기본으로 P10에서 P90까지입니다. 건축 견적에서는 리스크 하나가 비용을 150(천 달러 단위)만큼 움직입니다.
xellstorm은 엑셀 모델을 브라우저에서 몬테카를로 시뮬레이션하는 도구입니다. 애드인은 필요 없고, 엑셀 파일은 내 컴퓨터 밖으로 나가지 않습니다.