Make Better Software의 추천 도서

얼마 전에 StackOverflow, Trello 등으로 유명한 조엘 스폴스키Fog Creek에서 Make Better Software라는 이름의 매거진 형태의 문서를 공개했다. (얼마나 자주 그리고 정기적으로 나올지는 모르겠지만) 제 1호라서 그런지 다양한 인터뷰와 전문가 기고 등이 꽤 알차다.

Make Better Software 1호의 마지막에는 프로그래밍과 기술적 리더십에 대한 19종의 추천 도서 목록있다.

영어 원서 내용을 빠르게 파악하는 방법

아무래도 직업이 소프트웨어 엔지니어 또는 소프트웨어 개발 관리자다 보니, 굶지 않으려면 죽을 때까지 학습을 게을리 할 수가 없는 입장이고, 그러다보니 불가피하게 영어로 쓰여 있는 원서를 피해갈 수가 없다.

물론 좋은 번역서들이 끊임 없이 나오고 있긴 하다. 하지만 몇 가지 국내 상황으로인해 번역서를 마냥 기다리기에는 답답한 면이 있다.

  • 국내에 번역서가 나오기까지 빠른 경우에도 수 개월, 경우에 따라서는 몇 년이 걸리기도 한다. 소프트웨어 관련 서적의 수명이 상대적으로 짧다는 점을 생각해볼 때, 내가 변역서를 손에 쥔 시점에는 이미 많은 사람들이 나보다 더욱 앞서나간 상태일 것이 분명하다.
  • 대한민국 IT 출판 시장의 규모 때문에 애시당초 번역서로 나올 수 없는 책들이 있다. 아무리 좋은 책이라 해도 누군가 손해를 보면서 번역서를 만들어주기를 기대하기는 어려운 노릇이다.
  • 기술을 선도하는 이들(주로 미국 등 영어권)과, 그 뒤를 따라가는 이들(국내)에게 필요한 정보는 다를 수 밖에 없다. 서로 환경이 다르고 해결해야 하는 문제가 다르기 때문이다.

물론 원서를 읽는데 전혀 무리가 없다면 이런 고민을 할 필요가 없다. 아마도 고민이 있다면 해외 구매로 인해 비용이 좀 더 든다는 것 정도가 아닐까? 그런 능력이 있다면 좋겠지만, 나를 비롯한 대부분에게는 원서를 술술 읽는다는 것이 짧은 시일 안에 이루기 어려운 이야기다. 이런 조건에서 원서를 읽으려다보니, 그 내용을 빠르게 파악하는 나만의 노하우(?)가 생겼다.

bigger-pile-of-books

첫째. 목차를 마인드맵으로 그려본다.

책이 담고 있는 내용의 전반적 구조를 파악하는 데 목차만한 것이 없다. 편견일지 모르지만, 목차를 봐도 기승전결 구조나 흐름을 파악하기 어렵다면 차라리 비슷한 주제의 다른 책을 보는 편이 낫다. 일단 목차를 마인드맵 형태로 그린 다음 한 발자국 떨어져 바라보면, 그냥 책에 있는 목차를 볼 때와는 다른 것들이 보인다.

둘째, 마인드맵을 더 상세하게 발전시킨다.

본문을 빠르게 넘기면서 눈에 띄는 부분을 마인드맵에 추가한다. 예를 들면, 목차에는 없는 소제목이나 인용구, 불릿, 굵은 글씨, 그림 제목 등 중에서 눈에 띄는 것들을 마인드맵에 추가하여 그림을 더욱 풍성하고 상세하게 만든다.

셋째, 마인드맵을 한글로 번역한다.

이 시점에서 마인드맵은 원서에 있는 내용을 그대로 옮긴 것이기 때문에 영어로 되어 있다. 영어가 눈에 팍팍 들어오는 수준이었다면 마인드맵 따위는 그리지도 않았을거다.ㅜㅜ 그렇기 때문에, 마인드맵을 최상위부터 레벨을 점점 아래로 낮춰가며 노드들을 하나씩 한글로 번역하고 같은 노드 안에 번역한 내용을 추가한다. 이때, 원래 있던 영어는 지우지 않는 편이 좋다. 굉장히 흔히 보는 단어라 할지라도 맥락에 따라 전혀 다른 의미로 사용하는 단어들도 많고, 본문 앞뒤를 살펴보지 않으면 해석이 곤란한 것들도 있기 때문에 나중에 계속 참고해야 한다.

넷째, 번역한 내용을 다듬는다.

지금까지 그린 마인드맵은 거의 직역해놓은 것이기 때문에 딱 봐도 앞뒤가 안맞는다. 본문 내용을 참고하면서 번역을 조금씩 다듬어나간다. 사전적 의미와는 다른 전문 용어가 있다면 본문에서 그 정의를 찾아보고 적절한 번역으로 바꾼다. 대개 용어의 정의는 해당 챕터 초반에 나온다.

다섯째. 중요한 부분이나 눈길을 끄는 챕터를 상세히 읽는다.

내 경우 원서 한 권을 처음부터 끝까지 정독하는 일은 고행에 가깝다. 사실 처음부터 끝까지 읽어본 원서는 손가락에 꼽는다. (아마… 두 세 권 정도?) 여기까지 마인드맵을 그렸다면 분명히 그 과정에서 읽어보고 싶거나 중요해 보이는 챕터가 있었을 것이다. 우선 그 챕터부터 상세히 읽기 시작한다. 거기에서 시작해서 자연스러운 흐름을 따라가며 다른 챕터로 옮겨가기도 한다.

코드가 많이 나오는 책들은 굳이 이렇게까지 할 필요없이 그냥 코드 위주로 보는 것이 더 좋다. 내가 주로 보는 원서들은 그 주제가 소프트웨어 공학이나 프로젝트 관리, 개발 문화, 변화 관리, 리더십, 개발 프로세스, 방법론, 퍼실리테이션 등이기 때문에 이런 방법이 어울린다고 생각한다. 그리고, 가끔은 마인드맵을 그리는 시간에 차라리 영어 공부를 하는 편이 더 낫겠다는 생각이 들기도 하지만, 아직까지 원서를 읽는 이보다 더 효율적인 방법을 발견하지는 못했다.

이런 방법으로 원서를 보는 것은 어디까지나 내가 생각하기에 나에게 잘 어울리는 나만의 방식이다. 아마 사람들마다 각자 어울리는 방법이 따로 있지 않을까.

칸반 무료 e-book 12종

얼마 전에 칸반 추천 도서 3종을 소개한 적이 있었다. 오늘은 그 동안 유용하게 보았던 무료 e-book들을 소개하려고 한다. 전부 각 분량이 그렇게 많지 않아 가볍게 읽어보기 좋다.

칸반 자료가 비교적 많지 않다보니, 하나하나가 전부 소중한 것들이다. (알파벳 순)

  1. An Agile Adoption and Transformation Survival Guide: Working with Organizational Culture by Michael Sahota
  2. Getting Started with Kanban by Paul Klipp
  3. Kanban and Scrum: making the most of both by Henrik Kniberg and Mattias Skarin
  4. Kanban for skeptics: Clear answers to Kanban in software development by Nick Oostvogels
  5. Kanban from the Inside by Mike Burrows
  6. The Kanban Kick-Start Field Guide: Create the Capability to Evolve by Christophe Achouiantz and Johan Nordin
  7. Kanban Roadmap: How to Get Started in 5 Steps by LeanKit
  8. Lean & Kanban: Applying Lean Thinking to Software Development by InfoQ
  9. Priming Kanban: A 10 step guide to optimizing flow in your software delivery system by Jesper Boeg
  10. Quotable KANBAN by David J. Anderson and Associates, Inc.
  11. Replenishment: A Kanban Single by Arne Rooch and Markus Andrezak
  12. The 3 Pillars of Personal Effectiveness: A step by step guide to a fulfilling lifestyle by Troels Richter

칸반을 비롯한 모든 애자일 방법들은 경험적이기 때문에, 전세계 실천가들에 의해 많은 부분이 덧붙여지기도 하고, 사라지기도 하며, 바뀌기도 한다. 그렇기 때문에 지속적으로 최신 자료를 찾아내고 학습하는 것이 무엇보다 중요하다.

어댑트 ADAPT – 불확실성을 무기로 활용하는 힘

사둔지 꽤 오래된 책인데, 이제야 다 읽었다.
비교적 익숙한 주제를 다루고 있어서인지, 책에서 다루고 있는 다양한 사례들이 모두 흥미진진했다.
개발 배경이 전혀 없는 사람에게 ‘애자일’을 소개할 때 이 책을 추천하고 싶다.

인상 깊은 구절 몇 가지를 인용한다.

“세계는 복잡하고 빠르게 변화하며 그 안에 존재하는 문제들 또한 복잡하고 빠르게 변화한다.”

“진화론적 접근법이야말로 복잡한 문제의 해결 방식과 다르지 않음을 보여주었다. 이 끝없이 변화하는 지형을 감안할 때 자잘한 발걸음과 가끔의 무모한 도박이 혼재하는 진화야말로 해결책을 탐색하는 최상의 방법이라는 것이다. 진화가 효과적인 이유는 많은 에너지와 오랜 시간을 들여 탐색을 펼친 끝에 가장 높은 봉우리 하나를 찾는 대신 복잡하고 끊임없이 변화하는 문제에 대해 ‘지금 당장 효과가 있는’ 여러 개의 해결책을 내놓기 때문이다.”

“우리는 실수를 덮는 데 급급하거나 스스로에게까지 실수를 부인할 것이 아니라 적잖은 실수를 저지르고 거기서 교훈을 얻는다는 사실에 의미를 두어야 한다.”

“팔친스키의 3대 원칙은 다음과 같이 정리할 수 있다. (1) 새로운 아이디어를 찾고 새로운 것을 시도해볼 것. (2) 새로운 걸 시도할 때는 실패하더라도 살아남을 수 있는 규모로 시도할 것. (3) 피드백을 구하면서 실수로부터 교훈을 얻을 것.”

“문제가 해결되지 않거나 지속적으로 변할 때 거기 접근하는 최상의 방법은 다양한 접근법을 실험해보는 것이다… 그러나 변이를 수용하려면 이 새로운 접근법 중 일부는 별로 효과적이지 않을 거라는 사실도 받아들여야만 한다.”

“대부분의 리더가 정말 듣고 싶어하는 정직한 피드백의 양에는 한계가 있다.”

“승진은 ‘어떤 자질들이 가치 있고 어떤 것들이 가치 없는지를 알리는’ 역할을 한다.”

“새로운 기술을 장려하는 데 필수적인 두 가지 핵심 원칙을 살펴보았다. 첫째, 무엇이 효과적일지 서로 상충되는 관점을 내재한 듯이 보이더라도 대부분이 실패할 것을 염두에 두고 가급적 많은 실험을 시도해야 한다. 둘째, 실패의 가능성이 보이더라도 성공에 대한 엄청난 보상을 생각해서 장기적인 안목을 지닌 실험을 장려해야 한다.”

“아키 코크런은 ‘신 콤플렉스’에 사로잡힌 권위자들의 주장에 복종하지 말고, 효과 있는 방법에 관한 증거를 수집할 것을 고집했다.”

“실수로부터 교훈을 얻으라는 조언에 귀를 기울이는 것을 어렵게 만드는 세 가지 장애물은 다음과 같다. (1) 부정: 자아 가치에 대한 의식과 오류를 분리할 수 없다. (2) 손실 추격: 손실을 배상받으려고 애쓰는 사이 더 큰 손실을 만든다. (3) 장밋빛 기억: 과거의 실수를 승리로 기억하거나 실수를 성공과 한데 버무리는 경우. 우리는 이 장애물들을 어떻게 극복할 수 있을까?”

내가 본 소프트웨어 개발 분야의 위대한 저자 3인

솔직히 고백하자면, 나는 소프트웨어 개발을 시작한지 한 5~6년차가 될 때까지 별다른 고민도 없고 장인 정신이 투철하지도 못한 그냥 그런 개발자였다. 그저 눈 앞에 닥친 문제를 해결하는 데 급급했고, 장기적 관점에서 나의 비전은 무엇인지, 내가 어떤 소프트웨어 엔지니어가 되고 싶은지 고민해 본 일도 없었다.
다만 항상 오늘보다 내일 더 좋은 개발자가 되고 싶은 마음만은 한결같았다. 하지만 그 방향이 어느 쪽인지 알지 못했다는 것이 문제였다.

모든 것이 온통 희미하게만 보이던 상황에서 벗어나 어렴풋하게 목표를 바라볼 수 있게 된 지금 돌이켜보면, 많은 스승과 멘토, 동료들을 만난 덕분에 지금의 나로 조금씩 성장해올 수 있었다. 모든 분들께 고마운 마음뿐이다. 더불어, 지금의 내가 나로 존재할 수 있도록 커다란 영향을 미친 많은 책들이 있었는데, 그 저자들 중에서 딱 세 명만 골라보라고 한다면 나는 스티브 맥코넬, 톰 드마르코, 제럴드 와인버그를 선택하겠다. 한 명씩 한 명씩 접할 때마다 조금씩 조금씩 이전보다 넓은 세상을 바라볼 수 있었다.

(이 순서가 실제로 내가 각 저자들을 만난 순서이며, 선정 기준은… 그냥 내 취향이 그렇다.)

 

1. 스티브 맥코넬 (Steve C. McConnell)

SteveMcC-Summit03-300
“코드 컴플리트”는 처음 나온지 20년도 넘었지만, 지금도 많은 소프트웨어 개발자들이 널리 읽는 명작이다. 나는 이 책을 통해서 프로그래밍에도 전술과 전략이 필요하다는 사실을 처음 알게 되었다. 1998년에 스티브 맥코넬은 빌 게이츠, 리누스 토발즈와 더불어 소프트웨어 업계에서 가장 영향력 있는 3인 중 하나로 선정되기도 했다.
지금은 Construx의 CEO이자 수석 소프트웨어 엔지니어로 활동 중이다.

    

 

2. 톰 드마르코 (Tom DeMarco)


“피플웨어”를 처음 읽었을 때는 충격 그 자체였다. 그 동안 내가 진실이라고 어설프게 믿어왔던 모든 것이 무너지는 느낌이랄까…(하지만, 부정적인 느낌은 아니다.) 피플웨어는 조직 관점에서의 소프트웨어 개발이란 무엇인지 처음으로 고민하게 된 계기가 되었다. 블랙팀 이야기나 여유 시간(slack)이 개발자에게 갖는 의미, 개발자의 생산성, 업무 환경이 미치는 영향 등 지금 생각해도 기억이 남는 이야기들로 가득하다. (사티어 변화 모델을 처음 접한 것도 이 책에서였다. 물론 ‘새티르’라는 이상한 이름으로 번역되어 있긴 하지만…[*확인해보니 이번에 새로 나온 3판에서는 제대로 번역이 되어있다.])

    

 

3. 제럴드 와인버그 (Gerald M. Weinberg)


맥코넬과 드마르코가 내게 신선한 고민거리를 던져주었다면, 그 해결책을 제시해 준 건 와인버그다. 소프트웨어 개발 분야에서 인간의 내면을 깊이있게 파헤치는 와인버그의 모든 저서들은, 내게 소프트웨어 엔지니어로서 뿐만이 아니라 인생 전반에 너무나 큰 영향을 주었다.
와인버그를 접한 후 깊은 감명을 받아 ‘테크니컬 리더’라는 좋은 책을 번역해보기도 했고, 지금은 Quality Software Management라는 대작을 번역하고 있기도 하다. PSL(Problem-Solving Leadership) 워크숍에 참석해보고 싶은 마음도 굴뚝같고…
소프트웨어 개발을 철학과 심리학의 관점에서 바라본 그의 시각은 애자일 소프트웨어 개발의 선구자들에게 깊은 영향을 미쳤고, 실제로도 수많은 애자일 관련 서적에서 와인버그가 쓴 책들을 인용하고 있다. 자칭 타칭 ‘애자일의 할아버지[the grandfather of Agile]’.

   

 
P.S. 나온지 오래된 책들을 선호하는 경향이 내게 있나보다.
P.P.S. 다 적고 나니 새삼 느끼는 사실이지만… 인사이트는 참 좋은 출판사다.

칸반 추천 도서 3종

요즈음 업무와 관련해서 내게 가장 큰 화두는 단연 칸반이다.

애자일 철학을 추구하면서도 스크럼 적용이 쉽지 않은 조건에서 활용 가치가 크다고 생각했고, 어설프지만 몇 년 전부터 꾸준히 칸반을 시도해오고 있었다.

이번에 이직을 하게 되면서 본격적으로 칸반 적용을 도입하고 있는데, 다행스럽게도 구성원들은 일단 만족스러워하고 있다. 아직 시작 단계이고 점진적으로 칸반을 적용해고 있기 때문에 아직 100% 확신하긴 어렵지만, 두 달 째 칸반을 실천해 오면서 관련 데이터를 꾸준히 정리하고 있어서 충분한 데이터가 모이면 다양하게 활용할 수 있을 것 같다.

나름대로 공부를 하면서 느낀 부분인데, 칸반이 2010년 이후에 본격적으로 확산되기 시작해서인지 그 이름을 접해본 사람은 많지만 아직 관련 도서가 많다고는 볼 수 없다. 칸반에 관심이 있거나 앞으로 적용을 해보고 싶은 분들에게 반드시 읽어야 하는 3권의 책을 추천해보려고 한다.

개인적으로는 순서대로 읽어보는 것을 추천한다.

 

1. KANBAN: Successful Evolutionary Change for Your Technology Business

kanban-cover
TPS에서 유래한 칸반을 최초로 소프트웨어 개발 분야에 적용한 데이비드 J. 앤더슨이 쓴 책이고, 칸반에 대해서 알고 싶을 때 반드시 제일 첫 번째로 읽어보아야 하는 책이다.

겉표지만 보고 이 책을 가볍게 생각해서는 안된다. 당연히 칸반을 실전에 적용할 때 어떻게 해야 하는지에 대해서 충실하게 소개하고 있고, 더불어 칸반이 어떻게 탄생하게 되었는지, 그 이론적 배경은 무엇인지, 어떤 과정을 거치면서 발전해왔는지도 알 수 있다. 하지만 제일 인상 깊은 부분은 “어떻게 하면 더 좋은 방법을 찾을 수 있을까?”를 고민한 저자의 집요함이다.

이 책의 단점은 개인 출판을 했기 때문인지 종종 오타나 편집 실수가 보이고 삽입되어 있는 사진의 품질이 별로 좋지 못하다는 점. 그러나 그런 사소한 문제가 빼어난 이 책의 장점을 가릴 정도는 아니다.

현재 한국어판 번역을 진행 중인데, 한국어판이 출간될 때에는 책의 품질은 훨씬 더 나아지리라 확신한다.

(번역 및 출간 완료 – https://selfothercontext.com/kanban/)

 

2. Lean from the Trenches: Managing Large-Scale Projects with Kanban

lean_from_the_threnches-cover
스크럼과 XP 그리고 칸반과 스크럼의 저자인 헨리크 크니베리가 쓴 책이다.

1부에는 저자가 직접 칸반을 적용하면서 겪은 경험담을 충실하게 담아놓았고, 2부에는 애자일 초보도 이 책을 소화할 수 있도록 애자일, 린, 스크럼, XP, 칸반 등을 간략하게 설명하고 있으며 그 외에도 백로그 관리, 플래닝 포커, 인과 다이어그램 등도 다루고 있다. 크니베리의 책이 언제나 그렇듯 책을 읽으면서 마치 내가 그 회사에 있는 것 같은 생생한 느낌이 일품이다.

다만, 칸반 자체를 충실하게 다루고 있다기보다 칸반을 직접 적용하면서 상황에 맞게 여러 부분을 변형하였고 다른 애자일 방식에서 차용한 아이디어들도 많이 담겨있다. 하지만 칸반 자체가 원래 그렇게 적용해야하는 변화 관리 방법이기 때문에 그런 부분이 오히려 장점이라고 볼 수도 있다.

 

3. Kanban in Action

kanban_in_action-cover
두 번째 책인 Lean from the Trenches와 마찬가지로 스웨덴 출신의 칸반 코치이자 개발자인 마르쿠스 함마르베리와 Spotify의 애자일 코치인 요아킴 순덴이 쓴 책이다.

우연히 기회가 닿아 출간 전에 읽어볼 기회가 있었는데, 초보자가 읽기 쉽도록 친절하게 칸반을 설명하고 있다. 데이비드 앤더슨이 첫 번째 책을 2010년에 출간한 이후 칸반은 급속도로 확산되었고, 많은 실천가들이 지금도 다양한 실험을 해보면서 거기에서 얻은 피드백을 바탕으로 발전하는 중이다. 2010년 이후 칸반이 어떻게 발전하고 있는지 최신 경향을 알 수 있고, 초보자가 보기에도 그다지 어렵지 않게 구성되어 있다.

칸반과 스크럼

IMG_3553

지난 주에 인사이트 출판사에서 보내주신 신간.

칸반에 대해서 처음 공부하기 시작할 때 접했던 책이다. 두께도 얇고 그림도 많고 구성도 어렵지 않게 되어 있어서, 많은 도움이 되었던 기억이 난다. (영문 PDF는 무료로 공개되어 있다.)
예전에 책 중간에 나오는 One Day in Kanban Land를 번역하여 블로그에 포스팅하기도 했었다.

이 책이 처음 출간된 것이 2010년이니까 벌써 3년이 지난 책이다. 하지만 본인의 경험에서 우러나오는 알짜배기 정보를 훌륭하게 독자들에게 전달해주는 헨릭 크니버그(스웨덴 사람이기 때문에 사실은 헨리크 크니베리가 맞다)의 책들은 언제나 충분히 만족스러웠고 “칸반과 스크럼” 역시 마찬가지이다. 칸반이나 스크럼에 대해 어느 정도 알고 있는 사람들도 다양한 실천적 팁을 얻을 수 있고, 잘 모르는 사람이라도 두 가지 방법을 서로 비교하면서 입문하기에 좋은 책이다.

칸반이라는 제목을 달고 출간된 국내 최초의 책이지만, 워낙 얇은 까닭에 깊이 있게 칸반을 다루고 있다고 보기엔 어렵다는 점이 개인적인 아쉬움이다. 옮긴이의 글에서도 소개하고 있는 칸반의 창시자 데이비드 앤더슨의 “Kanban: Successful Evolutionary Change for Your Technology Business“를 하루 빨리 국내에서도 많은 사람들이 접해볼 수 있는 날을 기대해본다.