왜 안 좋은 역사는 반복되는 것일까

이 일을 처음 시작하시려는 분들이 하시는 질문 중 자주 보이는 것은 큰 회사에서 일을 시작하는 것이 좋은지, 아니면 작은 회사에서 일을 시작하는 것이 좋은 지에 대한 것입니다. 이런 질문은 항상 어떤 명확한 답변을 원하지 않으며 한편 이런 질문에 명확한 답변을 할 수도 없고 명확한 답변이 있을 수도 없다고 생각합니다. 다만 질문을 들은 사람이 자신의 경험에 기반해 자신의 생각을 말할 수는 있고 그 생각을 듣는 사람이 받아들여 의사 결정에 참고할 수는 있을 겁니다.

개인적으로는 큰 회사에서 시작하는 편이 더 좋다고 생각합니다. 큰 회사에는 여러 단점도 있지만 회사 시스템이 어느 정도 구축 되어 있어 처음부터 회사가 돌아가는 전체 그림을 이해하기 위해 핵심 업무 바깥의 그림에도 집중하며 어려움을 겪을 필요가 없습니다. 간단히 일단 회사 시스템이 제대로 구축 되어 있다면 컴퓨터가 고장 났을 때 누구에게 이야기 해야 하는지, 재직증명서를 발급 받으려면 누구에게, 혹은 어느 부서에 어떤 방법으로 이야기 해야 하는지 이미 결정되어 있고 과정도 잘 닦여 있을 겁니다.

하지만 회사 시스템이 잘 구축되지 않은 너무 작은 조직에서 일을 시작하면 방금 이야기 한 이런 시시콜콜한 것들이 제대로 구축되어 있지 않아 작은 요구사항을 처리하는데도 어려움을 겪을 수 있고 또 업무를 위해 회사로부터 받아야 할 서비스가 일관되게 유지되지 않을 수 있어 처음 일을 시작하는 입장에서는 꽤 적응하기 힘들 수 있습니다. 그래서 맨 처음에는 회사 시스템이 갖춰진 어느 정도 규모가 있는 곳에서 일을 시작한 다음 일을 함에 따라 뚜렷해질 자신의 취향에 따라 다음 단계를 천천히 결정하는 편이 좋다고 생각합니다.

한편 시작은 그렇더라도 큰 회사가 좋지 않은 결과를 가져오는 사례도 있어 항상 위 설명과 지금부터 할 설명을 함께 하곤 하는데 큰 회사의 단점 중 하나는 조직이 단단하고 재정적으로 너무 안정적이기 때문에 회사 안에서 일어나는 작은 실패들이 실패로써 해석되지 않고 계속해서 개발 과정의 일부로 누적되는 상태를 아주 오랫동안 견딜 수 있는 것입니다.

작은 회사에서 규모가 큰 MMO 게임을 개발한다고 해 봅시다. 애초에 일단 작은 회사는 규모가 큰 MMO를 개발하기 쉽지 않은데 규모가 있는 MMO 게임에는 예상보다 훨씬 많은 기능이 필요하고 각 기능에 예상보다 훨씬 많은 인력이 필요하기 때문입니다. 이를 별로 고려하지 않고 적은 인력으로 개발을 시작했다가 그저 시장에 있는 경쟁 제품에 당연히 있는 기능을 따라잡기만 하는데도 순식간에 몇 년에 걸쳐 팀을 혹사 시킬 수 있고 그렇게 간신히 경쟁 제품과 비슷한 상태가 됐지만 여전히 이를 서비스 수준으로 끌어올리기 위해서는 거대한 노력이 필요합니다.

이런 위험에도 불구하고 개발을 시작해 2년 안에 개발을 마치려는 로드맵에 따라 개발을 시작했다고 하면 갖은 노력 끝에 2년이 되었을 때 작은 회사는 이제 중대한 결단을 내려야만 하는 상황이 됩니다. 이 많은 사람들을 별다른 수익원 없이 계속해서 유지하며 개발을 계속할 수 있을지, 아니면 여기서 개발을 중단하고 조직을 청산해야 할 지 결정해야 하는 상황에 처하게 되고 많은 작은 회사들은 여기서 개발을 중단하게 됩니다. 개발을 중단할 결정을 내렸기 때문에 개발을 중단할 수도 있고 물리적으로 사무실에 전기가 끊기는 순간을 맞이해 개발이 중단될 수도 있습니다. 이런 상황에 처하면 구성원들은 본인들의 의지에 관계 없이 다른 직장을 찾아야 하는 상황을 맞게 됩니다. 이 상황은 분명 고통스럽지만 어떤 면에서는 이어서 설명할 사례와 비교해볼 여지가 있습니다.

이번에는 아주 큰 회사에서 MMO 게임을 개발한다고 해 봅시다. 이 회사는 이미 다른 프로젝트로부터 충분한 수익을 올리고 있으며 한창 회사가 규모를 확장하려고 할 때 구입해 놓은 여러 건물을 임대하며 개발 이외의 수익도 올리고 있습니다. 회사 안에는 이미 규모가 큰 MMO 게임을 여러 번 개발해본 사람들이 있고 이들은 이미 처음부터 눈높이가 높으며 자신의 눈높이를 감당할 수 있는 실력이 있습니다. 이전의 개발 경험을 바탕으로 초기 팀을 세팅하고 스탭들을 모아 꽤 빠른 시점에 팀 빌딩을 어느 정도 마무리할 수 있을 겁니다.

그리고 본격적으로 개발을 시작하는데 초기에 요구사항이 불분명한 상황에서 개발을 시작하면서도 프로젝트 구성원들, 담당 임원, 그리고 경영진 모두의 눈은 엄청나게 높기 때문에 처음부터 이를 충족시키기 위한 괴물 같은 훌륭한 빌드를 만들어 내고 나름 순조로워 보일 겁니다. 하지만 이런 팀도 물리적으로 시장에 이미 출시되어 서비스 중인 다른 제품 수준에 도달하는 데는 다른 프로젝트와 비슷한 시간이 걸리게 되는데 비슷한 기능이라도 기대 수준이 훨씬 높기 때문입니다. 그리고 똑같이 개발을 시작한 지 2년 쯤 흘렀을 때 결단을 내려야만 하는 상황이 됩니다.

이전과 다른 점은 이번에는 사람들을 먹여 살릴 수 있을 지에 기반한 결정이 아닙니다. 처음에 경영진들에게 제시한 로드맵에는 이 즈음이 되면 서비스 준비를 시작할 수 있을 거라고 이야기 했지만 그 동안 개발한 기능을 조합해 볼 때 지금부터 서비스 준비를 하기에는 아직 회사 안의 기대 수준을 충분히 만족하지 못하기 때문에 누구의 눈높이도 제대로 만족하지 못해 실패할 가능성이 높아 보이는 상태로 서비스를 준비했다가 예상 대로 실패해 회사에 큰 손실을 끼치고 또 회사 평판에 문제를 일으키기 보다는 좀 더 시간을 들여 개발을 계속 하기로 결정합니다.

하지만 소프트웨어는 어느 시점이 되면 투입하는 자원에 비해 효용이 아주 아주 아주 아주 낮은 상태가 되어 첫 2년 동안 개발하고 나서 좀 더 개발해 완성도를 높일 결정을 하고 나서 다시 2년이 지났을 때 잘 모르는 사람이 보면 2년 전 빌드와 2년 후 빌드를 서로 잘 구분하지 못할 수도 있습니다. 이는 프로젝트에 참여한 사람들 관점에서도 별로 다르지 않은데 계속해서 비슷한 기능을 다시 개발하기를 반복하다 보면 이전에 비해 무엇이 개선되었고 어떤 방향으로 개선해 나가는지 잘 모르게 될 수 있습니다.

프로젝트에 참여하는 개개인의 정신력에는 한계가 있어 결과가 확실하지 않은 상태에서 비슷한 일을 계속해서 반복하다 보면 정신력이 고갈되고 더 이상 생산적이거나 위험을 감수하거나 좋은 생각을 말할 수 있는 상태에서 지시한 일을 적당한 수준으로 수행하지만 결코 훌륭하지는 않은 상태가 되기 쉽습니다. 그리고 이전에는 물리적으로 사무실에 전기가 들어오지 않아 다른 직장을 찾기 시작하던 사람들이 멀쩡한 회사와 멀쩡한 월급과 멀쩡한 환경을 마다하고 다른 직장을 찾기 시작합니다.

업계에는 이런 상황에 처한 유명한 몇몇 프로젝트가 있는데 이들 중 일부는 너무나 유명하고 또 너무나 오랫동안 개발한 나머지 업계에서 웬만큼 일한 사람들 중 과장을 좀 보태 이 프로젝트 경력이 없는 사람을 찾기 어려울 정도입니다.

며칠 전에 이전에 함께 일했던 동료로부터 연락을 받았는데 이 팀은 제 스스로가 위에 소개한 두 가지 상황 중 두 번째 상황에서 정신력이 완전히 고갈된 상태로 버티다가 더 이상은 안되겠다고 생각해서 팀을 버리다시피 하고 나온 프로젝트였습니다. 그래서 남은 팀원 분들께 너무 미안하고 또 죄송스러운 마음을 가지고 있었는데 그 팀에는 새로 여러 스탭들이 충원 되었지만 다른 한 편으로는 함께 일하던 분들 대부분이 다른 일을 찾아 회사를 떠났고 이제 함께 일하던 분들 중에는 연락을 주신 이 분과 다른 한 분이 남아 있었는데 이제 그 중 한 분이 회사를 떠나고 마지막으로 연락을 주신 그 한 분 만이 남아 있는 상황이라는 설명을 들었습니다.

미안하고 죄송하고 송구스럽다는 온갖 말 이외에는 마땅히 할 말이 없었습니다. 리딩 하는 입장에서 팀이 임무를 수행할 수 있도록 하는 데는 제 스스로의 정신 건강을 챙겨야 한다는 사실을 잘 몰랐고 최선을 다했지만 스스로 고갈 되어 간다는 사실을 너무 늦게 깨달았습니다. 덕분에 한 번에 무너졌고 팀을 떠나게 됐는데 팀을 떠나면서 남은 사람들이 그 동안 임무 수행에만 집중하도록 도왔던 장치들 대부분이 한 번에 사라지면서 한동안 굉장히 힘든 시간들을 보냈던 것 같습니다. 만약 그 때 제가 무너지지 않고 버텼다면 하나 둘 씩 팀을 떠나는 결정을 할 시간을 더 뒤로 미루고 꽤 안정적인 환경에서 재미있게 일할 수 있었을 지도 모릅니다.

옛 동료를 위로하고 또 사과하고 또 팀을 떠날 때 드렸던 말씀인 미래에 여러 상황을 겪으며 혹시 나쁜 마음이 들더라도 그 나쁜 마음이 드는 이유 대부분은 자기 자신 때문이 아니라는 점을 기억해 달라는 말씀을 드리며 연락을 마무리했지만 마음이 많이 쓰이는 걸 막을 수는 없었습니다.

이제 이런 긴 이야기 끝에 제목으로 돌아가 왜 이런 안 좋은 역사가 계속해서 반복되는 것인가 하는 생각을 해 봅니다. 위에서 두 가지 회사 사례를 들었는데 후자의 상황을 두 번 겪었고 전자와 비슷한 상황도 겪었는데 전자와 비슷한 상황에 처한 한 회사는 칼 같이 2년이 된 시점에 제품을 출시해 시장에서 적당한 반응을 얻었고 항상 어떻게든 제품을 출시해 내는 능력이 있다는 평가를 얻게 됩니다. 물론 그 과정은 결코 순탄하지 않았습니다. 내부에서 사람을 미친 듯 갈아 제한 시간에 맞추곤 했는데 제한 시간 안에 출시하는데 모든 노력을 기울인 이유는 제한 시간을 한 번 넘기기 시작하면 두 번째 설명한 상황으로 너무 쉽게 빠질 수 있고 이 과정에서 회사도 직원도 여러 측면에서 다칠 수 있음을 잘 알고 있기 때문입니다.

만약 제품이 시장에서 훌륭하지 않은 평가를 받더라도 구성원들은 출시를 통해 그 동안 소모한 정신력을 어느 정도 회복할 수 있을 뿐 아니라 회사 내부의 한없이 높은 눈높이 대신 실제 고객들의 평가에 노출되는 경험을 할 수 있어 경제적으로 아주 큰 성공을 달성하지는 못하더라도 회사 전체 입장에서 보면 그 성공을 작게만 평가할 수는 없다고 생각합니다.

하지만 시장에는 너무 거대한 경제적 성공을 거둔 플레이어들이 있고 이들과 경쟁할 생각으로 새로운 제품을 개발하려는 팀들이 가진 최소한의 눈높이는 이 거대한 경제적 성공을 거둔 플레이어에 맞춰져 있으며 이는 제한 시간 안에 결코 달성할 수 없는 목표일 수 있습니다. 이를 인정하지 않기 때문에, 혹은 인정하고 싶지 않기 때문에 좋지 않은 역사가 계속해서 반복되는 것이 아닐까 하는 생각을 해봅니다.