기본 콘텐츠로 건너뛰기

PERT/CPM 그리고 CCPM

우선 이 글은 제 개인적인 이해를 적당히 정리한 글입니다.

세부적인 내용은 지금도 학습하는 중으로 물어보신다 하여도 대답해 줄만한 능력은 아니됩니다.

물론 제 개인적인 이해이기 때문에 잘못된 개념이 있을 수도 있으며 그런 부분에 대해 트랙백이나 댓글로 친절하게 알려주었으면 하는 바입니다.

지금부터 하고자 하는 얘기는 일정의 추정에 대한 얘기입니다.

PMP 자격증을 취득하셨거나 중비중인 모든 분들은 기본적으로 PERT/CPM에 대해 알고 계실 것입니다.

고로 아래 내용은 다 아실 것이라 생각합니다. 다시 한번 말씀드리면 혹시 틀린 내용이나 이해를 잘 못하고 있는 부분이 있다면 친절히 알려주셨으면 하는 바입니다.

일정을 추산하는데 사용하는 분포는 크게 3가지로 나뉩니다.

베타 분포, 정규 분포, 삼각 분포


가장 먼저 볼 것은 정규 분포입니다. 아래 보는 것과 같은 그래프가 가장 대표적인 정규 분포 곡선이며, 6시그마에서 많이 볼 수 있는 곡선이기도 합니다.
위와 같은 정규분포 곡선에 따라 일정을 추산해 본다면 평균치는 현재 5일입니다. 어떤 작업을 수행할 때 평균적으로 5일을 소요하는 경우가 가장 많다라는 것입니다.

그렇다면 우리는 실제로 일정을 추산할 때 5일로 추산할까요? 절대로 그럴리가 없습니다. 우리는 여러 이유로 안전시간이라는 것을 삽입합니다.

만약 우리가 일정으로 5일로 추산한다면 일정에 맞춰 작업을 완료할 확률은 50%입니다. 때문에 우리는 일정에 맞춰 작업을 완료할 확률이 대략 90% 쯤 되는 날짜를 추산하게 됩니다. 대략 7일쯤을 적는 것이지요.

하지만 이렇게 일정을 추산하고 나면 사람은 역시 게을러지게 됩니다. 추가로 이틀의 시간을 안전시간으로 집어넣었기 때문에 파킨슨 법칙과 학생증후군의 환상 조합에 따라 7일이 다시금 평균값이 되고 일정이 완료되는 것은 9일경이 될 것입니다.

문제는 이러한 것이 각각의 작업 단위마다 발생된다면 전체 일정은 각 작업 단위의 지연이 모두 합쳐지기 때문에 눈덩이처럼 지연된다는 것입니다.

또다른 문제는 이것은 표준정규분포라는 것입니다. 표준정규분포는 말 그대로 무지막지하게 많은 표본 데이터가 있어야 합니다. 하지만 실제 프로젝트는 대부분 일회성에 가깝습니다. 즉, 위와 같은 표준정규분포와 맞지 않는다는 얘기가 됩니다.

여기서 사용하는 것이 베타분포입니다.

베타분포는 아래와 같은 모양을 합니다.
똑같은 가정을 한다면 평균치에서 비관치까지의 간격이 표준정규분포보다 훨씬 길어지게 됩니다. 때문에 프로젝트의 전체 일정의 지연도 더욱더 길어질 수 밖에 없습니다.

일반적으로 우리는 우리가 할 수 있는 일정의 약 3배 정도를 안전시간으로 둔다고 합니다. 즉, 2일이면 할 수 있는 일에 대해서 대략 6~7일 정도의 일정을 세운다고 합니다.

그런 의미에서 우리가 추정한 일정은 실제 우리가 이룰 수 있는 목표와는 너무 멀리 떨어진 것이라는 겁니다. 다른말로 바꾸면 우리가 파킨슨 법칙이나 학생 증후군만을 이겨낼 수 있다면 우리는 정말 놀라울 정도로 일정을 단축시킬 수 있다는 것입니다.

TOC에서 제안하는 CCPM은 위와 같은 상황에 대해 아래와 같이 제안하고 있습니다.

1. 완료 예정 90% 추정은 의미가 없다. 기존에 추정된 일정 추정치의 절반으로 일정을 수립한다.
즉, 기존에 7일로 추정하던 일정을 3일 또는 4일로 추정하여 일정을 세운다는 것입니다. 이렇게 추정한다고 해도 낙관치보다 더 긴 일정이 됩니다.
각 작업단위마다 안전시간을 없애버림으로써 학생증후군이나 파킨슨 법칙이 작용할 여지를 줄이고자 하는 것입니다.

2. 보다 빠르게 일정을 완료하는 것을 정책과 성과지표로서 장려한다. 대신 일정의 지연에 대해서는 어떠한 처벌도 하지 않는다. 왜냐하면 추정한 일정은 절대로 완료 예정에 대한 확률이 높지 않기 때문입니다. 운이 좋으면 추정한 일정에 맞추거나 일찍 끝날 수도 있겠지만 늦을 수도 있습니다. 즉, 일정의 가변성을 인정한다는 것입니다.

3. 모든 작업 단위에 대하여 추정치를 절반으로 산정한 후 각 작업 단위의 안전시간을 모아서 프로젝트의 안전시간으로 사용한다. 이것을 버퍼라고 부릅니다.
어떤 작업 단위가 일찍 끝나고 늦게 끝날지 알 수 없기 때문에 각 작업 단위마다 안전시간을 두는 것이 아니라 프로젝트 전체가 사용할 수 있는 안전시간을 사용합니다.
만약 어떤 작업 단위가 일찍 작업을 끝낸다면 전체 프로젝트의 안전시간은 늘어날 수 있고 늘어난 안전시간은 예상치 못하게 지연되는 작업단위가 사용하게 되는 것입니다.
이것이 가능한 것은 모든 작업단위가 지연될 확률은 거의 없기 때문입니다. 어떤 작업은 일찍 끝날 것이고 어떤 작업은 늦을 것이고 그 평균은 일정할 것이라는 것입니다.

위에 소개하는 몇몇 제안은 사실 CCPM의 처음 개념의 설명에 제시되는 내용으로 위 내용 외에도 더 많은 내용이 있습니다.

요점은 우리가 기존에 사용하는 일정 추정은 낭비가 심하다는 것이고, 그러한 낭비가 학생증후군과 파킨슨 법칙을 야기시킨다는 것입니다.

그러한 낭비를 없애기 위한 정책을 장려함으로써 일정을 놀라울 정도로 단축시킬 수 있다는 것입니다.

그에 대한 자세한 내용은 나중에 다루기로 하고 이 포스팅에서는 간략한 소개로 마무리 지을까 합니다.

여러분은 위의 가정에 대해 어떻게 생각하시나요?

댓글

이 블로그의 인기 게시물

테슬라 구매 과정 후기

올해 제 인생 최대 지름이 될.. 테슬라 구매를 했습니다. 스파크만 13년을 몰았는데... 내자분이 애들도 컸고.. 이젠 스파크가 좁고 덥고 힘들다면서... 4월 6일 하남 테슬라 전시장에서 새로 나온 업그레이드 된 모델 3를 보고 4월 7일 덜컥 계약을 해버리게 되었습니다. 이후에 4월 11일에 보조금 설문 조사 문자를 받았습니다. 그리고 다시 기다림의 시간이.. 사실, 처음에 하얀색을 계약을 했다가 하얀색은 관리하기가 너무 힘들거 같아 4월 20일에 블루로 변경을 했었는데.. 다른 사람들은 하나 둘 차량을 인도 받는데.. 아무리 기다려도 인도 일정이 배정이 되지 않아서... 혹시나 하고 4월 25일 하얀색으로 변경하자마자 VIN이 배정되고 4월 29일 인도 일정 셀프 예약 문자가 왔습니다. 파란색이 정말 인기가 없었나 봅니다. (그런데, 소문에 듣자하니.. 파란색은 5월 첫주부터 인도 일정 셀프 예약 문자가 왔었다고 합니다.. 크흑.. ㅠㅠ) 덕분에 기다리고 기다리긴 했지만 아무 준비도 없던 와중에 이제부터 정말 실제 차량을 인도받기 위한 질주가 시작되었습니다. 4월 30일 셀프 인도 예약 완료 문자가 왔고 5월 2일 오전 10시 5분에 전기자동차 구매지원 자격 부여 문자가 오고 오후 3시 5분에 전기차 보조금 지원 대상자 확정 문자를 받았습니다. 사실 기다림의 시간이 제일 힘든건.. 보조금을 못받으면 어떻게 하지?라는 초조함이었습니다. 얼마 안되는 보조금이라고 하더라도 한푼이 아쉬운 입장에서는 정말 필요한 돈이었는데.. 다행히 큰 문제 없이 지원 대상자가 될 수 있었습니다. 그리고 5월 2일 오후 4시 12분에 차량 대금을 후다닥 결제를 진행했습니다. 유투브와 네이버 카페 등을 열심히 읽어두었지만 막상 진행해보니 다른 설명과는 좀 다르게 진행되어서 불안했었는데.. 큰 문제 없이 결제가 완려되었습니다. 이미 차량 인도는 5월 14일로 결정되었기 때문에 이제는 차량 등록에 대한 기다림이 시작되었습니다. 드디어 5월 8일 오후 2시 23분에 등록 대행 비용 및...

스위치봇 & 스위치봇 허브 미니 간단 사용기

제 블로그에 예전부터 오셨던 분들은 제가 사브작 사브작 홈 오토메이션을 어설프게 해온 것을 아실겁니다. 작년부터 너무 하고 싶었던 도어락 자동화에 도전해봤습니다. 우리 나라에 자체 서비스로 앱을 통해 도어락을 제어하는 제품은 꽤 있습니다. 게이트맨도 있고, 키위도 있고, 삼성도 있죠.. 그런데.. 전 그것보다 구글 어시스턴트를 지원하는 도어락이 필요했는데... 그런건 안만들더라구요.. 꼭 필요한건 아니지만 웬지 해보고 싶은데... 언제 제품이 출시될지도 몰라서.. 가능한 방법을 찾아보다가.. 스위치봇이라는 제품으로 도어락을 버튼을 꾹 누르는 방법을 찾아서 스위치봇이 직구가 아닌 국내에 출시되었길래 낼름 구매해서 도전해봤습니다. 스위치봇 제품에 대한 내용이나 구매는  https://www.wakers.shop/  에서 하시면 됩니다. 저는 스위치봇에 스위치봇을 구글 홈에 연결시키기 위해 스위치봇 허브 미니까지 구매했습니다. 스위치봇 허브 미니가 없으면 스위치봇을 외부에서 제어하거나 구글 홈에 연결할 수 없습니다. 그리고 제가 스위치봇 허브 미니를 구매한 이유 중 다른 하나는 이 제품이 RF 리모컨 기능이 지원됩니다. 집에 있는 모니터를 제어할 필요가 있어서 이참 저참으로 같이 구매했습니다. 제품 등록은 어렵지 않습니다. 여기서는 스위치봇 허브 미니에 RF 리모컨을 등록해서 구글 어시스턴트로 제어하는 방법을 소개해드릴까 합니다. 제가 스위치봇 허브 미니로 모니터를 제어하고 싶었던 부분은 컴퓨터에서 크롬캐스트로 외부 입력을 때에 따라 바꿔야 하는데.. 그때마다 리모컨을 찾는게 너무 불편해서였습니다.  어차피 리모컨은 외부 입력 바꿀 때 빼고는 쓸 일도 없는지라.. 매번 어디로 사라지면 정말 불편해서 이걸 자동화 하고 싶었습니다. 그런데, 처음에 스위치봇 허브 미니를 등록하고 여기에 리모컨을 등록하니.. 구글 홈에 등록된 리모컨이 자동으로 등록이 됩니다. 그런데, 등록된걸 확인해보니 전원 On/Off만 제어되는 것이고, 나머지 버튼은 구글 홈...

구글 스프레드시트를 RSS 리더로 사용해보기

옛날부터 이메일로 RSS로 뉴스레터로 이런 저런 소식 받아보기를 참 좋아해서 지금도 계속 받아보고 있는데.. 세월이 지나니 영어 읽는 것도 좀 지치고.. 요즘같은 좋은 세상에 자동으로 번역이라도 되어서 편하게 볼 수 있으면 좋겠다.. 라고 생각만 하다가.. 요즘같이 생성형 AI로 이것 저것 쉽게 해보기 좋은 시절이 되어서.. 저도 한번 해봤습니다. 생성형 AI로 뚝딱 거리다가 구글 스프레드시트로 RSS 로 발행되는 내용을 자동으로 번역해서 메일로 보내주는 스크립트를 만들어봤습니다. 구글 스프레드 시트의 A1열에는 이 스프레드시트의 변경 시점을 입력 받고 B1에는 변경 내용을 입력 받게 했습니다. A2에는 RSS로 내용을 불러올 수 있게 QUERY(IMPORTFEED("RSS 주소", "items", TRUE), "SELECT * LIMIT 6") 이런 함수를 적었습니다. 한번에 너무 많은 내용을 불러오면 정신 없어서 제목 행 포함해서 딱 5개의 최신 내용만 불러오도록 설정했습니다. 그리고 저는 Title, URL, Date Created, Summary, 번역된 내용 이렇게 5개의 열만 사용할 거라서 가끔 어떤 사이트는 내용을 불러와보면 저자가 넘어오는 경우가 있는데 그런 경우에는  QUERY(IMPORTFEED("RSS 주소", "items", TRUE), "SELECT Col1, Col3, Col4, Col5 LIMIT 6") 이런 식으로 특정 열은 제외하도록 설정했습니다.  번역된 내용이 입력될 셀에는 아래 함수에 따라  TRANSLATE_TO_KOREAN(D7) 와 같은 함수를 입력하시면 됩니다.  각 RSS 사이트마다 딱 5개만 불러올거기 때문에 여러 사이트에서 내용을 불러온다면 이전 사이트의 밑에 함수로 사이트를 계속 추가만 해주시면 됩니다. 이제 내용은 준비되었고 불러온 내용을 번역해서 메일로 보내주는 스크립트입니다. 확장 프로그램에서 App...