검색엔진

토요일, 7월 31, 2010

[독서광] Debug It! 실용주의 디버깅



국내에서 유난히 인기가 없는 전산/컴퓨터 관련 서적이 있다. 뭔지는 독자 여러분들도 이미 아시겠지만... 디버깅이다. B급 프로그래머도 이미 리눅스 문제 분석과 해결, 디버깅과 성능 튜닝을 번역해보았지만, 그다지 인기를 끌지 못했다. 디버깅은 개발 과정에서 상당히 중요한 비중을 차지하므로(어쩌면 개발 자체보다 더 많은 시간을 투입해야 할지도 모른다) 이런 부류의 개발자 서적이 인기를 끌지 못하는 이유가 상당히 궁금하긴 하지만(찌질한 디버깅 관련 서적을 들고 다니면 덜 프로페셔널하게 보이기라도 한 건가?), 꾹 참고 있다(혹시 이유를 아는 독자라면 댓글로 알려주시라.), 그냥 그저 그려려니 하고 있다. 이렇게 디버깅에 관심이 많은 B급 프로그래머다 보니, 이번에 새로 디버깅 관련 서적이 나온다는 소식을 듣고서 잽싸게 읽어보았다.



"Debug It! 실용주의 디버깅"은 제목에서 드러나듯 실용주의를 표방하는 디버깅 서적이다. 구체적이고 특정 프로그래밍 언어나 주변 환경(운영체제, 컴파일러, 라이브러리)에 맞춤식으로 만든 책이 아니라 전반적인 디버깅 철학에 대해 설명하고 있는 책이라고 보면 틀림없겠다. 따라서 읽는 즉시 도움이 되기를 기대했다면(예: 마이크로소프트 윈도우 환경에서 작성한 응용 프로그램의 메모리 누수 현상을 어떻게 해결합니까? pthread로 프로그램을 만들었는데 데드락이 걸려요!) 후회가 막급하겠지만, 전반적인 디버깅 과정에 대해 이해하고 싶었다면 나쁘지 않은 선택이라 본다.



책의 목차를 보면 이 책의 성격을 좀더 제대로 파악할 수 있다. 1부에서는 재현 - 진단 - 수정 - 반영이라는 전반적인 디버깅 과정을 설명하며, 2부에서는 문제 발견 방법과 디버깅 자세를 설명하며, 3부에서는 자주 일어나는 버그 패턴과 디버깅에 유리한 프로그램 작성 기법, 버그를 다루는 개발팀의 안티 패턴을 설명한다. 알기 쉽게 풀어쓰느라 저자가 고생했지만, 반대 급부로 깊이가 얕아지는 바람에 중급을 넘어선 개발자라면 이 책에서 아주 획기적이고 신기하고 새로운 사실을 발견하기 힘들지도 모르겠다(늘 그렇지만 정리를 위해 책을 읽는다면 나름 의미가 있다).



결론: 구성과 가독성이 뛰어나며 분량이 작기 때문에 초급 개발자가 주말을 틈타 잽싸게 읽으면 딱 좋은 책.



EOB

일요일, 7월 18, 2010

[독서광] 슈퍼 괴짜경제학



역시 형만한 아우가 없다는 말이 맞는 듯이 보인다. 괴짜 경제학에 이어 나온 슈퍼 괴짜경제학은 전편에 비해 훨씬 더 스케일이 커졌긴 하지만 다 읽고 나도 그리 큰 감흥은 불러일으키지 않는다. 물론 책이 나쁘거나 엉터리라는 이야기는 아니며, 더 이상 리마커블한 이야기는 나오지 않는다는 의견이다.



이 책 서문에서 나오듯이 전편과 마찬가지로 이 책은 경제학 책이라기 보다는 우리 주변에 일어나고 있는 사회 현상을 설명하기 위해 경제학적인 접근 방법을 사용하고 있다. 그러다보니 특정 사회 현상에 대해 상식적으로 알고 있던 이유가 뒤집어지기도 하고 이면에 숨어있던 더 큰 이유가 등장하기도 한다. 전작에서 다룬 주제가 우리 일상에 아주 밀접하기 때문에 사람들 이목을 이끄는 데 성공했다면 이 책에서 다룬 주제는 좀더 자극적이고 스케일이 커졌음에도 불구하고 무슨 이유인지는 모르겠지만 뭔가 간이 안 맞는다는 느낌이 든다.



"길거리 매춘부와 백화점 산타클로스가 노리는 것"이라는 제목으로 비용과 가격에 대한 주제를 다루는 1장은 그나마 읽을만하다. 매춘부가 가난해진 이유, 오럴섹스의 가격이 싸진 이유 등 지하철이나 버스 안에서 읽기에는 조금 민망한 이야기가 나오지만 시작부터 독자 눈을 붙잡아두려는 경제학적(?)인 시도라고 보면 틀림없겠다. 계속해서 행운과 패턴, 냉담함과 이타주의, 쉽고 간단한 해법 추구, 지구를 구하는 외부 효과라는 주제가 이어지는데 온갖 잡스러운 부분에 흥미가 있는 B급 프로그래머 관점에서 바라봐도 1장과 비교하면(여기서 오해 마시라. 1장에 섹스 이야기가 나와서 눈이 휘둥그래졌다는 말은 아니다. 세상에는 더 놀랄만한 책도 많다. 낄낄...) 아무래도 재미가 팍팍 떨어진다.



어이없는 결론: 지구 기후 변화 온난화 등에 관심이 많은 독자가 이 책을 읽으면 딱 좋겠다.



EOB

월요일, 7월 12, 2010

[독서광] 엔터프라이즈 애자일 프로젝트 관리



제목에 나오는 엔터프라이즈와 애자일이라는 어울리지 않는 두 단어를 보고 도대체 이 책의 정체(?)가 무엇인지 아주 아주 궁금해서 첫 페이지부터 끝 페이지까지 읽고 말았다. 혹시 애자일을 엔터프라이즈에 도입하고픈 욕구를 못이겨 구매하실 분들을 위해 확실하게 이 책의 정체를 밝혀주겠다.



가장 먼저 이 책은 엔터프라이즈 환경에 적합한 애자일 기법을 소개할 목적으로 만들어진 책이 아님을 밝힌다(이미 떡 실신한 독자 모습이 눈에 선하다. T_T). 목차를 보고 1부 "관리자를 위한 애자일"이 유사한 내용을 담고 있을지도 모르겠다는 생각이 아주 잠시 들었지만 정신 건강을 위해(혹시 1부만 읽고서 독서를 포기하는 불상사를 막기 위해) 1부는 건너 뛰는 편이 좋겠다. 그러면 도대체 이 책의 정체는 뭐냐고?



바로 이 책은 엔터프라이즈에서 프로젝트 포트폴리오를 애자일에 맞춰 관리하는 방법을 다룬다. 이 책의 원서 제목인 "Agile Portfolio Management"가 이 책 내용을 너무나도 충실하게 알려주고 있지만 한국에서 이렇게 제목을 지었다가는 어떻게 될지 다들 알고 있기에 긴 말 하지 않겠다. 그렇다면 포트폴리오가 무엇일까? 잠시 네이버 백과사전에 나온 정의를 같이 살펴보자.



주식투자에서 위험을 줄이고 투자수익을 극대화하기 위한 일환으로 여러 종목에 분산 투자하는 방법.


역시 경제/경영 블로그 답게 포트폴리오라는 용어가 아주 자연스럽게 다가온다면 당신은 이 책을 무리 없이 읽을 수 있을 것이다. 회사를 운영하다(아니 회사를 다니다보면) 어떤 날은 파리만 날리다가 어떤 날은 여러 프로젝트가 사방 팔방에서 쏟아져나오기 마련인데 돈되고 비전있는 프로젝트를 골라 확실하게 밀어붙이는 방법을 애자일 관점에서 설명하고 있다고 보면 틀림없다(한문단 요약!).



프로젝트 포트폴리오를 중심으로 자원 포트폴리오와 자신 포트폴리오를 관리하는 방법을 설명한 다음에 반복을 거쳐 어떤 식으로 돈 안되는 프로젝트를 포트폴리오에서 제거하고 돈 되는 프로젝트를 포트폴리오에 추가하고 유지하는지를 설명하고 있다. 이렇게 프로젝트 포트폴리오 균형을 맞추는 과정에서 잦은 평가, 반복적인 수행을 비롯해 애자일에서 좋은 특성을 가져오므로 애자일 포트폴리오 관리라는 제목이 붙었다고 보면 된다.



뭐 여기까지 설명했으면 이 책을 읽어야 하는 대상 독자층이 확실해진다. 일반 프로그래머? 아니오. 일반 프로젝트 관리자? 아니오. 애자일 애호가? 아니오. 이해관계자? 아니오. 그러면 누구? 포트폴리오 관리자, 프로젝트 관리팀(PMO)에 속한 스태프, 경영진 정도가 적합하겠다. 결론: 일반 프로그래머나 팀장 수준에서 읽기에는 시기상조고... 큰 회사에서 여러 프로젝트 때문에 고민이 많은 분들께서 읽어보고 조금이라도 힌트를 얻으면 좋겠다.



EOB

일요일, 7월 04, 2010

[독서광] (사람의 열정을 이끌어내는) 유능한 관리자



특별히 기대하지도 않았던 책이 대박인 경우가 종종 있다. 오늘 소개할 "(사람의 열정을 이끌어내는) 유능한 관리자"가 바로 이런 부류에 속하는 전형적인 책이라고 보면 틀림없겠다. 기존 무능한 '관리자'에 대한 풍자(?)적인 내용을 담고 있는 수 많은 책과는 달리 이 책이야 말로 핵심을 정확하게 꿰뚫어버리는 조언으로 가득 차 있다. 책 귀퉁이는 접힐대로 접혀 위쪽이 볼록한 상황에 이르렀으니 여기서 일일이 좋은 내용을 다 소개하기 조차 어려운 상황이다. 그래도 독자 여러분을 위해 책을 읽다가 얻은 몇 가지 훌륭한 교훈을 정리해보겠다.



가장 먼저 이 책 영문 제목을 살펴보면 "First, Break All the Rules: What the World's Greatest Managers Do Differently"다. 한국어판 제목에서는 흔적도 없이 사라져버렸지만 사실상 이 책은 "모든 규칙을 깨라"와 "세상에서 가장 위대한 관리자가 다르게 행동하는 방식"을 다루고 있다.



우선 유능한 관리자를 구분하는 (강력한!) 세 가지 질문부터 시작하겠다. 나중에 원하는 분들이 많으면 유능한 관리자들이 답한 표준 답안도 제시해드릴테니, 각자 자신이 얼마나 유능한 관리자인지 확인해보기 바란다. 참고로 (제 얼굴에 금칠해서 대단히 유감스럽지만...) 세 가지 질문에 정확하게 대답한 B급 프로그래머는 유능한 관리자 맞다. 낄낄...




  1. 관리자로서 다음 중 어떤 유형의 직원을 선택하겠습니까? 독립성이 강하고 도전적인 성격으로 연간 120만 달러의 매출을 올릴 수 있는 유형과, 무난한 성격에 동료 직원과 잘 화합하지만 연간 60만 달러의 매출을 올릴 수 있는 유형. 이렇게 선택한 이유는?
  2. 부하 직원 가운데 생산성 측면에서는 아주 탁월하지만 서류 업무는 엉망진창인 사람이 있다고 가정합시다. 그 직원의 생산성을 높이기 위해서 어떻게 하겠습니까?
  3. 부하 직원 가운데 두 명의 관리자가 있는데, 한 사람은 관리에 천부적인 재능이 있는 반면에 다른 한 사람은 평범하다고 합시다. 그리고 현재 두 자리가 비어 있습니다. 첫번째 부서는 진행이 원활하고 두 번째 부서는 고전 중이지만, 아직 두 부서 모두 목표에는 도달하지 못한 상황입니다. 여러분이라면 유능한 관리자를 어느 부서에 배치하겠습니까? 그 이유는 무엇입니까?


질문이 상당히 어려운가? 질문 내용을 곰곰히 뜯어 보면 알겠지만, 이 책은 전통적으로 알려진 관리자의 미덕과 행동 규범에 대해 다시 한번 생각할 기회를 제공한다. 누군가 관리자가 다음과 같이 행동해야 한다면 미쳤다고 말할 것이다.




  • 평등이란 없다. 모든 부하직원/팀원에 대해 다르게 행동하라.
  • 내가 대접받기 원하는 대로 남에게 대접하지 마라.
  • 부하직원/팀원의 단점을 개선하기 위해 노력하지 마라. 장점에만 집중하라.
  • 최고의 직원에게 시간을 투자하라.
  • 승진은 그리 중요하지 않다. 역할이 더 중요하다.
  • 솔직한 감정을 드러내라.


이 책에서는 갤럽(!)의 축적된 경험을 통해 전 세계에서 가장 뛰어난 관리자들이 어떤 식으로 행동하는지 파악하기 위해 철저한 조사와 통계 분석을 토대로 공통점을 분석하고 있다. 위에서 소개한 내용이 바로 이런 조사와 통계 분석 결과의 결과(놀랍게도 뛰어난 관리자는 다르게 행동한다) 중 일부다. 이 책에서 유능한 관리자가 공유하는 사고 방식은 다음 4가지로 간략하게 요약한다.




  1. 사람들은 별로 변하지 않는다.
  2. 그 사람에게 없는 것을 있게 하려고 시간을 낭비하지 마라.
  3. 가지고 있는 것을 밖으로 끌어내면 된다.
  4. 그것조차도 쉽지 않다.


아주 불편한 내용이 아닐 수 없다. 참고로 전통적인 관점에서 정리한 관리자의 사고 방식을 한번 들어다볼까?


  1. 직원 선발: 경력/지능/판단력을 근거로 선발한다.
  2. 기대치 설정: 적절한 단계를 규정해준다.
  3. 동기 유발: 취약점을 파악하고 이를 극복할 수 있도록 도와준다.
  4. 자기계발: 교육과 승진을 도와준다.


하지만 경력/지능/판단력만 보고 좋은 사람을 뽑을 수 없으며, 적절한 단계를 규정하고 사람들의 단점을 고친다고 해서 탁월한 경영 성과도 담보하기 어렵다. 직원의 승진이 '발전'의 핵심이라고 잘못 이해하고 있기 때문이다. 뛰어난 관리자는 상기 네 가지를 부정하고 다음과 같은 혁신적인 접근 방법을 사용한다.




  1. 직원 선발: "재능"을 근거로 선발한다.
  2. 기대치 설정: '성과'(목표)를 규정한다.
  3. 동기 유발: '장점'에 초점을 맞춘다.
  4. 자기계발: 적절한 '역할'을 찾아준다.


큰 차이가 없는 듯이 보일지도 모르지만, 지금 관리자를 맡고 있다면 고전적인 접근 방식과 혁신적인 접근 방식에는 어렴풋이라도 엄청난 차이가 있음을 눈치챌지도 모르겠다. 앞서 말한 유능한 관리자의 4가지 사고 방식이 투영되어 있기 때문이다.



이 책은 진정한 관리자에 대한 정의(강한 조직은 무엇이 다른가?, 유능한 관리자의 지혜), 유능한 관리자가 되기 위한 4가지 열쇠(재능을 보고 선발하기, 합리적인 목표 설정, 장점 개발, 적합한 역할 찾기), 인재 완성을 위한 방법(인터뷰, 성과 관리 토대 수립, 능동적인 대처, 전통적인 관념의 뿌리 뽑기, 직원의 재능을 자유롭게 분출하도록 조직 정비)를 이론과 실전을 총 동원해 설명하고 있으므로 유능한 관리자가 되려는 사람이라면 반드시 읽어야 하는 필독서라고 보면 틀림없다(99.99% 맞을 것이다). 이 책을 다 읽고서 나름 창의력을 발휘해 사람의 열정을 이끌어낼 수 있는 유능한 관리자가 되기를 (아니면 최소한 이런 관리자를 만나기를) 진심으로 바란다.



이 책에 나온 스콧 피츠제럴드의 명언으로 끝을 맺는다(소프트웨어 크리에이티비티 2.0을 읽은 독자라면 100% 동감할 것이다.



최고의 지성이란, 서로 상반되는 생각을 동시에 가지고 있으면서도 행동의 일관성을 유지할 수 있는 능력이다. - 스콧 피츠제럴드


뱀다리: 올 여름을 시원하게 만들어줄 초강력 블록버스터인 이 책은 나온지 오래되고 별로 알려져 있지 않기에 절판될 가능성이 아주 높기 때문에 얼른 구입하기 바란다.



EOB