새로운 시스템 구축하기

“군주국이든 공화국이든 통치 초기에 기반을 다지지 못한 경우에는 로마인들처럼 최초의 기회를 포착하여 국가를 강화해야 한다. 그러한 기회를 놓친다면 뒤늦게 후회해도 소용이 없다.” – 니콜로 마키아벨리, 『로마사 논고』1

1.

흔히 사용하는 말 중에 시스템[System]이라는 단어가 있다. 하지만 쓰이는 빈도에 비해 정확한 의미를 알고 있는 사람은 굉장히 드문데, 이 말은 일정한 목표를 이루기 위해 서로 긴밀하게 의존하며 상호작용하는 상이한 구성체들의 집합을 가리킨다 23. CPU, 입출력 장치에서부터 작은 응용 프로그램에 이르는 모든 요소들이 상호작용하며 돌아가는 컴퓨터 시스템은 이러한 정의에 잘 맞는 대표적인 예라고 할 수 있다.

Gear System. (*출처: http://www.flickr.com/photos/19779889@N00/4398186065/)

그러면 왜 이것이 그토록 자주 이야기되는 것일까? 그것은 시스템이 가진 특징 때문이다. 시스템은 극도로 안정적이며, 어지간해서는 비슷한 결과를 낸다. 앞서 말했듯이, 시스템 내의 여러 요소들은 서로 의존하며 상호작용한다. 뒤집어 말하면, 시스템 내의 각 요소들에게 주어진 운신의 폭은 그리 크지 않다. 유지도 쉽다. 고장난 요소를 들어내고 제대로 동작하는 새 요소를 끼워 넣으면 이전과 그리 다르지 않게 돌아간다. 특히나 여러 명이 함께 진행하는 일의 경우, 일하는 방식이 일정한 시스템으로 정의된 쪽과 아닌 쪽의 퀄리티 차이는 상당히 크다. 그런데 사실상 전부에 가까운 사람들이 이러한 시스템의 일부로서 밥벌이를 한다. 이렇게 많은 사람들이 연관이 된 것이라면, 이야깃거리가 되지 않는 것이 더 이상하다.

2.

하지만 이러한 시스템의 강점은 그 자체로 약점이 되기도 한다. 언제나 안정적이라는 얘기는 뒤집어 말하면 하나의 요소가 변한다고 해서 전체는 별로 변하지 않는다는 얘기도 된다. 외부 환경이 극도로 변하거나 뭔가가 잘못 돌아가고 있어도 손쓸 방법이 없는 것이다.

앞서 많은 사람들이 시스템에 대해서 이야기한다고 했다. 대부분의 사람들은 회사에서 일을 하면서 좋든 싫든 시스템의 일부가 되어 살아간다. 그런데 왜 또 이걸 찾는 것일까? 그것은 간단한데, 대부분의 시스템이 크건 작건 문제를 품고 있기 때문이다. 특히나 시스템이 엉망일 경우 괴롭긴 엄청나게 괴로운데, 이게 워낙에 안정적이다 보니 바꾸고 싶어도 바꿀 수가 없다. 그러다보니 “잘 돌아가는 시스템” 을 꿈꾸지 않을 수가 없다. 이를테면, 팀장에서부터 막내 직원까지 손발이 환상적으로 척척 맞아 돌아가는 팀 같은 것 말이다.

다음 만화속세상에서 연재중인 만화 『미생』. 수출입 관련 업무를 수행하는 종합상사 팀을 그리고 있다. 이미지 출처는 89화.

아마도 프로그래머와 함께 일을 해 본 사람이라면, “기존의 소프트웨어를 고치는 것보다 처음부터 새로 짜는 게 더 낫겠어요.” 라는 말을 들어 봤을 것이다. 밖에서 보면 별 탈 없이 돌아가는 걸 왜 버리자고 하는 것일까? 그 이유는 간단한데, 내부 시스템이 엉망이기 때문이다. 이런 프로그램들은 작은 오작동의 원인을 찾는 것도 한세월이고(못 찾는 경우도 많다), 고치는 데도 엄청난 시간과 노력이 들어간다. 이것도 시스템이기 때문에, 한두 부분 손 봐 가지고서는 바뀌지도 않기 때문이다. 이쯤 가면 이건 어디서부터 손을 대야 할지 모르는 괴물4에 가깝다. 차라리 새로 만드는 게 낫다는 말은 이래서 나온다. 그만큼 기존의 시스템을 고치는 것은 어려운 일이란 얘기다.5

3.

일요일 오후 카페에 앉아서 책을 읽다가, 평소 지인들과 나눠 온 대화가 생각났다. 일전에도 몇 번 밝혔지만, 내 주변에는 스타트업에 관심이 많은 사람, 실제로 하고 있는 사람들이 많다. 그렇기 때문에 관련된 주제가 흔히 화제에 오르곤 한다. 현재의 시장 상황이 어떠한지, 어떠한 아이템이 유망할지에 대해서 말이다. 쉽게 말해서, 이 주제들은 실제로 행동에 나서기 전 (예비) 창업자들이 반드시 나누는 대화라고 할 수 있다.

피렌체의 우피치 궁전에 있는 마키아벨리 동상. (*출처 http://www.flickr.com/photos/robert_scarth/138386538/)

나 또한 이 주제들이 매우 중요하다고 믿는다. 하지만 나는, 이 대화에서 뭔가 매우 중요한 것이 빠져 있다고 생각한다. 바로 창업 후 함께 만들어갈 시스템에 대한 논의가 없다는 것이다. 두 사람 이상이 함께 공동의 목표를 이루기 위해 매진하기 시작하면, 그 순간부터 시스템은 잉태된다. 다른 사람들이 참여하면서 시스템 또한 조금씩 더 복잡해진다. 흔히들 창업을 일정한 목표물을 만들기 위한 과정이라 생각하지만, 이는 실은 목표를 완수하기 위한 일정한 시스템을 만들어가는 과정이기도 한 것이다.당연한 이야기지만, 이 시스템은 퀄리티 높은 결과물의 기반이 된다. 그런데 시스템은 한 번 정립되면 고치기가 매우 어렵다. 그렇기 때문에, 좋은 시스템을 구축하는 데 있어 “첫 삽”의 중요성은 아무리 강조해도 지나치지 않다. 가능하면 시스템이 구축되는 초기부터 기반을 다질 필요가 있으며, 최악의 경우에는 더 늦기 전에 시스템 내부에 내재한 문제를 해결해야만 한다. 그러한 기회를 놓친다면 뒤늦게 후회해도 소용이 없다.

4.

“공화국이나 왕국의 창설과 개혁은 철저하게 한 인물에 의해서 조직되어 행해져야 한다. 한 사람만이 오로지 그것을 할 수 있으며, 국가의 창설과 개혁이 한 사람에 달려있다는 점이 필연적이다. (같은 책, pp. 108)”

문제는 그 “새로운 시스템 구축을 위한 첫 삽”을 어떻게 뜨느냐다. 이걸 하기 위해서는 최소한 두 가지가 필요하다. 앞으로 만들어 갈 시스템의 모습이 어떠해야 하는지에 대해서 대략적인 목표가 필요하고, 또 구성원 전체가 이를 공유해야 한다. 어느 하나 쉬운 일이 없다.

앞에서 소프트웨어는 그 자체로 일종의 시스템이라고 이야기했다. 그렇다면 거대한 소프트웨어 시스템의 기초는 어떻게 구축될까? 재미있는 것은 여기서부터인데, 500년 전 한 인문학자의 저술과 묘하게 닮은 구석이 있다. 극소수의 정예 인력만을 동원해서 기반을 닦은 뒤, 인력을 조금씩 충원하는 방식으로 확장해6 나가는 것이다. 정예 인력이기 때문에 일반적인 인력에 비해 안목이 월등한 것은 당연하다. 게다가 극소수니까, 커뮤니케이션을 쉽게 진행할 수 있고 거의 한 사람 수준으로 머릿속을 일치시키는 것도 가능하다. 사실 정치 제도건 소프트웨어건 시스템이라는 측면에서는 본질적으로는 비슷한 만큼7, 첫 삽을 뜨는 방식에서 유사한 점이 보이는 것은 어찌보면 당연한 일인지도 모른다.

마키아벨리가 평생을 보낸 도시 국가, 피렌체의 전경. (*출처: http://www.flickr.com/photos/b00nj/5995138155/)

나는 옛 인문학자의 조언과 소프트웨어 공학의 경험이 스타트업에도 적용될 수 있다고 본다.8 창업자들이 앞으로 그들이 만들어 가야 할 시스템에 대해 명확하게 이해하고 그에 대한 시각(Vision)을 공유할 필요가 있다는 얘기다. 물론 사람이 하는 일이 처음부터 완벽할 수는 없겠지만, 최소한 창업 초기부터 시스템에 심각한 문제점이 박혀 들어가는 사태만은 막을 수 있으며 또 반드시 초기에 막아야만 한다는 것이 내 생각이다. 이를 위해서는 창업자들이 자신들이 일해 온 시스템의 강점과 장점을 체계적으로 분석하고, 앞으로 만들어 가야 할 시스템이 갖춰야 할 조건들에 대해 생각하며, 그에 대한 의견을 교환하는 과정은 필수적이다.910 이 일은 시장 상황을 살피고 아이템을 선정하는 것 못지않게 중요한 일인 만큼, 아무리 많은 시간과 노력이 들어가도 아깝지 않다고 믿는다.

5.

아, 그러면 이러한 문제에 대한 경험이 전혀 없는 대학 졸업자가 바로 창업하는 경우는 어쩌면 좋겠냐고? 글쎄, 나는 이런 상황이 대부분의 경우 그 자체로 재앙이라고 생각한다. 논할 필요가 없다.

+1

그런 점에서 나는 현재 시중에 유통되는 Apple, Google, Facebook에 대한 담론들 중 상당 부분에 문제가 있다고 생각한다. 이러한 담론들 대부분은 “애플은 부서간에 커뮤니케이션이 거의 없다더라.” “구글은 전체 시간의 20%를 자기 프로젝트에 쓸 수 있게 해준다더라.” 수준의 단편적인 설에 불과한 경우가 많다. 정작 중요한 것, 창업자들에게 도움이 될 수 있는 지식은 그들이 창업 그 순간부터 자신들의 시스템을 어떻게 다듬어 나갔느냐가 아닐까.


  1. 니콜로 마키아벨리, 강정인·안선재 공역, 『로마사 논고』, 한길사, pp. 137 

  2. 이걸 어떻게 기억하고 있느냐 하면, 이 문제가 학부 시절 산업공학개론 수업 중간고사 문제였기 때문이다. 이 바로 앞 문제가 도요타의 JIT 생산에 대한 문제였는데, 교수님께서 이 두 주제를 함께 엮어서 설명을 하셨기 때문에 아직도 기억에 깊숙히 남아 있다. 

  3. “시스템”은 물리학에서는 “계”로 번역된다. 이 경우 의미가 일반적인 의미와 약간 달라지지만, “서로 다른 요소들의 긴밀한 상호작용”이라는 특징은 남는다. 

  4. 일명 ‘스파게티 코드’. 

  5. 뒤집어 말하면 자기네 주력 제품의 소스코드를 수십 년째 성공적으로 유지보수하고 있는 MS, Oracle, Adobe 등은 그야말로 엄청난 능력자 집단이라고 할 수 있다. 나는 개인적으로 이 중에서도 MS가 가장 강력하다고 보는데, 운영체제라는 프로그램은 다른 그 어떤 프로그램들보다 복잡한 시스템이기 때문이다. 

  6. 여기서 그냥 그대로 소수인원만으로 개발을 완료하는 경우도 제법 된다. iPhone, iPad에 들어가는 사파리 웹브라우저의 경우 딱 두 명이서 다 만들었다는 얘기도 있다. 당연한 거지만, 이런 친구들은 억 소리나도록 몸값이 비싸다. 

  7. 고대 그리스의 도시 국가 스파르타의 경우 리쿠르고스라는 전설적인 입법자가 국가 시스템 전체를 만들었다는 기록이 내려온다. 다만 이것이 완전히 사실인 것 같지는 않다. 최근에는 여러 명의 입법자를 묶어서 리쿠르고스라는 가상의 인물로 통칭했다는 설이 대세라고. 

  8. 어떻게 보면 Google이나 Facebook의 창업자들은 이러한 점을 암묵적으로 알고 있었을지도 모른다고 생각한다. 이 사람들은 창업을 하던 시점부터 이미 소프트웨어 구축의 달인들 아닌가. 

  9. 실제로 창업 전문가인 하버드 경영대학원의 노암 와서만(Noam Wasserman) 교수는 가족이나 친구가 아닌, 함께 일을 해 본 직장 동료들과 창업하는 것이 가장 이상적이라고 주장한다. 서로 장단점을 잘 알고, 적당한 위계질서가 있으며, 공동의 목표를 향한 열정도 공유하기 쉽기 때문. 한 마디로 말해서 시스템이 어느 정도 안정적으로 잡혀 있고 만들어갈 시스템에 대한 시각도 어느 정도 공유하고 있다는 얘기다. 

  10. 사실 이러한 시각으로 보면 이 인터뷰 기사는 창업 직후 시스템을 구축할 때 하지 말아야 할 일들에 대한 리스트라고 볼 수도 있다. 사실 나는 저기 언급된 사례 중 몇 건을 직접 봤다. 어떻게 됐냐고? 얘기 안 하겠다. 

10 thoughts on “새로운 시스템 구축하기

  1. 요새 지인들과 비슷한 의견을 많이 나누는지라 공감 많이 했습니다. 시스템을 제대로 만든 실사례도 목격해서 더더욱 생각이 많아지네요.

    • 와… 정말 좋으시겠어요. 그런 경험은 아무나 할 수 있는 게 아닌데…

  2. 조선 초기 조광조가 조선 시스템의 기틀을 만들고, 그 이후 부터는 다수의 유학자들이 하나하나 쌓아 나간 것과 비슷하군요. 하지만 초기에 보이는 문제점들을 말고 단순 예상할 수 있는 문제점들까지 해결되어 나가는 것은 너무 과도한 부담을 요하지 않을까요?

    • 1. 우선 저는 조선왕조의 시스템을 기초한 사람은 조광조가 아니라 정도전이라고 생각합니다.
      2. “초기에 보이는 문제점들을 말고 단순 예상할 수 있는 문제점들까지 해결되어 나가는 것” → 솔직히 이게 무슨 말씀이신지 잘 이해를 못 하겠습니다;

    • 실례 정도전입니다. 갑자기 조광조가 생각났군요.

      쓰고 나서 수정하려니 비밀번호를 안 넣어 바꾸지를 못하는군요. 다시 말하자면 이렇습니다.

      “초기에 발견할 수 있는 직관적 문제점들 이외에 후일 일어날 수 있을것이라 예상하는 모든 문제점들까지 모두 해결되어야 하는 것” 은 너무 과도한 부담이 아닌가 하는 것 입니다. (덧글 글씨가 너무 작아서 잘 보이질 않네요)

    • 모든 문제를 미리 해결할 수는 없는데, 굳이 안 가봐도 뻔히 예상되는 건 해결할 수 있고 또 해결해야 하죠. (ex. 동일한 기본형에서 파생되는 다양한 제품 타입을 관리하는 것.)

  3. 그래서 나는, 스타트업에는 “제대로 된” 회사에서 다닌 경험을 가진 결정권자(Co-Founder 수준?)가 반드시 필요하다고 생각함. 물론 “제대로 된” 회사가 그리 많지 않아서 문제지만…

    • 동의. 최소한 훗날 임원급을 맡을 사람들은 기술이든 마케팅이든 “선수”일 필요가 있지.

  4. 전 그냥 ‘무력한’ 시스템유저라는 기분이 드니, 좀 슬퍼지네요.

Comments are closed.