공산주의의 실패

공산주의 이론은 매력적이다. 모두가 평등하고 행복하게 살 수 있는 세계라면 누가 마다할 것인가. 그러나 공산주의 국가들의 몰락은, 완벽해 보이는 이론이 몇몇 한계로 인해 이론의 주요한 장점을 송두리째 흔들어 버릴 수도 있다는 것을 보여준다.

내가 생각하는 공산주의의 실패 요인은 아무리 완벽한 시스템도 그것을 운영하는 것은 사람이라는 점과 유토피아를 만들만한 생산성을 확보할 수 없었다는 점이다.

사람의 문제는 지배계급과 노동계급의 두 측면에서 생각해 볼 수 있다. 공정한 분배와 규칙의 준수를 책임져야 하는 지배계급은 부패하게 되는데 시스템에서는 이를 제대로 막을 수 없었다. 조지오웰의 ‘동물농장’에서는 인간들을 추방한 농장에서 돼지가 다시 부패한 지배세력이 되는 과정을 그리고 있다. 시스템의 유지 책임이 있는 지배층의 부패는 시스템 자체를 파괴한다. 노동계층에 속하는 사람들 역시 평등 속에서 그리 행복하지 않았을 것이다. 인간의 행복감은 언제나 상대적이고, 이것은 자신의 이전 상태에서 현상태로 향하는 가속에 의해 결정되기도 하지만, 타인과의 비교에 의해 확인되기도 한다. 공산주의에서 추구하는 모두의 평등이란 탐욕적인 인간의 본성을 고려한다면 유토피아는 아니었던 것이다.

두번째 문제는 생산 효율성에 관한 문제다. 인간의 욕망을 제대로 자극하지 못하는 공산주의 체제에서는 인간이 낼 수 있는 최상의 생산 효율성을 기대하지 못한다. 인간의 욕망을 자극한 자본주의 국가가 공산주의 국가들보다 훨씬 부유하게 된 것이 우연은 아닐 것이다. 4차 산업혁명으로 인해 생산 효율성이라는 자체가 무의미해진다면 유토피아가 한걸음 다가올 것이다. 생산효율성이 무한대에 가까워진다면, 우리는 공정한 분배의 문제에만 집중할 수 있을 것이기 때문이다.

애자일의 실패는?

애자일이라는 이상적인 철학의 한계점을 말하기 위해 길게도 썼다. 폭포수 방식이 죄악시 되며, 그 대안으로 애자일 방법론이 인기를 끌었다. 그러나 애자일 방법론 역시 몇몇 치명적인 한계 때문에 성공사례를 보기가 극히 드물다.

외부의 압력

애자일을 해야 하면 개발자들이 즐겁게 일을 할 수 있다는 식의 이야기는 결과론적인 것이다. 반면 애자일을 하는 본질적인 이유를 찾는다면 고객을 더욱 만족시키기 위함이다. 다시 말해, ‘더 큰 비즈니스 가치를 더 빠르게’ 찾기 위함이다. 고객은 언제나 멍청하고 게으르며 욕심이 많고 결코 만족할줄 모른다. 애자일에서는 이런 고객과 협업하고 합의할 것을 전제하고 있다. 얼마나 순진한 발상인가. 애자일에서는 스프린트 내에서 할 수 없는 일들에 대해서는 고객과 합의하여 우선순위를 정하고, 다음 스프린트의 계획에 포함시킨다. 하지만 SI의 현실에서 일어난 대화를 소개하겠다.(실제로 있었던 대화이다!)

고객 : A 기능을 이번 Phase에 넣고 싶은데요
나 : 이번 Scope에서 처리하기는 힘듭니다. 다음 Phase에서 진행하시죠.
고객 : 다음 Phase의 CR로 넣는다면 추가 비용이 있습니까?
나 : 네, CR로 들어가면 비용이 발생합니다.
고객 : 그러면 이번 Phase에서 해주세요.
나 : ??

고객은 대부분 일정과 비용, 범위에 대해 합의하려 하지 않는다. 언제나 더 빠르게 더 많은 것을 더 싼 가격에 해줄 것을 요구한다. 외부의 압력에 우아한 애자일은 무너지기 십상이다.

내부의 압력

애자일은 인간은 자율성을 가지고 가정하며, 가장 자유로울 때에 최상의 성과를 낼 것이라 생각한다. 하지만 맥거리거의 이론에서 말하는 능동적이고 주체적인 Y형 인간은 실제 세계에서 거의 존재하지 않는다. 누구나 자신을 Y형 인간이라 말하겠지만, 주변을 잠시만 보더라도 팀장이 휴가 가는 날을 ‘어린이날’이라 부르는 X형 인간들이 훨씬 더 많을 것이다. 모두가 자율적이고 능동적으로 일하는 애자일 조직이라면 더할 나위 없이 좋겠으나, 안타깝게도 수동적이고 최대한 자리를 지키려고 하는 인재들이 조직에는 대다수로 존재한다.

X형 인간들은 애자일을 별로 좋아하지 않는다. 수동적으로 나태하게 살고 싶어하는 사람들에게 애자일은 무리한 것을 요구한다. 매일 아침 스크럼을 통해 자신이 한 일과 해야할 일을 밝히라는 것은 얼마나 무리한 요구인가. 몇몇의 게으른 개발자에게 스크럼은 발가벗겨지는 것 같은 느낌을 줄 것이다. 그래서 그들은 스크럼이 무의미하다고 주장한다. 스크럼을 할 시간에 업무를 더 해야한다고 할 수도 있고, 지각을 하여 스크럼에 참석하지 않을 수도 있다. 이 모든 것이 애자일을 망치는 내부의 압력으로 작용한다.

배보다 큰 배꼽

애자일 철학을 위한 수많은 방법론들이 있다. 가장 대표적인 스크럼, XP, 칸반 등은 수많은 모범 사례들을 제시한다. 스프린트가 시작하기 전 플래닝을 통해 스토리를 식별하고 우선순위를 정하며, 스토리 포인트를 산정한다. 보통 하루 종일 진행되는 플래닝은 의미가 없기 마련인데, 고객이 끊임없이 스프린트를 망쳐놓기 때문이다. (고객과 스프린트 중에는 방해하지 않기로 합의하라고 되어 있다;) 이 외에도 아침마다 스크럼 미팅을 하는 것, 2주 정도의 단위로 스프린트를 나누어, 그 때마다 릴리즈를 하는 것, 릴리즈가 끝나면 모두 모여 회고를 하는 것등 애자일 방법론의 많은 활동들은 큰 노력을 필요로 한다.

정말 연봉을 높게 주고, 정시퇴근도 할 수 있으며, 정년까지 다닐 수 있는 회사가 있다고 치자. 그런데 그 회사를 가기 위해서는 아침 5시에 일어나서 KTX를 타고 부산까지 내려가, 다시 버스를 타고 외곽으로 나가서 내린 후에, 마을 버스를 타고 회사까지 가야한다고 생각해 보자. (어떤 사정으로 회사 근처로 이사를 갈 수는 없다) 목표를 이루기 위한 과정이나 도구 자체에 들어가는 노력이 지나치게 크다는 것은 현실적으로 목표를 달성할 수 없다는 것과 같은 말이다.

규모의 한계

스크럼 팀은 5~7명이 이상적이며 최대 9명을 넘어가면 곤란하다. 애자일의 특성상 지속적이고 밀접한 커뮤니케이션이 중요하기 때문이다. 비즈니스의 규모가 조금만 커지게 되면 9명으로 지속할 수 있는 비즈니스는 거의 없다. 이 경우 각 스크럼 팀 간의 사일로가 발생하면 재앙에 가까운 일이 생긴다. 각 스크럼 팀이 똘똘 뭉쳐 스스로 성장(self-organized)하고, 독립성을 유지할 수록 외부와의 커뮤니케이션은 점차 힘들어 진다. 이런 규모의 한계를 돌파하기 위해 SAFe등의 대규모 애자일 프레임이 소개되기는 하지만, 이상적인 애자일에 더욱 거추장스러운 이상이 하나 더 추가된 느낌일 뿐이다.

전가의 보도는 없다

애자일 방식으로 성공한 기업을 찾기는 성공한 공산주의 국가를 찾는 것만큼 쉽지 않다. 애자일은 ‘귀에 걸면 귀걸이, 코에 걸면 코걸이’ 식으로 활용되어 왔다. 비즈니스는 개발자에게 ‘우리가 원하는 변화를 빨리 받아들여서 개발해주는 것이 애자일’이라 주장하고, 개발자는 비즈니스에게 ‘지속가능한 속도로 개발할 수 있는 양만큼만 하는 것이 애자일’이라 반발한다. 서로 자기가 좋아하는 부분만 골라서 보고 있는 것이다. 적폐대상으로 취급받던 폭포수 모델도 나름 장점이 있다. 수동적인 사람들이 많은 환경에서 마감일을 먼저 찍고 간다는 것은 대다수의 사람에게 단기적인 목표점을 찍어주는 것과 같다. 이에 따라 사람들은 뒤쳐지지 않기 위해, 그 마감일을 맞추기 위해 미친듯이 달린다. 목표지향적인 관점에서 보자면 폭포수의 효용성도 무시할 수 없다. 나는 폭포수 모델과 애자일 모두가 완벽하지 않다고 생각한다. 동전의 양면처럼 하나의 장점은 다른 하나의 단점으로 작용할 것이다. 서로의 우위보다는 프로젝트의 목표나 구성 인력의 상황에 따라 유동적으로 활용하는 것이 필요해 보인다.