CPM (Critical Path Method) (주공정법)
CPM(Critical Path Method, 주공정법)은 종속성 네트워크를 앞으로 한 번, 뒤로 한 번 훑어 각 작업의 가능한 날짜와 여유 시간을 계산하는 일정 산정 기법이다.
어떻게 계산하는가
두 번의 훑기(pass)로 이루어진다. 전진 계산(forward pass)은 시작점부터 따라가며 각 작업의 가장 이른 시작(ES)과 가장 이른 종료(EF)를 구한다. 후진 계산(backward pass)은 완료일에서 거꾸로 내려오며 가장 늦은 시작(LS)과 가장 늦은 종료(LF)를 구한다. 두 값의 차이 LS-ES가 여유 시간(Float)이고, 여유가 없는 작업들의 사슬이 주공정이다. A(5일)의 ES가 1일이면 EF는 5일, 그 FS 후행 B(3일)의 ES는 6일, EF는 8일이 되는 식이다. 계산 축은 대개 근무일이다. 주말과 공휴일은 캘린더로 제외되어, 5일짜리 작업이 금요일에 시작하면 다음 주로 넘어간다.
왜 중요한가
날짜를 손으로 적는 일정과 논리에서 도출되는 일정의 차이를 만들기 때문이다. 작업 하나의 기간이 바뀌거나 종속성이 추가되면 CPM은 전체 날짜를 즉시 다시 계산한다. 수십 개 작업의 날짜를 손으로 고쳐 맞추는 일정표는 첫 변경에서부터 무너진다. 여유 시간이라는 부산물도 계산만큼 값지다. 어느 작업이 늦어도 되는지, 어디서 사람을 빼도 되는지가 수치로 나온다.
흔한 오해
CPM이 자원을 안다고 믿는 것이 오해다. CPM은 순수하게 논리와 기간만 계산해서, 같은 사람이 두 작업에 동시에 배정되어 있어도 두 작업을 병행 가능으로 계산한다. 자원 충돌의 해소(자원 평준화)는 CPM 다음의 별도 단계다. CPM의 답은 "논리상 가능한 가장 빠른 일정"이지 "실행 가능한 일정" 그 자체가 아니다. 계산을 손으로 하는 일은 이제 드물지만, 도구가 내놓은 날짜를 검산할 줄 아는 PM과 그렇지 못한 PM의 차이는 여전히 크다.
wbsgantt는 종속성·기간·캘린더가 바뀔 때마다 백그라운드에서 CPM을 자동 재계산합니다.