금요일, 8월 03, 2007

[독서광] Dynamics of Software Development



살다보니 어떻게(- 시시콜콜한 개인적인 이유는 생략 -) 회사를 그만두게 된 다음에 허탈한 마음으로 책장을 여기 저기 기웃거리기 시작했다. 그러다 우연히(주인장 책장에 꽃혀서 불쌍하게도 자신히 읽히기만을 기다리고 있는 책 백 여권 중에 운 좋게(?) 딱 걸린 책이다) 'Dynamics of Softeware Development'라는 금서(!)가 보여서 이리 뒤적 저리 뒤적거리다가 눈이 맞았다. 그리고... 사흘 정도 정신없이 읽었고, 울적하던 기분이 싹 가시면서 속이 다 시원해졌다. :)



초판이 1995년에 출간된 이 책은 2006년도에 새로 개정판이 나왔기에 출간 직후 구입해두었는데, 시간이 흘러흘러 거의 1년이 다 되어서 읽는 셈이다. 시간이 무척 지났기에 이미 번역서(성공적인 소프트웨어 개발을 위해 반드시 알아야 할 57가지 법칙)까지 나오긴 했지만, 이 책 원서 3판이 안 나온게 천만다행이라는 생각을 해본다. 마이크로소프트 사에서 비주얼 C++ 1.0 개발에 관여한 전문가(짐 매카시 큰 형님)가 적은 책이라고 해서 별 볼릴 없을거라고 쓰레기 통으로 집어넣으면 대략 자기만 손해가 아닐지 싶다.



긴 말 할 필요없이 이 책을 딱 한 줄로 요약하라고 하면 자신 있다. 바로 다음과 같은 공식이다.



제품 = 팀


공식을 뜯어보자면, 제품을 보면 팀 상태를 알 수 있고, 팀을 보면 제품 상태를 알 수 있다는 말이며, 이는 이 책 1판이 쓰여진 10년 전이나 이 글을 쓰고 있는 지금이나 변하지 않았고, 앞으로도 변할 가능성은 없어 보인다.



이 책의 최고 미덕은 소프트웨어 개발을 동적인 팀 역학 관계로 설명한다는 데 있다. 전반부에서는 팀을 어떻게 구성하고, 어떻게 공통된 비전을 공유하며, 어떻게 용기를 북돋우며, 어떻게 고객을 만족시키며, 어떻게 경쟁사를 따라 아니 때려(?)잡으며, 어떻게 소프트웨어를 설계하는지를 다룬다. 그리고 중반부에서는 'The Art of Project Management'에서도 일부 다루는 빌드, 마일스톤, 일정 관리 기법을 정신없는 전장의 포화 가운데 평정심을 잃어버리지 않고 제대로 수행하는 방법을 소개한다. 후반부에서는 어려운 과정을 겪으면서 만들어낸 제품을 제대로 출시하기 위한 방법을 소개한다.



이 책을 읽다보면 데자뷰가 느껴지곤 하는데, 이 책이 기존 책 내용을 그대로 답습했다기 보다는 기존에 나온 서적이 이 책에서 소개하는 개념을 상당수 차용했다기 때문이다. 특히 스티브 맥코넬과 스캇 버쿤은 짐 매카시 큰 형님에게 많은 빚을 졌다는 생각이다.



책 중간 중간에 나오는 의미 심장한 피카소식 그림(매카시 동생이 그렸다는 설이 있다)과 인문학적 소양이 필요한 각종 문구가 상당히 난해하게 느껴질지도 모르겠지만 제품, 프로젝트, 팀 때문에 고민해본 개발자라면 한번 쯤 이 책에 도전해볼 가치가 있다. 2007년도 소프트웨어 개발 부분 초강력 추천서로 이 책을 지목하겠다.



뱀다리: 번역서는 그다지 추천하고 싶은 생각이 없다. 얼굴이라고 볼 수 있는 책 부제부터 번역이 잘못되었기 때문이다. 독자 여러분을 위해 문제점을 잠깐 짚고 넘어가겠다.



번역서에서는 부제를 "'무책임한 비난을 하지 말 것'외 56가지의 반드시 알아야 할 규칙들"이라고 붙였다. 목차에 따르면 여기서 '무책임한 비난을 하지 말 것'은 규칙 4번인 'Don't flip the bozo bit'이다. 여기서 bozo가 바로 문제인데, bozo는 미국에서 가장 유명한 어릿광대(clown) 이름이며, 마이크로소프트 사 내부에서는 '자기 밥 값도 못하는 병신같은 XX'를 의미하는 속어(XX는 동물이 낳은 자식을 의미하는 일상생활에서 자주(?) 쓰는 단어로 치환해라)이다. 따라서 누군가에게 bozo 비트를 켜면 병신 취급한다는 의미이다. 결국 bozo는 '무책임'이랑 상관없다. 일을 시켜봤더니 아니면 말을 붙여 봤더니 마음에 안 들게 멍청하게 진행하면/대답하면(예: 열 받게도 일일 빌드를 두 번 이상 깨먹을 경우) 바로 주홍글씨가 이마에 팍 찍히면서 bozo 비트가 켜지는거다. 따라서 이 문구를 조금만 더 생각해서 번역했다면 '함부로 사람 병신 취급하지 마라' 또는 '멍청이 딱지를 무턱대고 붙이지마라' 정도가 되었을테다. 이 책을 구입해서 규칙 4를 보면 어릿광대 목을 비트는 그림이 나올텐데, 여기 설명이 '무책임하게 비난을 하지 말 것"이라고 붙어 있으면 과연 어느 누가 이해를 할까? 애꿎은 어릿광대(= bozo?)를 무책임하게 비난하지 마라? 글쎄올시다...



EOB

댓글 4개:

  1. 번역서 중에서 '소프트웨어 개발 리더를 위한 리소스 목록' 부분만 읽고 덮어 놨었는데 나중에 다시 읽을 때는 조심 조심해야 겠네요 ㅎ

    답글삭제
  2. 영어가 부담스러워서 번역서를 사려했는데 다시한번 고민해 봐야 겠네요 ...

    답글삭제
  3. 읽고나니 함 사보고 싶은데, 번역본을 사야하나 원서를 사야하나 고민하게 만드시네요.. ^^

    답글삭제
  4. 하아~ 번역을 하는 입장에서 쪽팔린 일인데, 전망 스페셜 전공분야인 경우 내용을 제대로 알고 번역할 수 있는 번역가가 부족합니다.

    답글삭제