• OVERVIEW

The Goal의 저자 엘리 골드렛의 또 다른 저서. 제조업에 대해 제약이론을 소개하는 The Goal과는 다르게 일반적인 프로젝트에서의 제약이론을 소개하고 있다.

  • GOOD

The Goal과 같이 소설형식이다. 직장에서 일어날 법한 압박감이 느껴지는 상황을 옴니버스 형식으로 실감나게 그려 책의 시작부터 끝까지 흥미진진하게 읽을 수 있다.

  • BAD

프로젝트 관리를 예술(Art)이 아닌 과학적(Science)인 방법으로 접근하려는 시도는 좋았으나, 한계를 넘어서려 했던 시도는 결국 프로젝트 관리의 복잡성 앞에 한계를 오히려 인정하게 된 것은 아닐까 싶다.

‘The Goal’에서 이어진

이 책은 The Goal에서 제시한 개념들을 그대로 따르고 있다. 간단히 말해서 전체의 상위 목표가 가장 중요하며, 이를 위해 각 세부단계의 효율이 중요한 것이 아니라 시스템 전체의 효율이 가장 중요하다고 말한다. The Goal에서는 병목 자원의 중요성에 대해서 말한다. 병목 자원의 생산성이 10이라 할 때, 전체 시스템의 생산성은 10을 넘지 못한다는 것이다. 병목 자원으로 입력을 제공하는 비병목자원이 20을 제공한다면, 10은 고스란히 재고로 남고, 재고는 곧 비용의 증가를 의미한다. The Goal을 읽으며 이 부분에서 의문이 들었었다. 일반 제조업에서는 재고의 증가는 관리 혹은 보관 비용의 증가를 야기할테지만, 소프트웨어 개발 등에서는 비병목 자원의 잉여 생산이 단순히 비용증가로 이어지지는 않을 것이다. ‘한계를 넘어서’에서는 이에 대한 고민이 논의된다. 제조업에서의 재고는 소프트웨어 프로젝트에서 유휴시간(Buffer)과 비슷한 개념이다.

ToC (제약이론)

제약이론에서는 전체 시스템을 개선하는 방법을 다음과 같이 제시한다.

  1. 시스템의 제약사항들을 찾는다. (Identify the system’s constraints)
  2. 시스템의 제약들을 어떻게 활용할 것인지 결정한다. (Decide how to EXPLOIT the system’s constraints)
  3. 윗 단계에서 내린 결정에 다른 모든 것을 종속시킨다. (SUBORDINATE everything else to the above decision)
  4. 시스템의 제약들을 향상한다. (ELEVATE the system’s constraints)
  5. 각 단계를 반복한다. (REPEAT the process)

대부분의 제조업에서는 병목 자원이 곧 제약사항이 되지만, 반드시 그런 것은 아니라는 점에 주의해야 한다.시스템의 제약사항은 시스템 전체(Chain)를 취약하게 만드는 부분을 일반적으로 명시하는 용어라고 봐야 한다.

프로젝트에서의 ToC

제조업에서의 병목자원이 전체 시스템의 생산성을 결정하듯이, 프로젝트에서의 크리티컬 패스(Critical Path)는 프로젝트 전체의 수행기간을 결정한다. 비병목자원의 잉여 생산이 불필요한 재고를 만들어 내는 것처럼, 각 단계의 불필요한 유휴시간은 크리티컬 패스의 증가로 인한 프로젝트 수행기간을 늘어나게 한다. 유휴시간의 문제는 각 단계에서의 담당자가 80%의 확신을 가지고 자신이 생각하는 최악의 경우를 가정하여 예측을 한다는 것에 있다. 이는 평균치에서 200% 이상의 유휴시간을 고려하는 것이다.

이 과대평가된 유휴시간의 진짜 문제는 각 단계별 담당자가 모두 비현실적인 유휴시간을 단계마다 두게된다는 것이다. 또한 유휴시간을 두게 되면, 학생증후군(Student Syndrome)도 문제가 된다. 프로젝트가 지연되는 경우는 많지만, 단축되는 경우가 없는 것은 각 단계가 일찍 마치게 되더라도 그 단계의 담당자는 결코 그것을 보고하지 않을 것이기 때문이다.

저자는 각 단계의 담당자가 각각 유휴시간을 두는 대신 크리티컬 패스를 구성한 후에 단계별 유휴시간을 모두 더한 값의 50%를 프로젝트 전체의 유휴시간으로 활용할 것을 제시한다. 그리고 나머지 50%는 크리티컬 패스에 속하지 않은 작업으로부터 크리티컬 패스로 진행되는 부분의 버퍼로 이용할 것을 제시한다.

각 단계의 담당자에게 80%의 확신 대신 50% 정도의 확신으로 시간을 예측하는 것을 설득해 내어야 하는데, 이를 위해서는 빠르게 각 단계를 완료했을 때 그 단계의 담당자에게 인센티브가 필요하다. 저자는 전체 프로젝트가 지연될 경우에 전체가 겪게 될 손실에 대해 모두가 이해하고 있어야 한다고 한다. 이상적으로는 프로젝트 관련자 모두가 한 배를 탄 사람이라는 공감대가 있어 최대한 빠르게 프로젝트를 완료하고 싶어한다면 좋겠으나, 각 단계별 업무를 일찍 마쳤을 때 또 다른 업무가 더 떨어질 뿐인 상황에서 과연 단계별 담당자에게 유휴 기간을 줄여서 예측을 하라는 것이 가능할 것인가 하는 점이 가장 현실적인 문제로 보인다. The Goal에서 병목자원의 활용에 대해 끊임없이 강조했던 것처럼, 이 책에서는 저자는 크리티컬 패스에만 집중할 것을 요구한다.

크리티컬 패스에서 크리티컬 체인으로

크리티컬 패스에만 집중한다는 것을 보고 자연히 의문이 들었다.

크리티컬 패스가 아닌 부분에서 일정의 지연이 지나치게 발생해 크리티컬 패스가 바뀌면 어떻게 되지?

다행히 책의 후반부에서 내가 가진 궁금증에 대한 내용이 나와 있었다. 중첩되어 필요한 자원과 상호의존성(Dependency)을 고려하여 다시 프로젝트의 진행순서를 파악한다. 이를 크리티컬 체인(Critical Chain)이라 정의한다. 크리티컬 체인을 정의한 후에는 크리티컬 체인에 영향을 주는 각 단계의 끝부분에 다시 유휴시간을 배치한다. 심지어 단일 프로젝트가 아니라 여러 진행되는 프로젝트에 동일한 자원이 충돌을 일으키는 경우도 자원이 활용되는 시점을 고려하여 크리티컬 체인을 분석한다.

게임에서 이기려면

우리가 지금 게임에서 이기려면 딱 두 가지만 하면 돼!바로 디펜스와 오펜스야!상대의 공격을 제대로 잘 막은 후에, 빠르게 역습해서 공격을 성공시켜!

책의 끝부분을 읽으며, 이런 생각이 들었다. 프로젝트 관리가 예술이 아닌 과학이라 이야기를 시작 했지만, 결국은 예술일 수 밖에 없다는 느낌이 드는 마무리였다.

  • 각 단계별 담당자에게 200% 정도의 리드타임이 되는 것이 아닌, 50% 정도의 확신으로 정확한 예측을 부탁한다.
  • 각 단계별 담당자는 프로젝트의 성공이 우리 모두의 기쁨임을 깨닫고, 단계가 종료되는 즉시 그것을 보고한다.
  • 각 자원의 충돌 상황과 그것을 해결할 스케줄링을 고려하여 자원 레벨링을 한다.
  • 충돌 자원과 상호의존성을 모두 고려하여 크리티컬 체인을 파악한다.
  • 크리티컬 체인이 변경될 때마다 이에 영향을 주는 경로에 유휴시간을 추가하며 관리한다.

이건 뭐… 프로젝트 관리를 잘하려면 잘하면 된다는 정도의 이야기 같은데… The Goal에서와 이 책에서는 정확하게 같은 이야기를 하고 있다. 부분에서의 효율은 전혀 중요하지 않으며, 시스템 전체의 효율이 문제다. 이 대명제를 부정할 사람은 그 누구도 없을 것이다. 하지만 각 개별 조직, 혹은 담당자가 어떻게 전체의 이익에 정확하게 부합하는 행동을 하게 할 것인가는 역시나 풀리지 않는 문제이다. 전체의 효율이 올라가더라도 한 부서의 의도적 낮은 생산량이 과연 어떤 방식으로 용납될 것인가 하는 문제를 푸는 것이 우선으로 보인다.