오늘은 애자일 서평 두번째로 '익스트림 프로그래밍'을 소개하겠다. XP(eXtreme Programming)이 일반에 잘 알려져 있긴 하지만 의외로 시중에 익스트림 프로그래밍 관련 서적은 별로 없는 듯이 보인다. 다행스럽게도 켄트 백이 쓴 'Extreme Programming Explained: Embrace Change(2nd Ed.)'가 한국어판으로 나와 있어 XP에 관심이 많은 분들께 도움이 된다는 생각이다.
XP는 애자일 소프트웨어 개발 방법 중 가장 널리 알려져 있는 소프트웨어 개발 기법으로 짧은 개발 주기 동안 잦은 소프트웨어 배포가 가능하므로 고객 요구 사항이 불확실한 상황에서도 소프트웨어 품질을 높이며 반응 속력을 빠르게 만들어준다. '익스트림 프로그래밍' 책은 단순히 XP의 실천 방법을 소개하는 내용을 넘어서 가치, 원칙, 실천 방법을 유기적으로 연결해 설명하고 있으며, XP 이면에 숨겨진 철학을 밝혀주기에 인터넷에 올라온 단편적인 XP 실천 방법을 넘어서 제대로 된 소프트웨어 개발이 무엇인지에 대한 근본적인 질문을 우리에게 던져준다.
많은 기업들이 '애자일' 개발을 표방하고 있지만(최근 어떤 모임(미국이 아니라 한국이다)에서 참여한 기업 열 곳 중 80% 이상이 애자일 방법으로 소프트웨어를 개발하고 있다는 이야기를 듣고 깜짝 놀란 적이 있다), 실제로는 미친듯이 만들고 미친듯이 수정하는 과거의 짜보고 고치기(code and fix)와 다름 아닌 상황은 아닌지 걱정스럽기도 하다. 겉보기에는 자유 분방한 듯이 느껴지는 애자일이 실제로는 무척 엄격한 원칙과 규칙에 따라 움직이므로 이면에 숨은 철학을 충분히 흡수해 올바른 길을 걷지 않는다면 오히려 제품 개발과 프로젝트가 통제 불능에 빠져 경영진과 개발팀 모두에게 크나큰 상처를 입힐 가능성을 늘 경계해야 한다.
다행스럽게도 '익스트림 프로그래밍'은 XP는 물론이고 다른 애자일 소프트웨어 개발 방법론(스크럼, 린 소프트웨어, TDD)에서도 동일하게 적용할 수 있도록, '사회적인 변화'를 수반한 훌륭한 코드 작성에 필요한 마음가짐과 자세를 꼼꼼하게 짚어주고 있다. 참고 문헌과 색인까지 합쳐도 250페이지에 불과한 작다면 무척 작은 책이지만 각 장마다 생각할 거리를 충분히(아니 어떤 경우에는 흘러 넘치도록) 제공하기 때문에 빠르게 읽기는 상당히 곤란한 나름 두꺼운(?) 책이다. '컴퓨터 vs 책' 애독자로서 [독서광] 컬럼에 소개한 여러 가지 다앙한 분야의 책(예: 엘리 골드랫의 ToC 관련 서적, 토요타 방식(JIT), 피플웨어와 슬랙 등 드마르코 책, 창발성에 관련된 각종 서적(부의 기원, 혼돈의 가장자리) 등등)을 접하신 분들이라면 서로 연관시켜가며 정말 흥미롭게 읽을 수 있을 것이다. 너무 극단적이지도 않고 너무 현학적이지도 않은 어조로 소프트웨어 개발 작업에서 인간성과 생산성을 조화롭게 만들어 사업에서 성공을 거두는 방법을 다루고 있기에 애자일에 관심을 보이는 모든 분들께 강력하게 추천하고 싶다(결론: 추석 특집 뽐뿌질).