팀 세우기 (3편), 호흡 맞추기

2137737248_e9f3e429d1_z (2)

팀 세우기 (1편), 숱한 거절 보러가기
팀 세우기 (2편), 결성 보러가기

갓 창업했을 때 우리는 한 무리였다. 각자 개성을 가진 두 사람이 모여있는, 단지 그 상태였다. 그리고 약 1년 가까이 시간을 보낸 시점에 이르러 비로소 우리는 팀으로 호흡 맞춰 움직이게 되었다.

1. 그때 이야기

작은 외주 프로젝트

함께 개발 작업을 한 첫 프로젝트는 외주였다. 2010년 3월에 시작하여 5월에 끝났는데, 아이폰용 웹앱(web app)과 웹을 개발하는 프로젝트였다. 총 500만 원짜리 프로젝트였는데, 가격 대비 손이 꽤 들어가는 프로젝트였다. 나는 웹 프론트엔드쪽(앞단, web frontend)을, Spikeekips는 백엔드(뒷단, backend)를 맡았다. 난 xhtml/html5와 css 3, jquery를 사용했고, Spikeekips는 python과 django를 사용했다.

우리에겐 사무실이 없었다. 첫 사무실은 이장님이 창업한 협업공간 CO-UP을 이용했지만1, 곧 나왔기 때문이다. 개발 초기, 일주일에 한 번에서 두 번 정도 만났지만, 주로 온라인상에서 비동기로 협업했다. 그리고 우린 함께 개발한 경험이 없어서 서로의 일하는 방식이나 성향을 몰랐다. Spikeekips는 설계를 공고히 쌓아가고 있었는데, SVN(Subversion, 버전 관리 도구)으로 프로젝트 소스 코드를 받아봤지만 내 수준으로 그가 짠 소스를 제대로 이해하기 어려웠다. 이런 여러 이유로 나는 프로젝트 진행 상황을 명확히 파악하기 어려웠다.

bikely_store-resized

 

얼마 후 우리는 사무실을 얻을 수 있었다. 내가 존경하는 분이 Bikely라는 자전거 스토어(store)를 갓 개장2하셨는데, 매장 일부를 쓸 수 있게 기꺼이 내주셨다. 원래는 두 명이 들어가 작업하는 작은 Lab실 용도였는데, 무상으로 기꺼이 공간을 내주셨다.

our_first_office_in_bikely_03-resized-356x400

our_first_office_in_bikely_02-resized-400x298 (1)

책상 두 개 들어가 있는 작은 공간이지만, 우리의 공간이 다시 생겨서 기뻤다. 실제 작업 효율에 도움되는 걸 떠나서 서로를 알아가는 시간을 만들어주는 소중한 공간이었다.

프로젝트는 큰 문제 없이 진행됐다. 프로젝트에 들어가는 기술 난도는 높지 않았고, 웹 개발 프로젝트 경험이 많은 Spikeekips가 기반 시스템을 공고히 만든 덕에 작업도 수월했다. 프로젝트 중반부터 나는 모바일 웹 프론트엔드 개발을 전담했는데, Spikeekips의 개발 영역과 겹치는 부분이 많지 않아 편했던 점도 있었다.

프로젝트를 마칠 때쯤은 시기상으로 봄이었지만, 우리에겐 여전히 혹독한 겨울이었다. 내 통장 잔액은 곧 바닥날 예정이었고, 우리에겐 여전히 돈이 없었다.

좀 더 큰 프로젝트

작은 외주 프로젝트를 마치고 얼마 후, 좀 더 큰 외주 프로젝트를 논의하기 시작했다. 역시나 프로젝트 규모와 비교하면 금액은 적어서 우린 아쉬워했다. 하지만 회사 설립과 초기 자금으로 삼을만한 돈은 되었기에 난 내심 기뻤다. Spikeekips는 기술 및 개발 측면에서 재밌는 도전 영역을 발견하고는 아쉬운 마음을 달랬다. Spikeekips는 TwistedXMPP 등을 내게 들려주었고, 그런 대화를 나누는 시간이 즐거웠다.

하지만 프로젝트는 점차 우리에겐 매력을 잃어갔다. 이런저런 이유로 프로젝트는 축소되었는데, 축소될 때마다 프로젝트 착수일은 미뤄졌다. 하지만 프로젝트 완료 시기는 변동되지 않았다. 프로젝트를 논의한 지 수 개월이 지난 뒤에 계약했는데, 기대 수익도 많이 줄었고, 기술 측면에서 도전 요소도 일정이 빠듯하여 대부분 쳐내야 했다.

이번 프로젝트에서 나는 아예 처음부터 모바일 프론트엔드를 맡기로 했다. 아이패드에서 수기로 글씨나 그림을 입력받고, 이걸 서버로 전송하는 게 주요 기능이었다. 개발 기간이 너무 촉박했기 때문에 모바일 프론트엔드를 웹으로 개발하기로 했다. 처음엔 SVG 기술을 이용하여 웹에서 2차원 벡터(Vector) 그래픽을 구현하였는데, 아이패드1 성능이 만족스럽지 않았다. 그래서 수기 상황에서는 HTML5 기술인 Canvas로 그래픽을 구현하고, 수기로 그린 경로 데이터를 따로 저장한 뒤 이를 SVG로 데이터로 만들어 서버로 보내기로 했다. 서버는 XML 형식인 SVG 파일을 클라이언트로 받아서 이를 PNG 파일로 변환하여 웹 렌더링 영역에서 출력했다.

백엔드쪽은 처음에 계획했던 서버 푸시 기술을 취소하고, 서버 폴링(polling) 기술을 택했다. 클라이언트는 대단히 짧은 시간 간격으로 서버에 데이터나 상태를 요청하여, 서버가 빠르게 응답만 해준다면 마치 서버가 클라이언트로 데이터를 밀어(push) 넣어주는 것처럼 보인다. 다시 말하면 서버가 아주 빠르게 응답을 해줘야 한다. Spikeekips는 제한된 환경 안에서 요구사항을 정확하게 구현해내어 서버는 아주 빠르게 응답하여 클라이언트 요청에 대응했고, 마치 실시간 서버 푸시 기술이 동작하는 것 같았다.

프로젝트 규모가 좀 더 크다보니 우리도 크고 작은 갈등을 겪었다. Spikeekips는 꼼꼼하게 설계하며 눈에 안 보이는 부분도 신중히 개발했다. 사소한 기능이더라도 test code를 짜서 검증하였다. 성격과 업무 특성상 눈에 보이는 작업이 많은 나로서는 답답했다. 지난 프로젝트 때 진행 상황을 제대로 파악하기 어려웠던 기억이 나서 마음이 더 다급해졌다. 그런 나를 보며 Spikeekips는 너무 다급해하지 말라고 했고, 지난 프로젝트에서 Spikeekips가 한 방식대로 한 것이 결과적으로 작업 안정성이나 시간 효율이 좋다는 걸 알고 있었는데도, 마음은 다급해졌다.

나와 Spikeekips가 충돌했던 일은 내가 그의 코드를 임의로 수정해서 일어났다. Spikeekips가 부재할 때 고객사(우리의 갑이 아닌 프로젝트의 고객사, 즉 최종 갑)가 어떤 의견을 제시하거나 동작을 요구했고, 마냥 Spikeekips를 기다릴 수 없던 나는 실제 작동하는 서버 소스 코드를 어떠한 검증 과정도(test code) 거치지 않고 바로 수정해 SVN 저장소에 추가하였다. 그는 무척 화가 났고, 나는 Spikeekips에게 전화 연락이 안 되었다고 볼멘 소리를 냈다. 하지만 명백히 내 잘못이었다. 난 사과했다. 그나마 다행인 점은, 난 내가 잘못했다고 생각하는 일에 대해서 사과하는 일에 스트레스 받거나 망설이지 않는다. 그 이후로도 우리는 부딪힐 때마다 고객사 건물 옥상이든 건물 밖이든3 가능한 곧바로 나가서 이야기를 나눴다. 프로젝트 후반으로 갈수록 밖에 나가는 일이 잦았다.

우리는 석 달 예상한 작업을 두 달 만에 완료했다. 프로젝트를 진행하는 동안 많은 일이 있었다. 우리는 법인으로 회사를 설립했고, 여전히 돈은 없었다. 랩탑이 고장 났지만 고칠 돈이 없어 랩탑 하나를 돌려가며 작업하거나 다른 사람 랩탑을 빌려 쓰기도 했다. 가족 등 주변 사람이 아프다는 소식이 들려올 때엔 무력감에 빠져 일에 집중하기 힘들었다. 외주가 아닌 우리의 제품(Product)를 시작했지만, 프로젝트를 마치기 전에 우리가 망하는 날이 더 빨리 올 것 같았다.

(팀 세우기 마지막 편(4편)에서 계속…)

2. 돌이켜보기

혼합물과 화합물

나와 Spikeekips는 함께 창업하기 전에 친분을 쌓고 서로에게 호감이 갔지만, 함께 일해본 적은 없었다. 서로 커피 한 잔, 술 한 잔 나누는 건 각자의 성격, 가치관 등 생각을 나누며 혼합물을 만드는 것이다. 하지만 어려운 상황에서 함께 일하며 부딪히는 건 화합물로 만들어진다고 생각한다. 팀이라는 화합물은 나와도 다르고 공동 창업한 그 사람과도 다르다. 하지만 나와 그 모두를 품고 있다.

창업 초기 팀은 반드시 창업과 팀 세우기라는 화학 과정을 거쳐 화합물로 거듭나야 한다. 예전 직장에서 함께 일했던 경험으로는 화합물로 거듭날 수 없다. 온도와 압력 등에 따라 물질이 화학적으로 결합하는 데 변화가 생기듯이, 돈이나 사람, 시간을 가진 게 없는 환경에서 새로이 결합해야 한다. 이 결합 과정에서 기화해 흩어질 수도 있고, 다이아몬드가 탄생할 수도 있다. 어렵게, 힘들게 영입한 개발자가 이 과정을 못 견디고 뛰쳐나갈 것 같다면, 일 더 크게 벌이지 말고 그 단계에서 결합을 깨뜨리는 게 낫다.

만약 그런 힘들고 어려운 과정을 넘어서 팀이라는 화합물로 거듭난다면, 정말 단단한 팀이 될 준비가 되었다고 자부심을 가져도 좋다고 본다. 안타깝게도 대부분 팀은 이 과정을 못 넘거나 넘지 못했는데 넘었다고 잘못 생각하기 때문이다.

  1. 우리는 베타 테스트라는 명목으로 2010년 2월 한 달 동안 무료로 CO-UP 공간을 공유받아 썼다. CO-UP은 현재D.CAMP에서 제공하는 협업 공간으로 이상을 이어 나아가고 있다. 
  2. “서울시 강동구 성내로44”에 위치해있는데, 강동구청 건너편 또는 강동CGV 근처에 있다. 넓은 매장에 다양한 제품이 있으며, 일본에서 자전거 정비를 전문으로 오랜 경험을 쌓은 분들이 계신 매장이다. 
  3. 프로젝트 후반엔 고객사 건물에 상주했다

글 : 차경묵
출처 : http://goo.gl/8qdH5x

%d bloggers like this: