벤처열풍이 심어준 꿈 돈을 많이 벌고 싶다. 얼만큼 벌어야 많은 건지 모르겠지만, (소박하게) 아우디를 몰고 싶고, 첨단기기를 맘껏 갖고 놀면 좋겠다. 한번 쯤 아니 몇 번이든 사랑도 돈으로 얻고 싶다. 돈 없이도 열렬히 사랑하지 못할 법도 없지만, 돈 많아서 더욱 풍부하고, 희귀한 경험을 둘이 공유할 수 있다면 진실한 사랑의 감정?, 그런 것도 강렬히 기억되고 오래 지속될 것이다. 아니아니, 그저 솔직히 말해, 돈이 좀 최고인 세상에서 자라났고 살아가는 나는, (별 이유를 생각키도 전에) 부자가 되고 싶다! 그런데 큰 돈을 대체 무슨 수로 버나. 언젠가는 우리 아버지가 술도 잘 마시고 싸바도 잘 쳐서, 한밤 중에 역사를 이루어내는 비리공무원이라면 좋겠다는 병–신같은 생각을 했다. 현실적으로 생각하자. 평범한 환경에 평범한 유전인자의 내가 비범하게 돈을 벌려면, 시류를 잘 읽고 잘 타서 열심히 살고 운도 좀 따라주는 수, 말로는 참 쉬운 방법이 있다. 그래서 컴퓨터와 인터넷에 푹 빠진 철밥통 없는 왠만큼 젊은 사람치고, IT업계를 한번은 생각치 않을 수가 없다. 21세기 정보화시대를 이끌자. 벤처창업대박, 여러분도 할 수 있어요, 그래 그거면 된다. 중학교 때 이미 깨우친 리니지 법사님은, 시험범위를 알려주는 내게 “일평생 게임방비와 컵라면값만 있으면 그럭저럭 괜찮은 인생 아니겠니.” 라고 말하며 홀연히 월담하셨지만. 그런 깡다구를 갖추지 못한, 줏대없는 우리네 인간 군상들은 아직도 IT대박에 미련이 남는다. 일단 프로그래머가 되고 싶고, 게임기획자도 되고 싶다. 그리고 적당히 하다보면 소리없이 찾아올 대박? (다양한 IT 전문직과 평균 연봉에 대해서는 여기를 참조) 겜방에서 폐인처럼 게임만 하는 것 처럼 보여도, PC방 알바 뛰면서 주인이랑 리니지 2교대나 하고, 심지어 취직준비라고 고작 토익학원이나 다니는 피차 우울한 인생인 놈마저 그렇게 살다간 동네컴퓨터점빵에서 윈도나 다시 깔아주고 부품떼먹는 시시한 인생이 될 거라고 비웃어도. 아직 역시 꿈이 있다는 거다. 그리고 그렇다면 어서 잠에서 깨어나 이런 책이라도 한번 읽어보라고 권하고 싶다. 그러면 허황된 대박의 꿈을 접어버리던가, 당장 게임과 인스탄트메신저를 종료하고 일에 좀 집중하려 노력할테니까. <조엘 온 소프트웨어>는 매우 현장감있는 실용서라서 일반 독자에게는 좀 어려울 수 있다. 소프트웨어 개발시장에 몸 담고 있는 사람들이 주 독자인, 조엘의 블로그에 올라온 글을 정리해 만든 책이기 때문이다. 개발자(프로그래머 등)나 프로젝트 관리자(소프트웨어 개발 프로젝트의 책임자)가 공감할만한, 자질구레하지만 중요한 내용들을 포함하고 있다. 저자는 이 분야에서 경쟁 우위를 점하여 돈을 거머쥐려면 어떻게 해야하는지, 즉 성공적인 소프트웨어 개발을 둘러싼 여러가지 내외적 조건을 구체적으로 꼬집어준다. 프로그래밍 하기 전에 구현하고자 하는 프로그램의 기능을 구체적으로 풀어 적어야한다며 <명세서 작성>을 강조하고, 엑셀을 이용한 간편한 개발일정관리 요령, 버그 문제에 대한 대책(버그 추적시스템-프로그램에서 예기치 않은 오류가 발생했을 때, 사용자가 간단히 “오류 보고” 버튼을 클릭함으로써 간단히 제작사의 버그 데이터베이스에 정보를 쌓는 것; 버그 수정 시기- 발생했을 때 바로 수정하지 않으면 나중에 코드를 다시 읽고 수정하긴 힘들다는 것), 일일빌드의 중요성(여럿이 프로그램을 개발할 때, 자신이 맡은 코드를 꼭 완결지어 매일매일 온전히 돌아가는 전체프로그램을 생성할 수 있어야 한다. 버그도 줄고 언제든 출시할 수 있다.) 등을 실제 예를 들어 재미있게 늘어놓았다. 또, 좋은 개발자를 뽑기 위한 입사면접테스트의 방법과 예, 개발자의 생산성을 높이기 위한 사무실 환경, 성과급과 계량화한 업무측정의 백해무익 등 높으신 분들이 귀담아 들어야 할 이야기도 빠뜨리지 않는다. 특히 프로그래머가 짬밥 좀 먹었다고 승진시켜서 프로젝트 관리자를 맡는 방식은 위험하다는 지적은 우리나라 업계 현실에 딱 들어 맞는다. 매니저는 개발자들을 부하로 거느린 직책의 개념이 아닌데, 꼭 승진시켜준 나로부터 말단 개발자까지 일사불란의 간편한 군대식 조직을 만들고야 마는 현실이 안타깝다. 결국 매니저가 제대로 일을 할 수가 없고, 하지 않게 된다. 경영진-개발자 구조에서, 짬 좀 먹은 개발자는 일은 별로 안 하면서 돈은 많이 받는 모양새는 간부-병사 구조에서 병장은 뒷짐지고 짱박히면서, A급 나오면 먼저 갖는 거랑 다를 바가 없다. 프로젝트 매니저는 리더십을 갖추고 영업팀, 의사결정권자들과 개발자 사이에서 의사소통의 가교, 쿠션이 되어야 한다. 물론 기술적으로 무지해서도 안 되겠지만, 기본적으로 잡다한 뒤치닥거리를 하는 사람인 셈이다. 아마 전문성 결여의 막가파 도제식 시스템, 이건 우리나라 모든 전문직의 공통 문제인가 보다. 그리고 이건 병아리 개발자는 물론 스타급 프로그래머의 의견마저도 존중하지 않고, 그저 도매급으로 “공돌이”로만 치부해버리는 무식한 “상돌이” 탓이 크지 않을까? 수식과 기호에만 매달리는 원조 공돌이 못지 않게, 상돌이들 보다 훨씬 더 겉번지르르한 PPT발표도 잘 해내고, 글도 잘 쓰는 크로스오버 공돌이도 도처에서 많이 찾아 볼 수 있다. 못 찾겠다 꾀꼬리하고 컴퓨터잡지를 정기구독하고 전자뉴스를 매일 보며 아는 체 좀 한다는 이유로, 기초적인 프로그램코드 한 줄도 못 적는 사람을 그 자리에 앉혀놓는, 구차한 자리나눠먹기 행태를 없애야 한다. 요컨대, 여느 분야와 마찬가지로 이 바닥도 결코 만만치가 않다. 대개의 회사에서 안정적인 고액 연봉을 지급하기보다는, 평범한 연봉에 스톡옵션을 주는 형편이다. 돈만 바란다면 시시각각의 변화에 대처하며, 자사의 주가등락에 스트레스를 받는데 금새 이골이 날지도 모른다. 조엘은 틈새시장을 찾아내 잘 공략하면, 아마존처럼 몸집불리기 전략을 구사하는 게 여전히 유효하다고 조언한다. 글쎄, 이제 어느정도 안정화 단계에 다다른 게 아닐까, 나올만한 건 다 나온거 아닐까? 간신히 굿 아이디어를 건져도 MS와 같은 공룡기업은 프로그래머 2명당 평균 1명 꼴의 테스터를 고용한다는데, 훨씬 늦게 출발하고도 모두 앞지르고 선두에 서기 마련 아닌가. (책만 봤을 때) 흠잡을 데 없는 회사를 운영하고 있는 저자 조엘도 처음에는 빵공장에서 파스칼로 프로그래밍을 시작했다. 그러다 벨 연구소와 마이크로소프트 사(이하 MS)의 인턴을 거쳐 인정을 받았는지 어쨌는지, MS에서 프로그램 관리자로 3년간 활동했다. 대략 엑셀 팀에서 비주얼베이직과 밀접한 매크로 기능을 개발하는 데 공헌한 것으로 보인다. 그가 프로젝트를 성공적으로 마치지 못했다면, 지금 내가 하는 업무에 애로사항이 많을 뻔했다. 속사정을 잘 아는 그가 바라본 MS는 꽤 유익한 참고점이 된다. 우선 그는 책에 실린 50여 꼭지의 글 대부분에서 MS를 입에 침이 마르도록 칭찬하고 있다. 먼저 위에 제시한 중요한 조건들을 점검해 볼 수 있는 일명 “조엘 테스트”에서 만점을 받은 유일한 회사라고 운을 뗀다. 프로그램 개발 과정에 해당 담당자가 전적으로 권한을 갖고 있어서 빌 게이츠가 와도 맘대로 할 수 없단다. MS의 제품 대부분은 블로트웨어(bloatware)– 제공하는 기술에 비해 상대적으로 많은 디스크공간과 매모리를 요구하는 프로그램 — 일 뿐이라고 욕하는 오픈소스계열 사용자나 해커 그룹에 맞서, 단호하게 세상물정을 가르친다. 비록 전체사용자의 80%는 소프트웨어 전체기능의 20%만 사용하지만, 그 20%가 사용자에 따라 모두 다른 것이라고. 게다가 하드디스크 값이 갈수록 껌값이 되는데, 절대적인 용량으로 몰아세우는 건 부당하지 않냐고 반문한다. 그리고 MS가 “보완재”라는 경제적 개념에 밝았기에, 컴퓨터가 많이 팔리면 OS의 수요도 증가한다는 것을 알고, MS-DOS의 라이센스를 IBM PC에만 매여있지 않게 했던 것은 주효했다. IBM제품이 잘 팔려도 그만이겠지만 보완재를 아예 일반재화로 만들지 못했다면 그 엄청난 시장점유는 불가능했을 것이다. 조엘은 MS의 게임기 Xbox도 이같은 맥락에서 바라본다. 일반 컴퓨터 부품을 사용했고, 비디오칩셋에 관계없이 DirectX 위에서 돌아가는 Xbox의 수요가 생각만큼 늘지 않고 있는 것은, 하드웨어 값이 이미 내릴 만큼 내려서 더는 하락하지 않기 때문이라고. 큰 감명을 받았던 부분은, 하위호환성 확보를 위한 MS의 눈물나는 노가다였다. 윈도95 개발과정에서 온갖 DOS프로그램을 가져다가 윈도에서 잘 작동하는지 테스트를 거쳤는데, 문제가 있을 경우 해당 프로그램을 동작시키기 위해서 코드를 수정했다. 게임 심시티의 경우, 본래 심시티 코드 자체에 버그가 있었고, DOS환경에서는 우연히 그 버그가 문제를 일으키지 않았지만 윈도에서는 버그로 인해 멈추고 말았다. MS는 남의 회사에서 만든 게임을 역에셈블리해서, 버그가 문제를 일으키지 않는 환경을 흉내내도록 코드를 수정했다니, 참 대단하세요~ 벌어먹고 살기 힘들구나! 책 후반부에는 최근 MS의 행로에 대한 쓴소리도 있다. 마침내 하위호환성을 포기해버린 닷넷(.NET)체제의 성공에 의문을 던진다. 새로운 통합개발도구와 환경이 환상적이긴 하지만, 당장 그걸 쓸 이유가 없다는 것이다. 닷넷으로 개발한 프로그램은 20MB 나 되는 닷넷 런타임이 설치돼있지 않으면 실행할 수 없다. MS가 링커를 제공하지 않기 때문에, 군더더기없는 실행파일을 생성할 수 없기 때문이다. 게다가 광통신 환경에서 소프트웨어 시장은 갈수록 웹 개발로 기울어가는 형국이다. 조엘 말대로 이제 새로운 API는 Win32와 호환되지 않는 WinFX가 아니라 HTML이 될지도 모른다, 푸핫.(API: OS에서 제공하는 프로그래밍을 위한 함수집합) 문득 Google VS MS 와 같은 호사가들의 가십거리가 떠오른다. 글쎄 아직은 그네들이 굳이 서로 싸우지 않아도 된다. 서로 수입원이 다른데 뭘. 앞으로 MS가 인터넷세상에서 어떤 사업을 펼칠 지 지켜보는 게 흥미로울 것이다. 방송국운영이나 MSN같은 컨텐츠 사업 말고 웹 플랫폼 상의 근원 기술 분야의 혁신이 가능할까? Ajax네, 웹2.0이네 시끄러운데, ASP닷넷말고 MS는 어떻게 끼어들까. 물론 MS가 꼭 대단한 걸 내놓아야만 하는 것도 아니다. 그냥 마우스 따위 하드웨어나 팔며 소일해도 그럭저럭 먹고 살 듯하다. MS의 현금보유량은 수입 한푼 없이 프로그래머 한명도 자르지 않고 5년 가량을 너끈히 버틸 수 있을 만큼 많다. 수입이 매년 20%씩 감소해도 대량해고를 고려할 때 까지 10년은 걸릴 거라고, 조엘은 귀띔한다. 그래서 특정 기술 변화의 경향이 MS에 위협이라고 말하는 건 성급하다. 그에 덧붙여 MS가 변화에 꽤나 오랫동안 대처를 못하리라는 가정도 필요하기 때문이다. 그럴리가 있나, 똑똑한 애들이 드글드글한데! 아쉬운 점 회사의 개발시스템, 프로젝트 관리가 엉망이라면 혼자서라도 제대로 하라고 충고한다. 혼자서 명세서 쓰고, 혼자서 버그추적시스템 쓰고, 혼자서 일일빌드하고, 그러다보면 동료들도 따라오게 된다고. 글쎄, 틀린 말은 아니지만 이건 왠지 대입 고교 논술 결론에다가 “제시문(가)와 (나)를 종합해 볼 때, 제도의 개혁과 동시에 의식의 전환의 촉구된다” 라고 적는 거나 다름없어서, 시원섭섭
대박은 가능할까?
마이크로소프트를 둘러싼 몇 가지 이야기
맺음말
IT 종사자의 필독서, 정보화사회 경영학도에겐 권장도서, 관심 있어서 아는 척 좀 하려는 이에게 부분독서를 권합니다.
“말단이면서도 해내기” 라는 꼭지에서 조엘이 제시한 해결책이 아쉽다.
7월 032006