기본 콘텐츠로 건너뛰기

PERT/CPM

 "공정관리를 잘 안다고 말하면서 어떻게 PERT/CPM을 모를수있지?"

가끔 발주자 혹은 감리자가 PERT/CPM 공정표를 제출하라는 요구를 한다. 이때 놀라운 일이 벌어진다.

프로젝트가 진행되면 발주자도 감리자도 현장소장도 공무팀장도 시공팀장, 시공담당자도 모두가 공정관리에 대해 잘 알고 있다고 주장한다. 특히 공정관리자가 투입된 국내 현장에서는 이런 현상이 도두라지게 나타난다. 모두가 공정관리자에게 조언을 한다. "공정관리는 이렇게 하는거야. 공정표는 이렇게 만드는 거야" 이런 현장에서 'PERT/CPM 공정표를 제출하라는 요구'를 받게 되면 나서는 사람은 없다. PERT/CPM 공정표가 무엇이고 어떻게 만들고 운영하는지에 대해 조언하는 경우는 거의 찾기 어렵다. 그동안 공정관리에 대해 잘안다고 잘난척 하는 사람들은 어디에 있는지 찾기 어렵다는 것이다.

PERT와 CPM은 공정관리의 가장 기본 이론 중 하나다. 잘난척 하고 싶으면 공정관리에 대한 공부부터 하자.

PERT는 무엇의 약자일까? 또 대답을 못한다. PERT가 어떻게 언제 만들어 졌는가는 상식의 영역이다. PERT의 역사를 몰라도 일은 할 수 있다. PERT는 Program Evaluation and Review Technique의 약자다. 따라서 대문자로 쓰는게 맞다. CPM은 Critical Path Method의 약자이다.

이름을 알았으니 내용을 알아보자.

<그림1>

<그림2>

<그림3>

<그림1>과 <그림2>, <그림3> 중 어떤것이 PERT이고 어떤것이 CPM일까?

<그림1>과 <그림2>, <그림3> 모두가 PERT라고 할 수도 있고, CPM이라고 할 수도 있다. 그러나 아마도 "<그림2>과 <그림3>은 PERT이고 <그림1>이 CPM이다"라도 답변할 가능성이 높아보인다. 이런 판단/주장이 한국 건설업 공정관리의 대표적 오류 중 하나다. O가 있고, 화살선으로 연결되어 있으면 PERT라고 생각하고, O가 없고, Bar를 화살선으로 연결하면 CPM이라고 생각한다.

<그림1>, <그림2>, <그림3>은 PERT와 CPM을 나누는 기법의 차이가 아니라, 공정표 작성 형식의 차이이다. <그림1>은 PDM(Precedence Diagram Method)이라고 불리는 공정표 작성 형식이다. <그림2> 역시 PDM(Precedence Diagram Method)이다. 단지 Node라고 부르는 O를 추가했을 뿐이다. <그림3>은 ADM (Arrow Diagram Method)이라고 불리는 공정표 작성 형식이다. 한국 건설업에 CPM이라는 이론이 들어왔을 당시 <그림3>과 같은 ADM이 소개되었고, 꽤 오랜시간 ADM을 PERT/CPM이라고 불렀기 때문에 ADM을 PERT라고 판단/주장하는 한국 건설인들이 꽤 있는 것 같다.

<그림4>

<그림5>

<그림3>과 <그림4> 모두가 PERT라고 할 수도 있고, CPM이라고 할 수도 있다. <그림4>는 PDM(Precedence Diagram Method)방식 중 AON(Acitivity on Node)으로 작성한 것이고, <그림5>는 ADM(Arrow Diagram Method) 방식 중 AOA(Activity on Arrow)로 작성한 것이다. 이 시점이 되면 머리가 복잡한 독자들이 있을 것이다. 분명 공정관리를 잘 알고 있다고 주장하는 분들도 이 내용은 잘 이해하지 못한다. 무슨 공정관리를 잘 아는 것일까? PERT와 CPM과 같은 공정표관리의 기본 이론도 잘 모르고, ADM, PDM과 같이 공정표의 작성 형식도 잘 모르고, AON, AOA와 같이 공정표에 Activity 이름을 표시하는 방식도 잘 모르는데 어떤 공정관리를 잘 아는 것일까? 이런 것은 공정관리를 할 때 몰라도 되는 내용일까?

즉, 위 다섯가지 그림 모두가 PERT라고 할 수도 있고, CPM이라고 할 수도 있다.

PERT와 CPM은 어떤 차이가 있을까? 먼저 CPM을 설명하겠다. PERT와 CPM은 공정표를 표현하는 형식과는 아무런 상관이 없다.

<그림6>

<그림7>

<그림6>은 PDM이고 <그림7>은 ADM이다. <그림6>과 <그림7>과 같이 각 Activity의 기간을 산정/확정한 후 공정표에 반영한다면 <그림6>과 <그림7>은 CPM이라고 부를 수 있다. CPM은 각 Activity의 기간을 확정한 후 공정표를 작성하고 운영하는 방식을 말한다.

<그림8>

<그림9>

<그림8>은 PDM이고 <그림9>는 ADM이다. Activity의 기간에 변동성이 있다는 판단으로 공정관리(공정표관리)를 한다면 PERT 기법이라고 할 수 있는 것이다. Activity의 기간을 산정할 때, 과거 실적을 근거로 판단할 수도 있다. 실적을 충분히 확보하면 비관치, 최빈치, 낙관치를 얻을 수 있다. 이 값을 활용하여 계약준공일의 달성 확률과 80% 달성이 예상되는 준공일, 90% 달성이 예상되는 준공일을 산정할 수 있다. <그림8>과 <그림9>과 같이 각 Activity의 기간이 확정되지 않고 유동적인 상황으로 관리한다면 PERT라고 부를 수 있는 것이다.

<그림10>

<그림11>

<그림10>은 CPM이고, <그림11>은 PERT이다.

CPM인 <그림10>을 활용하여 공사기간을 한 번 계산해보자. 공사기간을 계산하기 위해서는 CP(Critical Path)를 찾아야 한다. <그림10>은 Activity기간이 확정되어 있으므로 Float을 계산해서 CP를 찾을 수도 있고, Longest Path를 사용해서 CP를 찾을 수도 있다. CP는 A-B경로이고, 공사기간은 12+9=21일이 된다.

PERT인 <그림11>을 활용하여 공사기간을 한 번 계산해보자. 공사기간을 계산하기 위해서는 CP(Critical Path)를 찾아야 한다. <그림11>은 Activity기간이 확정되어 있지 않으므로 Float을 계산하기 어렵다. Longest Path도 판단하기 어렵다. Activity의 기간이 변동성이 있으므로 전체 기간도 정확하게 판단하기 어렵다. 모든 Activity가 낙관적으로 진행된다면, A-B가 CP가 되고 공사기간은 8+7=15일이 된다. 모든 Activity가 비관적으로 진행된다면, A-B가 CP가 되고 공사기간은 14+11=25일이 된다. A와 B는 낙관적으로 진행되고, 天과 地가 비관적으로 진행된다면 CP는 天-地가 되고 공사기간은 6+12=18일이 된다. 각 Activity의 기간을 각 Activity의 범위내에서 무작위로 진행된다고 가정하고 계산하는 방법을 확률론적 계산방법이다. 무작위로 진행된다고 가정하여 공사기간을 판단하기 위해서는 Excel을 활용할 수 있다. 아래 표의 빨간색 숫자는 무작위로 산정되기 때문에 할 때마다 모든 값은 바뀌게 된다.

위 사례에서 공사기간은 22일이 7번으로 가장 높은 확률로 나왔다. Excel로 하는 것이 한계가 있기 때문에 Oracle에서는 Primavera Risk Analysis라는 프로그램을 만들었고, Primavera Risk Analysis는 계약준공일 달성확률, 50% 준공일, 80% 준공일, 100% 준공일을 확인할 수 있게 해준다.

PERT와 CPM을 구분하는 것은 공정표의 작성 형식이 아니다. ADM과 PDM은 PERT도 될 수 있고, CPM도 될 수 있다. Activity를 만들고, 선후행관계를 연결하는 것은 PERT와 CPM이 동일하다. 가동률을 Calendar로 만들어서 적용하는 것도 PERT와 CPM이 동일하다. 각 Activity의 기간을 확정한 후 공정표에 반영하고 운영하면 CPM이고, 각 Activity의 기간이 변동성이 있다고 판단하고 운영하면 PERT가 되는 것이다. Primavera, MS-Project는 CPM 관리를 위한 프로그램이다. Primavera Risk Analysis(PRA)는 PERT 관리를 위한 프로그램이다.

"Activity 기간을 PERT로 산정하면, 그게 PERT 아닌가?" 라고 말하는 경우도 있다. 여기서의 PERT는 3점산정법(Three-Point Estimates)를 말한다. 3점산정법을 알아 보자. 3점산정법을 PERT라고 부르는 경우도 있기 때문에 위와 이런 오해가 생기는 것이다. PMBOK 4판과 5판에서 다음과 같이 소개하고 있다. "3점 산정(Three-Point Estimates)는 기간 산정의 불확실성과 리스크를 고려하여 활동 기간 산정치의 정확도를 높일 수 있다. 이러한 개념은 PERT(Program Evaluation and Review)에서 비롯되었다. PERT는 세가지 산정치를 사용하여 활동 기간의 개략적 범위를 정한다." PMBOK 3판과 6판에서는 이런 소개가 없다. 3점산정법이 PERT에서 유래가 되었다고 하더라도, 3점산정법을 통해 Activity 기간을 확정하고 공정표를 운영하면 CPM이 되는 것이다.

댓글

이 블로그의 인기 게시물

[PK] 공정표의 활용

PMBOK 제6판 '그림 6-21. 프로젝트 일정도표 - 예'를 이용해서 공정표를 한 번 만들어 보자. 1. WBS/WBS Level 1 (프로젝트) : 신제품 Z 개발사업 WBS Level 2 (패키지) :   - 제품 개발 및 인도   - 작업패키지 1   - 작업패키지 2   - 작업패키지 3 2. Activity List PMBOK에서는 아래와 같은 예를 보여주고 있다. PMBOK 제6판 219페이지 * 위 그림에서 마지막 4번째 줄과 5번째 줄은 액티비티 이름이 바뀌었다. '1.1.3.T 구성요소 1과 2 통합완료'와 '1.1.3.M1 통합구성요서를 제품 Z로 테스트'가 서로 이름이 바뀌었다. Primavera로 구현한 내용은 아래와 같다. 여기서 일정도를 표시하기 위해 PMBOK는 실적을 반영한 모습을 보여주고 있다. 공정표는 위와 같이 항상 마일스톤과 요약된 내용을 확인할 수 있어야 한다. 이것을 공정관리(공정표 관리)의 기본이다. 프로젝트의 공정표를 만들 때 액티비티를 늘리는 것은 좋지 않다. 아무리 복잡한 프로젝트라 하더라도 최대 3,000개를 넘지 않는 것이 좋다. 프로그램이 있다 하더라도 실적을 입력해야 하는 건 1명의 사람이다. 사람은 물리적인 시간에 구속을 받게 되어 있다. 또한 단순 반복 작업은 오래할 수 없는 특성도 있다. 3,000개의 액티비티의 움직임을 확인하는 것도 현실적으로 쉽지 않다. 그런데 그 이상이라면? 그것은 공정표를 보지 않겠다는 의미와 같다는 것이다. "난 1만개, 2만개도 관리해 봤어"라고 말하는 건 자랑이 아니라, 본인 스스로 공정표를 효과적으로 관리해 보지 않았다는 증거를 떠들고 있는 것이다. 아무리 액티비티를 줄이려고 해도 한계는 있다. 3,000개의 액티비티를 하나씩 확인하면서 공정관리를 진행한다는 것은 매우 어렵다....

상세공정표와 CPM 공정표

한국 건설인들이 공정관리에서 가장 혼동하는 것이 상세공정표와 CPM 공정표의 차이다. 즉, 공정관리에 대해서 잘 모르고 있다는 것이다. 한국 건설인들은 주로 시공공정표를 만들어 왔다. 시공공정표는 본인들의 진행해야 할 작업의 착수, 완료 목표를 알려주는 공정표다. 이 공정표는 선후행관계에 의해 작성되는 것이 아니라, 본인들의 목표를 바챠트로 그리면 되는 것이다. 따라서 목표만 있다면 작성은 어렵지 않았다. 그리고 세상의 중심은 자신이기 때문에 자신이 정한 목표에 대한 선행작업들은 그 목표에 맞게 진행이 되어야 했던 것이다. 선행작업이 지연된 것은 자신의 잘못이 아니라, 선행작업을 진행했어야 할 다른 직원들이 잘못인 것이었다. [그림1. 시공팀의 바챠트 공정표] 위 공정표는 분명 작성자의 의도가 숨어있을 것이다. 4월 1일에 착수해야 준공을 준수할 수 있다는 경험치가 반영되어 있을 것이다. 그런데 믿도 끝도 없이 이렇게 작성해 놓으면 되는 것일까? 터파기를 착수하려면 인허가, 하청사 선정, 장비 및 인원 동원, 시공계획서 작성 및 승인 등이 되어야 할 것인데, 이 공정표를 작성한 시공담당자는 그런 일 들은 본인의 업무가 아닐 것이다. 인허가는 발주자가, 하청사 선정은 공무가, 장비 및 인원 동원은 하청사가, 시공계획서는 아래 직원이 당연히 완료해 놓아야 한다는 신념이 있을 것이다. 그 중 하나가 지연된다면 해당 담당자가 잘못한 것이지, 본인이 잘못한 것이 아니라는 믿음도 있을 것이다. [그림2. 시공팀의 상세공정표] 시공담당자는 이런 상세공정표를 만들기도 한다. 위 공정표의 숨은 의도는 아래와 같을 것이다. [그림3. 시공팀의 의도] 위 그림과 같이 철근의 작업조 기준으로 진행될 것을 긍정적으로 예상하고 만든 공정표 일 것이다. 시공계획에서는 이런 식으로 만들 수 있고, 시공팀의 목표로 진행하는 것에 대해서 반대할 이유는 없다. 그러나 위 공정표를 CPM으로 구성한다면 아래와 같이 만드는 것이 좋다. [그림4. 시공팀의 의도와는 다른 CPM...

공정관리와 Fragnet

Fragnet? 사전에도 나오지 않는 이 단어는 무슨 의미일까요? 이 단어를 처음 본 것은 P3(Primavera Project Planner)를 사용할 때 였습니다. P3의 Fragnet 잘 사용하는 기능이 아니었기 때문에 기능이 있다는 것은 알았지만 Fragnet이라는 단어는 기억 깊은 한 구석에 있는 단어일 뿐이었습니다. 그런데 최근 EOT 클레임에서 종종 사용되는 단어로 부각되고 있습니다. 그렇다면 P3의 Fragnet은 어떤 기능이었을까요? 반복적인 일정이 있다면 Fragnet으로 저장해 놓고 꺼내 쓰는 기능이었습니다. 예를 들어 A-B-C가 FS로 연결되어 있고, 종종 사용한다면 Fragnet으로 저장해놓고, 사용이 필요할 때 불러오면 됩니다. P6에서는 Copy, Paste로 할 수 있어서인지 Fragnet 기능이 사라졌습니다. 이런 기능이라는 것을 이해하고, Fragnet이라는 단어의 의미를 유추해보면 '단위 일정' 혹은 '단위 공정표'라는 것을 알 수 있습니다. 그래서인지 EOT 클레임에서도 Sub-Network과 Fragnet을 혼용해서 사용하고 있습니다. 최근 EOT 클레임이 부각되면서 Fragnet이 다시 사용되기 시작했습니다. 해외에서는 계속 써왔는데, 국내에서 EOT 클레임이 부각되면서 쓰기 시작했을 수도 있고요. 어쨌든 Fragnet은 특정한 사건이 발생했을 때에 대한 단위공정표라고 이해하시면 됩니다. 승인공정표는 관리 가능한 수준에서 액티비티를 만들게 됩니다. 무조건 상세하게 만드는 것이 아닙니다. 따라서 '발주자 지연 요인'이 발생했을 때 승인공정표로는 상세한 설명이 어렵고, 증명할 자료로 사용하기에 불충분 할 수 있습니다. 이런 상황이 발생했을 때 상세한 설명을 하기 위한 공정표가 바로 Sub-Network(Fragnet이라고도 불림)을 만들어서 설명을 하는 것입니다. 만들었다면 업데이트할 때 승인공정표에 포함하여 발주자에 공기연장에 대한 증거서류로 제출해야 합니다....