나잘난 박사라면 "한국이 소프트웨어 개발을 진지하게 받아들일 때도 됐죠!"라며 큰 소리 쳤겠지만 나로서는 한국어판 번역서가 나온다는 사실을 커다란 영광으로 생각한다.
한국에 가본 적은 없다. 나는 아주 가정적에다 잘 돌아다니지 않는 사람이다. 여권도 2년 전에야 캐나다를 가느라 겨우 만들었을 정도다. 하지만 내 삶은 한국과 인연이 아주 없진 않다. 내가 처음 시범운전 했던 차가 현대 차였다. 후진하다가 소화전을 박는 바람에 영업사원 앞에서 얼굴을 못 들었던 기억이 난다. 가장 추억에 남는 생일 파티 장소도 한국 식당이다. 부모님과 함께 우리 식탁에서 갈비를 직접 구워 먹었다.
물론 내 아내와 아들은 한국산 휴대폰을 사용한다. 특히 내 아내는 새로 장만한 삼성 에픽스(Epix)를 아주 아낀다. 한국 기술이 아주 만족스러웠던 나는 친구들에게 추천도 했다. 또한 레드몬드 본사를 방문한 삼성 임원진 몇 명과 대화할 기회도 있었다. 마이크로소프트 사가 소프트웨어를 개발하는 방식을 질문하기에 나는 이 책에 담긴 내용과 거의 유사한 설명을 해줬다.
이 책에는 없으나 최근 내 'HARD CODE' 블로그에 올린 제안 하나를 언급하자면, 남의 작품을 그대로 답습해서는 안 된다는 사실이다. 대신 그 작품을 연구하고 포용해 확장해야 한다. 예를 들어, 내 첫 번째 MP3 플레이어는 삼성 제품이었다. 그 제품은 윈도우 미디어 플레이어가 아니라 자체 소프트웨어를 사용해 음악과 비디오를 재생기로 올리고 내렸다.
삼성 미디어 플레이어 소프트웨어가 몇 가지 장점은 있었으나 좀 더 성숙한 윈도우 미디어 플레이어 소프트웨어에 비하면 기능과 사용성이 현저히 떨어졌다. 삼성 소프트웨어 개발팀은 윈도우 미디어 플레이어 개발팀이 앞서간 길을 그대로 답습하느라 수많은 시간을 투자했으리라. 하지만 개발 재능을 엄청나게 낭비하고 고객에게 실망만 안겨줬다!
대신 삼성이 윈도우 미디어 플레이어 경험을 포용하고 확장하겠다는 목표를 세우고 그 많은 시간과 노력을 투자했더라면? MP3 플레이어에 더 멋진 기능을 추가하고, 윈도우 미디어 플레이어와 MP3 플레이어를 완벽하게 통합하고, 포장지를 뜯자마자 그대로 사용하는 경험을 고객에게 선사했더라면?
다행스럽게도 오늘날 삼성 소프트웨어는 윈도우 모바일 소프트웨어를 포용하고 확장한다. 남의 작품을 답습하느라 시간을 보내는 대신 혁신적인 방식을 강구하느라 시간을 보낸다는 뜻이다. 앞으로 이런 모습을 더 많이 보고 싶다. 남의 수고를 적극 활용하라. 남의 수고를 발판으로 삼으라. 마이크로소프트 사 개발팀 전체를 여러분의 팀으로 활용하라. 그 위에서 새로운 가능성을 탐험하라.
다른 사람 작품을 토대로 새로운 작품을 쌓아올리면 여러 모로 이점이 많다. 마이크로소프트 플랫폼이든 다른 플랫폼이든 마찬가지다. 사내 동료가 내놓은 코드를 활용할 때도 마찬가지다. 단, 토대로 삼는 코드가 언제나 자신의 코드보다 더욱 안정적이어야 한다는 사실을 명심하자(그러므로 어제 만든 빌드보다 최신 릴리스를 사용하는 편이 낫다).
내 책을 읽는 독자 여러분에게 감사하는 마음을 전한다. 재미있고 유익한 책이라 여겼으면 좋겠다. 우리가 인간으로서 서로에게 배우고 최선을 공유하면 세상이 나아진다. 유치하지만 사실이다. 우리 모두 서로에게서 배우는 세상이 오기를 바란다. --- '한국어판 출간에 부쳐' 중에서
최고 개발 기법을 소개한다는 지침서를 펴 든다. 십중팔구 지루하다. 가끔은 흥미롭고 유익하고 감동스러울지 몰라도, 확실히 건조하고 따분하다. 왜일까?
'최고' 개발 기법은 프로젝트와 사람과 목표와 선호도에 따라 달라지기 때문이다. 소위 최고 기법을 소개한다는 지침서가 따분한 이유는 여기에 있다. '최고'라는 판단은 지극히 주관적이다. 그래서 저자는 '언제, 어느 상황에서, 어떤 이유로 이 기법이 적합하다'는 식으로 표현하는 수 밖에 없다. 이런 설명 방식은 현실적이고 합리적이지만 동시에 따분하고 불충분하다. 확실한 사례 연구를 추가하면 흥미가 더해지지만, 그래도 저자는 여전히 독자에게 선택권을 넘겨야 한다. 안 그럼 거만하고, 독단적이고, 꽉 막혀 보인다.
그럼에도 사람들은 거만하고, 독단적이고, 꽉 막힌 전문가끼리 치고 받는 난상 토론을 즐겁게 관람한다. 전문가 의견을 읽고 친구나 동료와 토론하기도 좋아한다. 그러니 개인 칼럼에서 최고 개발 기법을 토론하지 못할 이유가 무엇이랴? 남들 눈에 꽉 막힌 멍청이로 비쳐도 좋다는 용기만 있으면 충분하다. --- '저자 서문' 중에서
프로젝트가 지연되고 이런저런 복잡한 문제가 터지면서 회사 분위기가 어수선할 때면 야근하다 말고 옥상에 올라가서 하늘을 바라보곤 했다. IT 업계에서 선캵 자리를 놓치지 않는 초우량 기업에서는 도대체 어떤 식으로 일을 진행하고 있으며, 과연 개발자에게 있어 실낙원이란 존재하는지 답답함을 느껴 북극성에게라도 물어보고 싶었기 때문이다. 하지만 실제 초우량 기업이라고 불리는 회사에서 운영하는 개발팀에 합류해서 몸소 경험해보지 않는 이상 그 안에서 어떤 일이 벌어지는지 알아내기란 아주 어렵다.
좋다. 그렇다면 직접 경험하지 못한다면 간접 경험이라도 하면 어떨까? 싼 가격에 남의 경험을 통째로 얻을 수 있는 훌륭한 매체로서 우리에게는 책이라는 도구가 있지 않은가? 하지만 지금까지 IT 분야에서 특정 기업 문화를 다루는 책이 몇 권 있었지만, 솔직히 감추고 싶은 분야까지 속속들이 메스를 들이대 폭로해버리는 경우는 드물었다. 대부분 외부인 시각에서 행복한 결말로 끝나는 내용을 담거나 아니면 잘못 알려진 소문을 토대로 터무니없는 평가로 끝나는 내용을 담는 경우가 대부분이었다.
하지만, 이번에 옮긴 이 책은 아주 특이했다. 마케팅에 유리하도록 빌 게이츠를 주인공으로 내세운 진부한 마이크로소프트 철학을 담은 기존 책과는 달리 마이크로소프트 사에 퍼져있는 내부 문화, 이 문화에 얽힌 문제점, 문제점을 개선하기 위한 방향을 내부인 관점에서 속이 다 시원하도록 남김없이 파헤친다. 게다가 마이크로소프트 내부 문화에 경종을 울리는 거침없는 하이킥도 모자이크나 검열 없이 등장하므로, 소위 초우량 IT 기업이라고 불리는 곳에서도 내부적으로는 고민과 갈등이 교차한다는 사실을 확인하며 안도의 한숨을 쉬게 만드는 보너스까지 제공한다.
"그래, 세상은 공평하지 않아!"라고 외치며 좌충우돌하는 에릭 브레히너의 분신 나잘난씨를 뒤쫓아가며 잠깐 동안 이 책에 빠져보자. 마이크로소프트 내부에서 일어나는 프로젝트 관리, 프로세스 개선, 명세, 부서간 공동 연구, 소프트웨어 품질, 소프트웨어 설계, 개발자로서 경력 관리, 개인과 회사 사이에 균형 잡기, 훌륭한 관리자 되기, 마이크로소프트 사 발등에 떨어진 위험 요소에 대한 생생한 내부 이야기와 교훈을 들으면서 이를 타산지석으로 삼아 개발자나 관리자로서 자기 계발에 힘써 보자.
비록 인터넷 사업에서 구글에 계속해서 밀리고, 윈도우 비스타 판매 부진으로 인해 운영체제 시장에서도 고전을 면치 못하고 있는 마이크로소프트 사지만, 이런 놀라운 기업 문화를 유지할 수만 있다면 앞으로도 계속해서 IT 왕좌를 유지할지도 모른다는 생각이 머리를 스치고 지나갔다. 자, 이제 다시 한 번 용기를 내어 암울한 주변 상황을 살펴보자. 전 세계에서 가장 큰 IT 개발 조직을 거느린 마이크로소프트 사도 항상 내부 문제점을 직시하고 이를 극복하기 위해 노력하고 있는데, 우리라고 못하리라는 법이 있는가? --- '옮긴이의 말-박재호' 중에서
이미 알겠지만, 이 책은 마이크로소프트 사 직원들을 대상으로 썼던 칼럼 모음이다. 그래서 나름대로 장단점이 있다.
단점부터 들자면, 마이크로소프트 사 조직 체계나 특정한 업무 절차를 알아야 이해할 내용이 간간이 보인다. 게다가 주제별로 장을 나누기는 했지만, 칼럼마다 출판 시기가 각각인 탓에, 내용이 중복되는 경우가 있다. 또한 출판 당시 글자 수가 제한된 칼럼이었으므로 한 주제를 아주 깊이 파고들지는 못한다.
반면에, 각 칼럼이 독자적이고 온전한 주제를 다루므로 어느 칼럼이든 순서 없이 골라 읽어도 무방하다. 또한 각 칼럼은 짧고 가벼우면서도 생각하고 토론할 출발점을 제공한다. 독자 여러분이 칼럼이나 블로그 글 모음의 단점을 이해하면서 동시에 장점을 충분히 활용하면 좋겠다.
사실 마이크로소프트 사에서 벌어지는 이야기라지만, 막상 읽어보면 '아, 마이크로소프트도 다른 IT 기업과 별반 다르지 않구나'하는 생각이 든다. 책 전반부에서 열거하는 소프트웨어 개발 문제는 어떤 소프트웨어 회사라도 모두 겪는 난관이다. 사람을 관리하는 문제 역시, 분야를 막론하고, 관리자라면 누구나 겪는 고충이 아니던가.
그렇다면 무엇이 마이크로소프트를 오늘의 마이크로소프트로 만들었을까? 책 후반에서 저자는 스스로 이유를 분석한다. 여기에 한 가지 덧붙이자면, 자기 회사와 자기 상사들을 적나라하게 비판하는 칼럼을 사내 직원들에게 버젓이 공개하는 (그것도 모자라 책까지 출판하면서 저자를 키워주는) 회사 문화가 한 몫을 하지 않았을까 생각한다.
한창 번역을 하다가 잠시 걱정을 했었다. 소프트웨어 개발자나 관리자라면 꼭 읽어볼 만한 책이라고 생각하지만 (그렇지 않았다면 번역을 맡지도 않았겠지만), 마이크로소프트 사 이야기라는 이유만으로 색안경을 끼고 보지 않을까… 기우이기를 바란다.
--- '옮긴이의 말-이해영' 중에서