Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

[Book] 익스트림 프로그래밍 - 변화를 포용하라, 2판

익스트림 프로그래밍
익스트림 프로그래밍 - 10점
켄트 벡.신시아 안드레스 지음, 정지호.김창준 옮김/인사이트

산지는 꽤 되었는데 이제야 읽었습니다. 애자일에 대해서 약간이라도 관심있으시다면 한번 정도는 들어봤을만한 Extreme Programming(XP)에 관한 책입니다. 1판이후 5년이 지난후에 나온 2판인데 보통 2판은 1판의 오탈자나 약간의 변경사항을 가지고 나오는데 추천사등을 보면 1판에서 얘기한 XP이후 켄트벡이 5년동안 얻은 경험을 가지고 완전히 새로쓴 2판이나 다름없다고 합니다.(1판을 보지 않아서 얼마나 달라진건지는 잘 모르겠습니다만...)

최근 제가 관심가지는 분야때문에 그런 건지 모르겠지만 TDD부터 해서 많은 부분에서 켄트벡이라는 이름을 접하게 됩니다. 개인적으로는 한명의 개발자가 전세계적으로 개발이라는 분야에 이토록 큰 영향을 줄 수 있다는 것에 감탄을 하곤 합니다. TDD책에 이어 이 책에서도 켄트벡이라는 사람이 가진 생각과 사상에 감탄하게 되더군요. 이 책을 왜 이제야 읽었나 싶습니다.

켄트벡을 초기에 가치와 원칙을 강조합니다. 가장 중요한 가치를 강조하고 그걸 이루기 위한 실천방법들이 있고 그 가치와 실천방법을 잇는 원칙이 있습니다. 가치는 의사소통, 단순성, 피드백, 용기, 존중을 개발에 있어서 가장 중요한 가치로 두어야 하고 이를 위해서 인간성, 경제성, 상호이익, 자기유사성, 개선, 다양성, 반성, 흐름, 기회, 잉여, 실패, 품질 등등이 있습니다. 그 뒤에 보통 많이 알려진 XP의 실천방법에 대해서 설명하고 있습니다. 흔히 않고 있는 함께 앉기, 짝 프로그래밍, 활력을 유지할 수 있는 만큼만 일하기, 스토리 공유, 10분빌드, 일주일별 주기로 일하기, 지속적 통합, 테스트주도개발, 점진적 설계 등입니다. 각 단계에 대해서 자세히 설명하고 있고 여러가지 상황에 대해서 어떻게 적용을 해야 하는가를 잘 설명해 주고 있다.



책을 읽으면서 느낀 것은 보통 실천방법이 많이 알려져 있는데 실제로 켄트벡이 강조하려고 하는 것은 이 실천방법보다는 가치쪽에 있다는 생각이 듭니다.(물론 켄트벡말대로 너무 추상적이긴 하지만요)  그렇다고 가치만 죽~ 설명하면 말이 안되니까 그걸 지킬수 있게 실청방법을 연구해서 강조한것 인데 켄트벡의 의도와 다르게 우리는 이 실천방법에 더 집중하고 있는듯 합니다.(마음에 와닿는 문서안만들기 같은...)

XP는 절대 그런것이 아니더군요. 오히려 회사가, 조직이 요구하면 문서를 만들어야 한다고 하고 있습니다.(이 역할을 하는것이 PM이죠.) 우린 XP야 하고 독불장군으로 지내는게 아니라 성공적이 프로젝트를 위해서 모든 것을 인정하고 그것에 대해서 대응할 수 있는 극단적으로 적극적인 방법론 이라는 생각이 듭니다. 실제로 책에서도 "우리의 목표는 성공적이고 만족을 주는 인간관계와 프로젝트이지 XP클럽 회원이 되는 게 아니다(켄트벡)"라고 하고 있습니다.



책을 읽으면서 내내 많은 생각이 들었습니다. 어떻게 사람이 이렇게 현실적으로 생각할 수 있을까 하는 감탄과 함께 개발자가 가지고 있는 일반적인 폐쇄성 또는 개발중심적 사고까지도 깨져버리는 느낌이었습니다. 이런 아무도 보지 않을 문서작업을 하는 것에 짜증나곤 하지만 그렇다고 그거에 거부해서 조직 또는 인간관계가 무너지고 혼자서 개발만 하려고 하는것도 전혀 XP다운 생각이 아니었습니다.(좀 찔리는군요) 켄트벡이 말하고자 하는건 훨씬 크게 보는 것이었고 요즘 제가 처한 상황도 있고 해서 많이 공감이 갔습니다.

XP가, TDD가, SVN이 이렇게 좋은데 도대체 왜 안한다는거야?라고 생각하는 것이 아니라 이 팀에서 조금더 효율적으로 성공적으로 개발할려면 뭘 하는게 좋을까 라고 생각하는 게 맞는것 같습니다. 어느새 스스로 제 사고의 폭을 좁혀버렸던것 같은 생각이 들고 있습니다.



인상적인 몇마디...
"나는 다른사람들보다 똑똑하니까 내 능력을 발휘하려면 나를 혼자 내버려 두기만 하면 돼." 같은 사춘기적 앳된 자신감을 넘어서는 것에 대한 이야기다.

갈등이 없는 팀은 없다. 관건은 갈등을 생산적으로 풀 수 있는가다.

변화는 반드시 일어나기 때문에 문제가 되는 것은 변화가 아니다. 그보다는 변화를 극복하지 못하는 우리의 무능력이 문제다.
실용주의 프로그래머를 읽었을때도 그런느낌이 있었는데 "아~ 그렇구나"하고 이해하고 넘어갈 책은 아니라고 생각합니다. 이책을 보고 뭔가라도 해보려고 노력하는게 켄트벡이 바라던 일이라고 생각합니다.(현실은...)

개인적으로 애자일이 약간은 이상론이라고 생각합니다. 온갖 칭찬을 써놓았지만 XP도 아직은 약간 같은 생각을 가지고 있습니다. 큰 그림이 아닌 실천방법에 대한거죠. 많은 부분에 공감하지만 우리의 현실은 책에 써놓은 것보다 훨씬 다양하고 많은 예외사항을 겪게 됩니다. 실천해야지 하면서도 "어떻게?"하면 좀 막막한게 사실입니다. 하지만 그 의도자체는 크게 공감하고 있기 때문에 계속 고민하고 노력을 하면 뭔가 더 보이지 않을까 합니다. 이제 막 XP에 발을 들여놓은 입장이니까요...
2009/03/27 02:16 2009/03/27 02:16