토요일, 7월 28, 2012

[독서광] 위대한 게임의 탄생

고맙게도 박일님께서 책을 보내주셨기에 정독을 기념해 블로그에 소감을 정리해보겠다. '좋은 게임을 넘어 위대한 게임으로'라는 부제가 붙은 이 책은 성공적인 게임 제작 완료 이후에 진행한 사후분석(postmortem) 내용을 담고 있으며, 잘된 점과 잘못된 점을 실제 사례를 들어 소개한다. post mortem의 원래 뜻은 after death지만, 엔지니어링 분야에서는 특정 프로젝트가 끝나고 나서 수행하는 과정으로 성공한 부분과 실패한 부분을 파악해 다음 번 프로젝트에 도움이 되도록 정리하는 행위를 일컫는다. 이 책은 물론 게임 분야에서 사후 분석을 수행하기 때문에 여기서 얻은 교훈을 게임이 아닌 다른 IT 프로젝트에 100% 적용하기는 어렵지만 그럼에도 불구하고 건질 내용이 많다는 생각이다.

이 책은 게임에 문외한인 사람조차도 한번 쯤 들어본 유명한 게임(설마 WoW, 하프-라이프 2, 팜빌 등을 모르는 분이 계실까? ㅋㅋ)을 만든 핵심 개발자들의 목소리를 싣는 1부, 성공적인 게임 프로젝트에서 볼 수 있는 원칙을 분석한 2부, 국내 사례를 정리한 3부로 나뉘어진다. 또한 책 중간 중간에는 게임 제작 과정에서 직군 별로 인터뷰한 내용을 담고 있으므로 게임 산업에 뛰어들고 싶어하는 지망생이나 도대체 내가 뭘하고 있지라고 멘탈 붕괴 상태에 빠진 현업들에게 자극제를 투입하므로 또 다른 재미를 준다. 기획과 내용에 비해 책 편집 상태는 난감한데, i) 회사와 사람 이름을 영어로 그대로 두고, ii) 직군별 인터뷰에 사용한 폰트 가독성이 바닥을 기고 있기에 독서 과정에서 애로사항이 꽃폈다. 다행스럽게도 후속편인 '위대한 게임의 탄생 2'를 펼쳐보니 두 가지 문제점이 모두 해결되었는데, 이 책 역시 증쇄 과정에서 문제점이 수정되면 좋겠다는 생각을 잠시 해본다. 3부 국내 사례는 손발이 조금 오그라 붙는 내용(특히 스페셜 포스 2 T_T)도 들어 있기에 1, 2부를 읽고나서 급격히 상승한 기대치에는 미지치 못했다. 아쉬움을 달래기 위해 한국 회사들만 다루는 후속편을 읽고 독후감을 올려보겠다.

자 그러면 본문 중에서 재미있는 내용을 정리해볼까?

소수의 사람들이 끊임없이 기술을 연마하면서 다른 것을 시도해볼 수 있는 멋진 스튜디오를 만들고 싶었습니다. 물론 제품을 출시해야 하고 마일스톤을 지켜야 합니다. 안 그러면 그냥 신나기만 할 뿐 엉망진창이 될 겁니다.
야망이 있는 용삼한 사람은 결코 만족하지 않습니다.
일관성과 실험정신, 이 두 가지는 흥미롭기는 해도 서로 잘 맞진 않았습니다.
어려운 것을 먼저 하세요. 진전을 보여 달라는 압박을 심하게 받다 보면 양은 많고 쉬우면서 근사해보이는 일부터 먼저 하고 싶은 유혹을 받지요. 하지만 이러면 백발백중 문제가 터집니다. 좀 더 복잡한 문제를 먼저 달려들어 해결하려고 노력해야 합니다.
프로그래머들 관리하기가 '수십 마리 고양이 떼를 몰고 다니기'만큼 어렵다고 했습니다.
디자인을 할 수록 먼저 디자인한 것 위에 디자인하게 된다. 디자인을 구현해 사람들에게 보여줌으로써 검증할 수 없다면, 이런 검증 안 된 디자인에 기반해서 나온 모든 디자인에 문제가 될 수 있다.
핵심 기능 이외에는 전부 잘라내는 것이 게임의 품질을 극대화하는 최고의 방법입니다.
사람들이 서로를 믿고, 기회를 주는 문화를 만들어 왔고, 앞으로도 만들어 가려고 합니다. 이게 사실 굉장히 어렵습니다. 사람들이 서로를 신뢰하여 위험을 무릅쓸 수 있고, 뒤통수 맞지 않을 거라는 확신이 서야만 이런 문화가 가능합니다.
많은 문제가 결국 의사소통의 실패에서 비롯되는데, 팀의 규모가 작으면 훨씬 효율적으로 의사소통할 수 있기 때문에 당연한 결과라고 할 수 있다.
특별한 결과물을 원한다면 자신의 일을 절대적으로 사랑하는 사람들과 함께 일해야 합니다.
요즘 같은 경쟁 사회에서 다른 모든 조건이 같다면 다른 사람들보다 더 열심히 일하는 개발팀이 길게 놓고 봤을 때 더 유리할 것입니다.
보통 사람들과 달리 예술가는 예술을 보면서 무엇을 훔쳐 배울 수 있을까를 생각한다.
꽤나 당연하면서도, 규모에 상관없이 첫 번째 게임을 개발하는 모든 개발사에서 공통적으로 하는 실수는 실제 작업량을 과소평가한다는 것이다. 창조에 드는 노력에는 시간이 들고, 보통 생각하는 것보다 훨씬 많은 시간이 필요하다.
타협은 하지 마라. 하지만 가고자 하는 곳에 더 빨리 갈 수 있는 지름길이 있는지 살펴보자.
게임의 첫 1분은 가장 많은 사람들이 경험하는 부분이기 때문에 무엇보다 중요하다.
솔직히 너무 심하게 테스트를 많이 하는 경우는 없다.
변경을 위한 변경을 하지 마라. 하지만 꼭 필요하다면 바로 바꿔야 한다.
유능하고 창조적인 개발팀의 특징은 솔직함과 자기반성이다.
세상 일이 다 그렇듯, 고정 불변의 법칙은 없다. 어떤 팀에서 잘 되던 것이 다른 팀에서는 잘 안 될 수도 있다. 사실 이전에 잘 되던 것을 다음 프로젝트에서 똑같이 적용해도 잘 안 될 수 있다. 환경적 요인이나 경제적 요인, 사적 문제 같은 모든 요소가 프로젝트 결과에 큰 영향을 미친다.
분명하고 잘 공유되며, 측정 가능한 목표는 유능한 개발팀의 특징 중 하나다.
당장 문제가 있더라도 유능한 팀을 최대한 그대로 유지하는 편이 좋다.
너무 안 듣는 것보다는 차라리 너무 많이 듣는 것이 낫다.
열정을 따라라, 위험을 무릅쓰고 대박을 위해 뛰어들어라, 이게 유능한 개발팀이 하는 방법이다. 어차피 한 번 사는 인생 아닌가?
게임 프로젝트가 결혼이면, 컨셉 단계는 연애 기간이라고 볼 수 있다.

위 내용을 보면 감이 오겠지만, 이 책은 게임 업계 뿐만 아니라 전통적인 분야에서 일하는 소프트웨어 개발자들에게도 풍부한 생각 거리를 던지고 있으므로 살아 움직이는 역동적인 개발팀을 만들어 여기서 일하고 싶어하는 분들에게 필독을 권한다. 좋은 이야기만 하는 일반적인 소프트웨어 공학 서적에 지친 분들에게 이 책을 강력하게 추천한다!

토요일, 7월 21, 2012

[B급 프로그래머] What's the single most valuable lesson you've learned in your professional life?

Quora를 보다가 흥미로운 내용이 있어 소개한다. 질문은 다음과 같다.

What's the single most valuable lesson you've learned in your professional life? We all hit some walls during our careers. What's that one lesson you'll never forget?

한글로 번역하자면 다음과 같은 질문 정도가 되겠다.

전문 경력을 쌓으며 배웠던 가장 가치있는 교훈을 하나만 들면 뭐가 될까요? 경력을 쌓다보면 벽에 부딪히기 마련입니다. 절대로 잊어버리지 않을 교훈을 하나만 든다면?

이번에도 쿠오라에 근무하는 엔지니어가 좋은 대답을 했기에 간략하게 요점을 정리해보았다.

레버리지, 즉 생산성을 높이기 위한 방법은 크게 세 가지가 있습니다.

  • 특정 과업(활동)을 완료하기 위해 들이는 시간을 줄인다
  • 특정 과업이 미치는 영향력을 늘인다
  • 레버리지가 좀더 높은 과업으로 전환한다

그 중에서 레버리지를 높이기 위한 몇 가지 과업을 소개하면 다음과 같습니다.

  • 신입 직원에 대한 멘토링: 멘토링은 엄청나게 레버리지가 높은 과업입니다. 보통 직원들은 연간 1880시간에서 2820시간 동안 일합니다(47주를 가정). 매달 1시간 씩 20시간을 투자해 신입을 멘토링하거나 코치하는 방식은 시간을 많이 소모하는 듯이 보입니다. 하지만 이는 단지 신입 직원이 1년 동안 근무하는 전체 시간의 1% 정도에 불과하며, 나머지 99% 시간 동안 생산성과 효율성에 엄청난 영향을 미치게 됩니다.
  • 반복적인 작업을 자동화하는 도구 제작: 소프트웨어 공학 배경에서 바라보면, 레버리지가 높은 활동 중 하나는 지루하고 반복적인 수작업을 줄이는 도구 제작입니다. 한쪽으로 조금 치우쳤다고 생각이 들지도 모르지만, 저는 모든 사람이 코딩에 대해 조금씩 알고 있다면 이익을 얻으리라고 믿는 사람입니다. 자동화라는 마인드가 엄청난 효율을 얻는다는 신념으로 뭉친 컴퓨터 과학과 전통적으로 무관한 분야에서 특히 좋은 효과를 발휘합니다. 컴퓨터가 당신을 위해 해줄 수 없는있는(오타 지적해주신 성큼이님께 감사. :)) 일은 하지 마십시오.
  • 배우고 끊임없이 개선하는 작업에 대한 투자: 스티븐 코비가 '성공하는 사람들의 일곱가지 습관'에서 언급한 중요하지만 급하지 않은 과업에 속합니다. 학습은 급한 과업처럼 보이지 않으며, 별도로 시간을 잡아 놓지 않으면 일정을 지시하는 중요하지 않은 방해의 희생양이 됩니다. 하지만 학습은 생산성을 높이고 좋은 기회를 얻을 가능성도 높입니다. 따라서 레버리지가 큰 과업입니다.
  • 추정된 영향력에 기반한 적극적인 우선순위화: 다음에 진행할 가장 영향력이 높은 일을 결정하는 과정에서 완료할 필요가 있는 작업을 주기적으로(보통 일주일) 검토하며 의사 결정을 이끌 자료를 수집하고 방법을 사용합니다.
  • 기술 대화에 참여/새로운 직원을 이끌 지침서 작성: 쿠오라에서는 새로운 직원을 기술 대화에 참여시키고 새로운 직원들에게 일련의 코드랩를 제공합니다. 구글의 교육 방법을 따와서 만든 코드랩은 현재 사용 중인 핵심 소프트웨어 추상화와 개념을 설명하는 문서이며, 설계 근거와 활용 방안을 설명하고 코드 저장소에 들어있는 관련 코드를 탐험하며, 튼튼한 이해를 위한 연습 문제를 제공합니다. 이런 문서는 팀에 속한 수 많은 사람들이 오랜 기간 동안 작성했지만, 확장 가능하며 재사용 가능한 자원을 제공하므로, 새로운 직원들에게 동일한 개념을 가르치기 위해 멘터별로 필요한 시간을 단축하며, 새로운 직원들이 일관성 있는 토대에서 시작하도록 만들어줍니다.
  • 필요할 때마다 오픈 소스 도구 활용: 바퀴를 매번 다시 만들 필요는 없습니다. 누군가 이미 필요한 뭔가를 만들어 놓았다면 말입니다.

뱀다리) 레버리지를 높이기 위한 좋은 충고이지만, 역시 한국적인 상황(월화수목금금금)에서는 잉여력이 문제라는 생각이 든다. 독자 여러분들의 의견은 어떠신지?

EOB

토요일, 7월 14, 2012

[독서광] 구글러가 전하는 IT 취업 가이드

요즘 한쪽에서는(기업) 사람개발자가 없다고 야단법씩인 반면에 다른쪽에서는(개인) 갈만한 좋은 회사가 없다고 야단이다. 좋은(응?) 회사는 손에 꼽을만큼 얼마 되지 않으니 자연스럽게 경쟁이 치열하므로 (자신의 실력으로) 갈만한 좋은 회사가 많다면 그게 더 이상하다는 생각이다. 그렇다면 IT 분야에서 좋은 회사를 들어가는 방법은 무엇일까?

이번에 인사이트에서 새로 나온 '구글러가 전하는 IT 취업 가이드'는 나름 미국 IT 취직 관련 사이트로 유명한 Careercup.com(참고: IT 구직자들에게 이 사이트를 강력 추천한다)을 운영하는 게일 멕도웰이라는 친구가 자신의 경험(애플, 마이크로소프트, 구글)을 토대로 따끈따끈한 경험담을 후배들에게 전달한다. 이제 막 책이 풀렸는데, 언제 다 읽었느냐고? 책 나오자마자 인사이트 담당자분이 직접 배달(?)해주셨고 받자마자 이틀 동안 틈나는대로 300쪽이 넘는 두툼한 책을 정말 열심히 읽고 또 읽었다. 성질 급한 독자분을 위해 요약하자면, 이 책은 어느 정도 틀이 잡힌(즉 HR이 제대로 동작하는) 다국적 IT 기업에 취직하려고 마음먹은 독자를 대상으로 한다.

목차를 보면 알겠지만, 이 책은 이력서 작성부터 시작해 커버레터(간략한 자기 소개글이라고 보면 된다) 작성 요령까지 짚어주고, 전반적인 면접 과정과 주의 사항에 대해 알려준다. 그리고 나서 면접 대응(전화 면접 포함)과 프로그래밍 면접 요령을 자세히 설명한다. 마지막으로 (마치 한국 독자들을 위한 듯이 보이는) 게임 회사 취업 방안과 취업 제안을 받아들이고 뿌리치는 방법, 취업하는 과정에서 연봉이나 처우를 개선하는 방법, 취업 이후 처신 방법을 설명한다. 이제 막 사회에 진입하려는 독자를 대상으로 하고 있기에 시시콜콜 온갖 이야기가 다 나오므로, 실제 경력이 되는 분들 개발자 입장에서 보면 다소 지루하고(다이어트를 하면 200페이지 미만으로 만들 수 있었던 책이라는 생각) 한국 사회에 그대로 적용하기에는 (회사나 개인 모두에게) 문화적인 문제를 일으킬 가능성이 높은 부분이 눈에 띌 수도 있다. 하지만 소위 말해 요즘 잘나가고 있는 IT 업체의 HR 분위기를 생생하게 전달하므로 큰 그림에서 바라보면 개인이나 회사 양쪽 모두에게 충분히 응용 가능한 요소도 많다.

취업이야 (어차피 사람을 뽑아야 하니... 창업한 사람까지도 포함해) 모든 사람들의 관심사이므로 인터넷 교보문고에서 '취업'이라는 단어로 검색해보면 책이 무려 3630권이나 나오는 상황에서 이 책 내용이 우리에게 시사하는 바를 생각해봤는데, 구직 중인 개발자뿐만 아니라 IT 업체의 HR 담당자들이 잘 나가는 외국 IT 업계의 분위기를 파악해 전반적인 HR 수준을 높여야 대한민국의 IT 경쟁력이 한 단계 더 높아지지 않을까싶다. (실력파) 구직자들의 눈높이에 맞추지 않으면 외국 기업에 인재들을 다 빼았기고 뒤에 가서 후회할테니, HR 담당자들과 면접관들이 이 책 내용을 치밀하게 연구하고 벤치마크해 국내 사정에 적합한 좋은 모델을 만들어 대응해야 할 것이다.

힌트: 취업 지망생들은 지금이라도 늦지 않았으니 링크드인(참고: [독서광] START! 링크드인 LinkedIn도 읽어보시길...)에 반드시 가입하기 바란다. 이력서에 링크드인 주소를 넣어두면 제대로 된 HR 담당자라면 반드시 열어본다(페이스북이나 트위터에 접속해 당신의 글을 읽어볼 가능성보다는 비즈니스 마인드와 인맥을 집중적으로 추적할 수 있는 링크드인을 열어볼 가능성이 훨씬 더 높다). 또한, 링크드인 내용은 이 책 내용을 유심히 읽어보고 Careercup.com의 지침을 참고해 영어로 작성하면 더욱 좋다(국내 회사에서 영어 이력서를 무시할지도 모른다는 걱정은 절대 하지 마시라. 토익/토플 점수보다 당신 이력서를 작성한 영어 작문 솜씨에 주목할테니 말이다. 그러니 일단 영어로 칼을 뺐으면 철자/문법 등에 신경 쓰면서 제대로 써야 한다!).

EOB

토요일, 7월 07, 2012

[독서광] 세상을 뒤흔든 특허전쟁 승자는 누구인가?

작년에 출간된 특허전쟁에 이어 이번에 구글과 반 구글 빈영 사이의 특허전쟁을 다루는 후속작이 나왔다. 앞서 나온 특허전쟁이 특허에 대한 지식을 강화시켜준다면 이번에 나오는 '특허전쟁 승자는 누구인가?'는 불확실성을 해소하기 위한 수단으로 특허라는 제도를 글로벌 기업들이 어떻게 이용하는지 실제 사례를 설명하는 교양서라고 보면 틀림없겠다. 따라서 두 책을 같이 읽어보면 특허와 비즈니스 사이의 미묘한 공생 관계를 더욱 확실하게 이해할 수 있다는 생각이다.

집에서 TV로 야구 경기를 시청하다 실제 야구 경기장에 가서 경기를 볼 때 당혹스러운 느낌을 받은 분들이 많으실 것이다(사람들이 야구 경기장에 라디오를 들고 갔고 요즘은 스마트폰이 라디오를 대체하고 있다). 현장에 가면 생동감은 느껴지지만 선수도 낯설고 작전도 한 눈에 안 들어오고 양팀간의 팽팽한 균형을 보기가 어렵다. 이유는 바로 엄청난 골수 야구팬이 아니라면 관전 포인트를 찾아내기가 쉽지 않기 때문이다. 관전 포인트는 현재 경기 뿐만 아니라 직전에 벌어진 경기, 그리고 앞으로 벌어질 경기를 모두 꿰차고 있어야 더욱 풍성해지는 법이라, 아무래도 전문 해설가의 도움이 없다면 파악하기가 극히 어렵다. 이번에 소개하는 '특허전쟁 승자는 투구인가'는 구글을 대리하는 삼성과 구글과 맞서는 애플 사이에 벌어진 특허 소송의 관전 포인트를 잘 짚어주기 때문에 태극기 휘날리는 일반적인 신문이나 IT 잡지 논조와는 사뭇 다르다. 애국심만으로는 설명하기에 상당히 곤란한 부분을 시원하게 긁어주므로 책을 읽는 과정에서 나름 흥미로운 관전 포인트를 찾아낼 수 있었다.

이 책은 단순히 삼성 애플이라는 양대 회사 사이의 소송에서 벗어나 구글 진영(삼성 - HTC - 모토롤라)과 반 구글 진영(애플 - 마이크로소프트/노키아 - 오라클) 사이에 벌어지는 역사상 최대의 특허 전쟁을 다루고 있기 때문에 스케일도 크고 얽히고 섥힌 내용도 많다. 이 책은 특허 제도를 이용해 불확실성을 해소하려는 양쪽 진영의 치열한 법적 공방과 합종 연횡을 보고 있으면 삼국지가 떠오른다. 삼성이 특허 개수가 많음에도 불구하고 특허 소송에서 불리한 이유, 애플이 늘 빠져나갈 공간을 만들어 주면서 삼성을 밀어붙이는 이유, 양사가 결국 서로 싸우면서도 양보하며 자기 영역을 결정해가는 방식, 삼성이 특허 소송에서는 불리하지만 사업적으로는 잘 나가는 이유를 재미있게 설명하고 있으므로, 기업 특허 담당자 뿐만 아니라 세상 돌아가는 소리소문에 관심이 많은 개발자들도 읽어보면 (분명히) 도움이 될 것이다.

이 책을 읽은 직후에 터져 나오는 각종 뉴스(예: 미국, 갤럭시탭 판금 집행정지 요청 기각)를 보니까 확실히 과거와는 다른 시각으로 좀더 넓게 바라보는 자신을 발견했기에 스스로가 기특해지기 시작했다. 낄낄... 책 뽐뿌질이랑 자기 깔때기질은 여기까지. 여러분들도 두 책을 읽어보시고 세상 돌아가는 이치에 대해 (최소한 특허와 사업 관점에서) 혜안을 얻으면 좋겠다.