7/13/2011

The Goal

제약이론을 설명하는 경영학 소설로는 효시에 해당하는 작품인 "The Goal"을 읽고..

A --------B-----------------------C------D--------E

A,B,C,D,E 다섯 사람이 행군을 한다고 하자. 행군의 목적은 다섯 사람이 모두 목적지에 똑같이 도착하는 것일게다. 그러려면 행군하는 사람들 간의 간격이 일정해야 한다. 간격이 일정치 않을 경우 중간에 그룹이 떨어져 버려서 길을 잃는 경우도 발생할 수 있다. A,B,C,D,E 다섯 사람은 서로 체력도 다르고, 메고 있는 짐의 무게도 다르다고 하고, 알파벳 순으로 순서를 지키면서 행군을 한다고 하면 아마 위와 같은 상황이 벌어질 수 있을 것이다. 즉, 선두와 후미 사이에 간격이 일정하지 않아서 두 그룹으로 분화된 모습이다.

만약 선두와 후미 사이의 길이를 행군의 길이로 본다면, 이는 매우 긴 행군이 될 것이다. 이런 상태에서 행군의 길이를 좁히려면 어떻게 해야 할까? 우선은 가장 느린 사람을 선두에 보내면 된다. 행군에서 사람들 사이에 간격이 벌어지는 이유는 두 사람 간의 이동 속도이기 때문이다. 사람들을 속도가 느린 순으로 정렬한다면 행군 길이는 더 짧아질 것이다.

그런데 사람들의 순서를 바꾸지 않은 채 길이를 짧게 유지해야만 한다면 어떻게 해야 할까? 이 때는 가장 느린 사람의 속도에 나머지 사람들이 속도를 맞출 수 있도록 호루라기를 불면 될 것이다.

위 예에서 각 사람을 공정으로, 그리고 행군의 길이를 전체 공정이 처리된 시간으로 본다면 행군의 길이를 줄이는 것은 공정의 최적화로 볼 수 있다. 위 예에서 행군의 길이를 결정하는 요인을 알게되면 공정의 최적화 시 고려해야 할 결정 요인도 유추할 수 있을 것이다.

위 예에서 행군의 길이를 결정하는 사람 C이다. C는 가장 느린 사람으로 전체 대열의 길이를 결정한다. 공정에 있어서도 전체 공정의 처리 속도를 결정하는 것은 가장 느린 공정이다. 위 그림에서 각 사람을 공정으로 보고, 각 공정 앞에 놓인 선을 공정에 대한 "대기 시간"으로 생각한다면 쉽게 유추할 수 있을 것이다. 제약이론에서는 위에서 C에 해당하는 공정을 제약조건(제약요인)이라고 부르고, 이를 중심으로 최적화 방법을 제시한다. 쉽게 말해 제약요인은 가장 느린 공정(또는 기계)이다.

이 책은 제조업에 제약이론을 적용하는 방법을 소설로 제시한다. 제약이론의 창시자인 엘리 골드렛 박사는 여러 분야에 걸쳐 이러한 방식으로 제약이론을 설명한다(이 책 말고도 여러 책들이 있더라).

제약이론의 개념을 이해하면서, 내가 접했던 방법론들에 대해서도 새로운 시야로 보게 되었다. 우선 단위테스트(내 생각에 소프트웨어 공정 중 가장 큰 제약요인은 테스트 같다) 를 개발 단계에 끌어 올린 TDD를 제약요인의 유휴시간을 줄이는 것으로 이해하게 되었다. 일반적으로 개발이 끝난 후 테스트를 진행하게 되는데, 개발되는 기능이 많고, 복잡할 수록 테스트 시간은 길어지게 되고, 따라서 테스트 간 간격 즉, 테스트 공정의 유휴시간-대기시간이 증가된다.

앞서 설명하듯이, 전체 프로세스의 성능은 제약요인이 결정하게 되는데, SW를 만드는 작업에서의 Test에 유휴시간이 많아진다는 것은 그만큼 SW가 제 시간에 나올 확률을 늘리는 것이고, 이는 운영비용을 증가시키는 결과로 나타난다.

이 책에서 가장 인상 깊은 구절 중 하나는 "회사의 목적은 돈을 버는 것이다"라는 것이다. 이 말은 자본주의 체제의 근본 원리를 되새기는 맥락에서 나온 것이 아니라, 회사의 목적이 상품(재화와 용역)을 생산하는 데 있는것이 아니라, 그 상품이 팔려서 돈을 만들어 오는데 있다는 것을 설명하기 위한 명제이다.

좀 살벌한 얘기이긴 한데, 많이 공감했다. 예전에는 나도 한 때 기술 중심 회사가 최고라고 생각했지만, 최고 품질의 자동차를 만드는 롤스로이스 같은 회사가 망하는 모습을 보면 반드시 기술이 좋은 회사라고 해서 생존할 수 있는 것은 아니란 걸 새삼 다시 느꼈다. 얼마나 멋지고, 쓸모 있는 기술이 있는 회사인지 보다 중요한 것은 돈을 버는 회사이어야 한다는 것이다.

돈을 번다는 것을 잘못 이해하면 엉뚱한 답을 찾기도 한다. 예를 들어 단순히 근로자들의 높은 생산성과 낮은 원가율만 이뤄내면 저절로 돈이 벌어질 것이란 착각은 흔하다. 생산성은 측정하는 척도에 따라 다르긴 하지만, 팔리지도 않는 제품을 잔뜩 생산해서 재고로 만들기만 해도 근로자들의 생산성은 높게 측정되기도 한다. 그렇다면 실제로 돈을 벌기 위해서는 어떻게 해야 할까?

이 책에서는 손에 잡히는 물건을 만들어 파는 공장에서 돈을 벌기 위해서는 현금창출률은 높아야 하고, 재고와 운영비는 낮아야 한다고 설명한다. 지금도 그러는지 모르겠지만, 예전에는 재고를 비용이 아니라 자산으로 분류했다. 따라서 팔리지 않는 물건을 창고에 잔뜩 쌓아놓아도, 자산이 증가한 것으로 보았기 때문에 재고만 잔뜩 쌓이는 공장이 흑자로 보이기도 했다.

저자는 재고의 모순을 지적하며 재고는 비용으로 보아야 하는 이유에 대해 설명한다. 그리고 제품을 생산하는데까지 소요되는 총비용인 운영 비용을 줄이는 것을 최적화로 본다. 현금창출률과 재고, 운영비용은 서로 상호 연관되어 있다(예를 들면 재고가 낮아지면 현금창출률이 높아지는 것처럼)

SW 회사에서 재고는 명확하지 않지만, 운영 비용은 비교적 뚜렷하게 드러난다. 가령 SW를 만들어내기까지의 총 소요 비용이 운영비용이 될 것이다.

아무튼 참 재미있게 읽었고, 많이 배운 책이다. 오래 전에 사두었던 Lean 관련 책들도 다시 한번 들쳐봐야겠다. 제약이론으로 SW산업을 이해하는 노력은 계속 해둘만 한 것 같다.
실제 사례도 알아볼 수 있으면 좋겠다. 할일이 참 많다.

교육 후기

"HSP컨설팅 유답"이라는 독특한 이름의 회사 프로그램을 통한 전직원 교육 후기.

메모 형식이니, 많은 것을 기대하진 말길.
다녀온지 며칠 지나니 교육 프로그램은 죄다 머릿속에서 사라지네.
요즘 정말 망각에 가속도가 붙고 있는듯..

이 글을 남기는 것은 그 중 기억나는 몇가지를 남기기 위함임.

우선 "흑적게임". 평생에 한번 밖에 몰입할 수 없는 게임.
자세한 게임 규칙은 여기저기 많이 나오니 찾아보시길. 단, 게임 내용을 알고 나면, 이 게임에 몰입 할 수 없음.

"게임이론"을 알고 있는 사람에게도 무의미한 게임임.
지려고 하면 이기는 게임.

그리고 리더-팔로워(leader-follower) 게임(팔로워가 눈을 감고, 리더가 길을 인도하는 게임. 서로 말을 할 수 없음)에서 많은 생각이 듦.
말을 할 수 없다는 제약 조건이 이 게임의 핵심 포인트.
게임 중에는 여러 난관(계단, 좁은 통로, 급한 경사, 턱 등)이 있는데, 이는 사전에 알려주지 않는다.
리더와 팔로워는 서로 협동하여 그 난관들을 사고 없이 통과해야 한다.
이는 마치 우리가 인생에서 겪는 현상과 비슷한다.
산다는 것 자체가 어쩌면 끝없는 난관을 통과하는 과정인지 모른다.

다른 그룹과 경쟁하는 것이 아닌 것도 이 게임의 특징.
결국 우리가 하는 것은 함께 하는 삶이지, 경쟁에서의 승리가 아니다.
경쟁은 더 효율적인 공생을 위한 수단으로 족하다.

흑적 게임이 경쟁의 참의미가 공생에 있음을 알게 해준다면,
이 게임은 공생의 방법에 대한 통찰을 준다. 교

한 그룹에 속한 두 사람은 서로 리더와 팔로워를 한번씩 교대한다.
이 또한 우리 인생의 단면을 잘 반영한다. 우리는 대부분 동시에 리더의 역할과 팔로워의 역할을 수행한다.

눈을 가린자를 말없이 인도한다는 것은 리더에게 많은 책임감을 불러 일으킨다.
책임감.
주어진 일을 끝마친다 정도가 아니라, 누군가 다른 생명의 삶을 내 삶처럼 보살펴야 한다는 무게.
그게 리더에게 주이진 짊이다.
만약 리더가 팔러워에게 그저 일을 주고, 그 결과를 확인하는 정도에서 그치는 역할이라면,
눈을 감고 자신에게 의지하는 팔로워의 절박함을 이해할 수 없으리라.

마찬가지로, 자신의 시야가 제한적이라는 것을 믿지 못하고, 리더쉽에 신뢰를 쉽게 주지 못하는 팔로워라면, 리더가 내리는 모든 결정을 심각하게 고민하느라 인생을 허비할 수 있다.
마치 이 게임에서 리더가 알려주는 길을 다시 확인 하느라 수없이 손과 발을 움직여야 하는 사람들처럼 말이다.

난 이 게임을 시작하기 전 팔로워와 일종의 규약(protocol)을 만들었다. 우리가 예상한 난관은 계단 정도였기 때문에 계단을 오를 때 신호와 내릴 때 신호를 만들었다. 그런데 문 밖에 나가자 마자 전혀 예상하지 못한 문제가 발생했다. '문' 자체가 난관의 시작이었다. 팔을 멋대로 흔들었다가는 부딪히기 딱 좋은, '좁은 문'이었다. 새로운 문제를 마주했지만, 제약조건 때문에 새로이 규약을 만들수는 없었다. 그런데, 맨 앞에 가는 팀에서 리더가 조용히 팔로워의 양손을 잡고, 자신이 뒷걸음을 치며 걷는 것을 보았다.

나도 그렇게 해서 문을 통과했다. 그리고 이내 계단이 나타났다. 우리가 정한 약속이 있었지만, 이번에는 타이밍이 문제였다. 리더인 나는 내리막 계단이니 조심하란 마음에 한 두 발짝 앞에서 신호를 보냈다. 그랬더니 팔로워가 바로 발로 바닥을 더듬으며 계단을 찾았다. 쉽게 찾지 못해서 손을 잡고 계단 쪽으로 조금 이동시키며 조심스럽게 내려왔다.

조금 더 지나서 새로운 난관이 나타났다. 무릎 보다 높은 턱 진 곳을 오르고 내려와야 했다. 이것은 전혀 예상하지 못한 난관이었다. 눈을 감은 팔로워에게 말없이 그런 난관을 설명하는 것은 불가능했다. 나는 최대한 가까이 팔로워를 인도하고, 그의 다리 한쪽을 건드려 드는 시늉을 했다. 조금 있다가 팔로워도 눈치를 채고 다리를 들었다. 나는 팔로워가 중심을 잃지 않도록 손을 놓지 않은 채 발바닥이 턱을 밟을 수 있게 옮겨줬다.

이 부분에서 나는 팀에서 규약과 공정에 대한 생각을 할 수 있었다. 미래를 예측하고, 공정과 규약을 만들지만, 예측하지 못하는 상황은 언제나 발생하기 마련이다. 그런 상황에서는 다시 규약을 점검하고, 공정을 정비하는 것은 시간적으로 어렵다. 때문에 임기응변이 필요하게 마련이다. 임기응변을 마련할 때 중요한 것은 리더가 팔로워를 최대한 배려해주어야 한다는 것이다. 위급한 상황일 수록 팔로워가 중심을 잃을 가능성이 높다. 이때 리더가 그의 손을 잡아줘야 한다. 그리고 이러한 의지를 반드시 팔로워에게 메시지(신호)로 전달해야 한다.

메시지를 전달할 때에는 내용도 중요하지만, 타이밍 또한 내용 못지 않게 중요하다. (눈을 뜬) 리더가 앞으로 예상 경로를 살펴봐서 미리 난관을 파악할 수는 있겠지만, 그것을 (눈을 감은)팔로워에게 한참 전에 알려준다고 해서 도움이 되진 않는다. 오히려 신경 쓰지 않아도 될 고민을 더 먼저하게 되어서 팔로워의 에너지만 낭비하는 꼴이 될 수 있따.

이 게임이 끝난 후 토론을 하는 자리에서 나는 이렇게 결론을 내렸다.
"프로토콜 보다는 메시지가 중요하고, 메시지는 타이밍이 필요하다"

추상화를 너무 많이 한 탓에, 청중들에게는 전혀 씨알도 안먹혔을지는 몰라도, 최근에 "의사소통"과 "리더쉽"에 대해 고민하던 탓인지, 나에게만큼은 명료한 결론이었다.

이 교육은 여러 가지 단점('이상한 호칭','주제와 관련 없어보이는 여러 콘텐츠들' 등)에도 불구하고, 두 체험 학습만 가지고도 충분히 수강할만한 가치가 있다고 생각한다. 이 외 허깅을 유도하는 체험 학습도 있었는데, 말로써는 설명이 안되는 통찰을 얻을 수 있었다.

세사람이 길을 걷기만 해도 그 자리에 스승이 있다고 했다. 배우려고 하는 사람에게는 아무리 허접한 강사라도 통찰을 얻고, 그렇지 않은 사람에게는 별난 박사라도 배울 것이 없을 것이다.

첨언하자면, 난 교육 내용 보다도, 강사들의 열정적인 모습에서 더 많은 것을 배운 것 같기도 하다. 나, 일할 때 저렇게 웃으면서, 즐기면서 일했던가? 내 주변 사람들이 나 보고 정말 열심히 한다고 느낄 수 있었을까? 하며 반성하게 된 계기였다. 그러나 모르는 일이다. 그들은 그저 숙련된 감정노동자들이었을지도... 어쩌면 열정이 아닌, 굳어진 근육이었을지도 모른다. 그래도 여전히 내 질문은 유효하다.