착한 사람을 뽑아도 교착은 사라지지 않는다
골목길의 교착
좁은 골목길에서 맞은편 차와 딱 마주쳤습니다. 둘 중 하나가 뒤로 빠져야 풀립니다. 그런데 아무도 안 움직입니다.
이상한 일이 아닙니다. 각자 따져 보면 버티는 쪽이 이득이니까요. 뒤로 빠지는 사람은 시간과 수고를 들이고, 그 덕은 상대가 봅니다. 그러니 상대가 물러나길 기다리는 게 나로서는 가장 나은 선택입니다. 문제는 두 사람이 똑같이 이렇게 따진다는 데 있습니다. 저마다 영리하게 판단했을 뿐인데, 그게 모여 둘 다 손해 보는 교착이 됩니다.
여기까지 보면 답이 뻔해 보입니다. 이기심이 문제구나, 한 명이라도 착했으면 풀렸겠구나. 그런데 반대로 상상해 봅시다. 둘 다 착해서 같이 양보하면 어떻게 될까요. 두 차가 함께 뒤로 빠집니다. 서로 물러난 걸 보고 함께 앞으로 갑니다. 그리고 다시 마주칩니다. 길에서 마주친 두 사람이 자꾸 같은 쪽으로 비켜서는 그 어색한 춤을, 차로 추는 셈입니다.
둘 다 버텨도 막히고, 둘 다 동시에 양보해도 다시 막힐 수 있습니다. 이런 상황에서는 한 명이 양보하고 다른 한 명이 지나가야 풀립니다. 두 운전자가 같은 상황에서 같은 행동을 되풀이하는 동안에는 양보하려는 마음만으로 길을 열기 어렵습니다. 이 대칭을 깨려면 두 사람의 행동이 달라져야 합니다.
와이파이는 어떻게 풀었나
똑같은 구조의 문제를 기계는 이렇게 풉니다. 와이파이에 연결된 기기들은 하나의 채널을 함께 씁니다. 두 기기가 동시에 신호를 보내면 서로 겹쳐 둘 다 깨집니다. 그래서 기기는 보내기 전에 채널을 먼저 들어 봅니다. 조용하면 보냅니다. 그런데 두 기기가 동시에 “조용하네” 하고 같이 보내면 어떻게 될까요. 부딪칩니다. 골목길에서 두 차가 동시에 앞으로 가는 것과 똑같습니다.
단순한 방법은 이겁니다. “부딪치면 잠깐 기다렸다 다시 보낸다.” 여기에 함정이 있습니다. 둘 다 똑같이 1초를 기다리면 정확히 1초 뒤에 또 같이 보내고, 또 부딪칩니다. 영원히요. 같은 상황에서 같은 규칙을 따르는 한, 대칭은 저절로 깨지지 않습니다.
그래서 기계는 주사위를 던집니다. 부딪치면 각자 무작위로 정한 시간만큼 기다렸다 다시 보냅니다. A가 3, B가 7을 뽑았다면 A가 먼저 보내고, B는 채널이 차 있는 걸 듣고 차례를 기다립니다. 랜덤 백오프(random backoff)라고 부르는 이 방식의 핵심은 무작위로 대칭을 깨는 것입니다. 누가 양보할지 아무도 정해 주지 않았는데, 운이 역할을 나눠 줍니다.
기기들은 무작위로 대기 시간을 고른다는 공통 규칙을 따릅니다. 누가 먼저 보낼지 그때마다 협의하지 않아도 됩니다. 같은 시간을 고르면 다시 충돌할 수 있지만, 다음 시도에서 시간을 새로 고르므로 계속 동시에 보내는 상황을 피할 수 있습니다.
회의실의 골목길
조직에서도 같은 교착이 매일 일어납니다. 두 팀이 서로 “저쪽이 먼저 정해서 넘겨줘야 우리가 시작하죠”라며 기다립니다. 각자로서는 이치에 맞습니다. 먼저 움직이는 쪽이 수고를 떠안으니까요. 반대쪽 실패도 흔합니다. 다들 예의 바르게 의견을 미루다가 아무도 결정하지 않는 회의 말입니다. 버티다 막히고 양보하다 막히는, 골목길에서 본 두 실패가 회의실에서 똑같이 되풀이됩니다.
이처럼 서로 먼저 움직이기를 기다리는 상황에서는 누가 결정하고 실행할지 정하는 규칙이 도움이 됩니다.
첫 번째 장치는 대칭을 깨는 규칙, 곧 책임의 주인을 분명히 하는 것입니다. 애플의 DRI(Directly Responsible Individual)는 모든 일마다 직접 책임지는 사람 한 명을 꼭 정해 두는 방식입니다. 핵심은 책임을 팀이 아니라 한 사람에게 둔다는 데 있습니다. “마케팅팀이 맡는다”고 하면 팀 안에서 다시 골목길 교착이 생기지만, “이 건은 김○○“라고 하면 미룰 데가 없어집니다. 여럿이 맡으면 오히려 아무도 안 나서는데, 그걸 구조로 막습니다.
두 번째 장치는 논쟁의 끝을 정해 두는 것입니다. 아마존의 disagree and commit은 충분히 논쟁하되, 그래도 뜻이 안 모이면 책임자가 정하고, 반대하던 사람도 결정이 나면 온 힘을 다해 따른다는 약속입니다. 이 규칙이 없으면 조직은 나쁜 두 상태에 빠집니다. 모두가 찬성할 때까지 끝없이 토론하거나, 회의에서는 동의하는 척하고 뒤에서 슬쩍 발을 빼거나. 반대를 억누르는 게 아니라, 반대를 적어 둔 채로 앞으로 갑니다. 논쟁이 끝나는 지점을 미리 정해 둔, 교착을 푸는 장치입니다.
온콜 당번이나 회의 진행자를 돌아가며 맡는 방식에서는 정해 둔 순서에 따라 역할을 나눕니다. 무작위로 고르는 방식도 순번을 정하는 방식도 누가 먼저 움직일지 구분한다는 점에서 대칭을 깨는 방법입니다.
대칭은 어디서 깨지는가
교착을 만나면 우리는 먼저 사람을 탓합니다. 저 팀은 왜 저렇게 안 도와주지. 쟤는 왜 양보를 안 하지. 그래서 답도 사람에서 찾습니다. 더 잘 협조하는 사람을 뽑자, 팀워크 교육을 하자.
골목길의 예처럼 좋은 사람이 모여도 서로 상대가 먼저 움직이기를 기다리는 구조에서는 일이 막힐 수 있습니다. 이런 교착을 풀려면 일을 책임질 사람, 논쟁을 끝낼 기준, 돌아가며 맡을 순서를 정해야 합니다.
그러니 다음에 교착을 만나면 질문을 바꿔 봅시다. “누가 잘못했나”가 아니라, “이 구조에서 대칭은 어디서 깨지나.”