예전에 읽고 감동을 받았고, 나의 개발에도 많은 영향을 주었던 XP...
완전히 새롭게 2판이 나왔다고 해서 망설임없이 구입을 했다. 더욱이 1판은 술마시다가 놓고 와서 잊어버리는 바람에...-_-;;;
책 내용은 당연히 추천한다. 정말 괜찮다. 그러나 1판에 비해서 실전적이기보다는 상당히 개념적인 방향으로 흐르는것 같고, 번역도 약간 잘 읽히지가 않는듯한 느낌이 든다. 그리고 페이지마다 공백을 엄청 늘리고, 백지도 여기저기에 끝에는 쓸데없는 추천도서로 150페이지 내외면 충분했을 책을 250페이지로 늘리고, 책값은 무려 만칠천냥... 좀 이마살이 찌푸러졌다. 띠발...
개인적으로 1판을 보고, 2판은 그냥 서점에서 한번 훌터보는것이 좋을듯하다. 1판이 절판이 안되었다면...
암튼 얼마전에 봤던 실용주의 프로그래머와 비슷한 맥락으로 개발에 대한 실천적인 내용보다는 어찌보면 자기개발도서가 아닐까라는 생각이 들기도 하는 그런 책이다. 개발을 이렇게 하라라기 보다는, 개발 마인드, 근본적으로 잘못된 생각을 깨부수고, 새롭게 가볍고, 신속하며, 융통성있게 움직일수 있도록 해주는 내용이였다.
비프로그래머 남승희 리뷰 |
비프로그래머 남승희 리뷰 - 감추기
내가 김창준씨의 번역을 도와준 것도 이번이 세번째 책이다. 영어에는 그다지 자신이 없지만 한국어로 자연스러운 문장을 다듬는 법에 대해서는 나름대로 자신있어한 덕분에, 본인의 전공이나 관심사와는 전혀 관련없을 법한 프로그래밍 관련 서적을 몇번씩이나 들여다보게 되었다. 그러면서 윤문이나 교정에 정신이 팔려있는 동안에도 들어올 수밖에 없는 책의 보석같이 귀한 성찰들에 자극받고, 감동받은 적이 많다. 이번 책 <익스트림 프로그래밍> 2판도 그렇다. '코드가 하나도 안 나와서' 일반인들에게 부담없이 다가온다는 것도 좋지만, 무엇보다도 여러 사람이 모여 어떤 일을 할 때, 어떤 식으로 하면 훌륭하게 되는가에 대해서 많은 통찰을 건네준다는 점에서 일반인들에게도 추천하고 싶다. 나의 경우는 팀보다는 혼자서 작업하고 궁리하는 일이 더 많은 사람이고, 혼자서 뭔가하는 데에 익숙하고 그에 따라 나름대로 작품을 만들어내는 데에 있어 노하우나 버릇이 쌓이고 굳어져있는 편이다. 하지만 이 책을 읽으면서 개인이 스스로 개선할 수 있는 점에 대해서도 통찰을 얻을 수 있었고, 또 내가 힘겨워하는, 팀 차원의 작업이나 사업적인 면에 대해서도 조금씩 일말의 희망이 보이면서 용기를 얻게 된 것이 좋았다.
나라는 사람에게 있어 가장 무서운 이 책의 교훈은 아마 다음의 이야기일 것이다. "XP는 우리가 할 수 있는 게 무엇인지 공개한 다음 그걸 해내는 것에 대한 이야기다." 내가 할 수 있는게 무엇인지 공개하는 것, 그것은 예술가로서나 문화비평가로서 자신의 감정과 가치판단, 사상을 공적으로 드러내는 나의 직업상 참으로 두려운 일이다. 완전하고 매끈하게 만들어져 쉽사리 남들이 폄하할 수 없는 모양이 날 때까지는 절대로 공개하고 싶지 않은 심정, 그것을 단순히 완벽주의라고 부를 수는 없다. 단지 자존심과 상처받기 싫어하는 마음의 문제인지, 아니면 본인의 MBTI 성격이 INTJ이고 8체질이 금양인인 때문에 더 강하게 갖는 개성인지 약점인지는 모르겠지만, 이런 내향성과 비공개주의가 내가 더 폭넓게 활동하고 남들과 협업하는 것을 방해하는 큰 장벽이 되는 것은 분명하다. 요즘엔 인터넷을 통해서 글을 많이 쓰게 되고, 특히나 위키를 쓰면서 완성된 글이 아닌 글쓰는 과정중에 있는 글도 남들에게 공개를 할 정도가 되다 보니 예전보다는 많이 나아지긴 했지만, 그래도 역시 나의 능력 범위를 솔직하게 공개하는 것은 용기가 많이 필요한 일이다. 괜히 약속했다가 못 미치면 어떻게 하나 하는 걱정, 또는 요즘 같은 자기피알 시대에 남들처럼 일단 큰 소리 뻥뻥치고 과대포장이라도 하지 않으면 나한테 올 기회가 없지 않을까 하는 걱정 사이에서 갈등하는 소심한 사람이기 때문이다. 그래도 그동안 내가 성취한 것들과 성취하지 못 한 것들을 돌아보고 나의 한계를 반성하면서 개선점을 고민해본 바, 결론은 나의 개성이나 한계는 인정하지만 그래도 거기에 더하여 반대 성향의 중요한 미덕을 갖출 필요가 있다는 것이다. 즉, 남들과 함께 일할 줄 알아야 하고, 남들의 도움을 얻기 위해서는 아직 익지 않은 과정중의 것이라도 내보이고 도움을 청할 필요가 있다는 것이다. 지금보다 더 훌륭해지기 위해서는 말이다. 그래서 XP의 교훈에 마음을 열기로 했다. 이런 성향은 나에게는 좀 강하게 있는 편이지만, 다른 사람에게도 정도의 차이는 있지만 어느 정도씩은 있다고 생각한다. 누구에게나 책임은 무섭고, 안전과 보호를 선호하는 것은 생명체의 특성이기 때문이다. 그러나 XP는 안전하다고 느끼기 위해 방책을 쌓고 들어앉지 말 것을, 다소 노출되었다는 느낌을 받더라도 나서서 같이 일하는 사람들끼리, 그리고 일을 주문한 사람 사이에 최대한 모호한 점이 없는, 투명한 관계를 맺을 것을 말한다. 이 책에서 말하는 XP의 주요 가치인 의사소통, 단순성, 피드백, 용기, 존중을 나는 그렇게 이해했다. 원하는 바가 무엇이고 할 수 있는 것이 무엇인지, 할 수 없는 일을 할 수 있게 하기 위해서는 무엇이 필요한지를 훤하게 드러내는 것, 그러기 위해 최대한 단순하고 효율적인 것, 언제나 말할 수 있는 것, 요청할 수 있는 것, 믿을 수 있는 것, 그것이 XP가 추구하는 문화라고 생각한다. 이는 단지 프로그래밍뿐만 아니라 뭔가를 추구하고 일하는 인간 조직에라면 어디에든지 해당되는 이야기가 아닐까 생각된다. 물론 그뒤로 이어지는 원칙들과 특히나 실천방법들은 다른 분야에서라면 그대로 적용되기가 힘들겠지만, 그럼에도 많은 영감을 줄 수 있다고 나는 본다. <XPE2E>가 혼자 일하는 나를 위해서도 고마운 자극이 되는 점도 많다. 대표적인? 것이 '점진적 설계'와 '아기 발걸음'이다. 머리가 좋은 사람들이나 일을 계획에 맞춰 딱딱 하길 좋아하는 사람들은 언제나 '먼저 설계하기'의 집착에서 벗어나기가 힘들다. 나도 꽤 그런 편인데, 일을 계획에 맞춰 진행하는 일이 거의 없음에도 불구하고 언제나 뭘 먼저 하고 그 다음엔 또 어떻게 할까, 도중에 이게 생각대로 안 되면 그 경우엔 어떻게 할까 등을 끝도 없이 생각하고 고민하는 병이 있다. 그러나 사실 중요한 것은 일단 시작을 하는 것이고, 일을 진행하다 보면 필요하게 되는 것들을 해결하고 결국엔 끝마치게 되는 법이다. 그럼에도 계속 머뭇거리고 미루고 좋은 때를 놓치는 일을 반복하는 나 같은 사람에게 '점진적 설계'와 '아기 발걸음'은 기어이 무거운 엉덩이를 일으키게 만드는 좋은 약이 되어준다. 그외에도 나에게는 버거운 단어인 리더쉽에 대해 몇 가지 빛을 던져준 것이 또한 고마운 일이다. 음악을 하다보니 별수 없이 락밴드의 리더가 되어 '이끌어가는' 행동을 해야할 때가 생기는데, 그 어렵고 생소한 일을 조금이라도 낫게 하고픈 나에게 용기를 내게 만드는 대목들이 있다. "'코치'라는 단어에는 팀의 일부가 되는 것과 독립적인 시야를 가지는 것 사이의 균형을 잡는다는 의미가 들어 있다." "코치는 의사소통에서 병목이 어디인지 알아채고 그것을 해결한다." 흠, 아직 갈 길은 멀지만... 궁극적으로는, '코드 공유'와 같은 수준의 유기적이고 완벽한 밴드가 가능할지도 모른다는 막연한 생각도 해본다. (감히 지금 수준에서 추구하겠다는 말은 아니다.) 예술작품은 소프트웨어와는 많이 다르지만, 팀원간의 믿음과 헌신, 조율과 활력이 중요한 것은 같다. 프로그래밍이나 프로그래머와 관련이 있는 분들, 혹은 관심이 있는 분들, 그리고 활기차게 훌륭한 성과를 내는 인간조직이란 어떤 것일까 하는 물음에 힌트를 얻고자 하는 분들에게 추천한다. |
<도서 정보>제 목 : 애자일 시리즈-002 익스트림 프로그래밍 2판
저 자 : 켄트 벡,신시아 안드레스 공저/김창준,정지호 공역
출판사 : 인사이트
출판일 : 2006년 7월
책정보 : ISBN : 8991268102 | 페이지 : 252
구매처 : Yes24
구매일 : 2006/8/7
일 독 : 2006/9/22
재 독 :
정 리 :
<이것만은 꼭>
<책 읽은 계기>
<미디어 리뷰>
저자 : 켄트 벡(Kent Beck) |
패턴(Pattern), 테스트 주도 개발(Test Driven Development), 익스트림 프로그래밍(Extreme Programming) 같은 아이디어들을 주장하면서 지속적으로 소프트웨어 공학의 교조에 도전하고 있다. 현재 Three Rivers Institute와 Agitar Software에 관련을 맺고 있으며, 'Test Driven Development: by Example', 'Contributing to Eclipse' ‘Planning Extreme Programming’ 등 많은 책의 저자이기도 하다. |
저자 : 신시아 안드레스(Cynthia Andres) |
심리학 석사 학위를 지니고 있으며, 조직 행동론, 의사결정 분석, 여성학 분야를 심화 연구했다. 신시아는 익스트림 프로그래밍의 착상 때부터 XP의 사회적 측면에 관해 켄트와 협력해 왔으며, 또한 Three Rivers Institute와도 관련을 맺고 있다. |
익스트림 프로그래밍(XP)의 목표는 탁월한 소프트웨어 개발이다. 더 낮은 비용, 더 적은 결함, 더 높은 생산성, 더 높은 투자 수익률, 더 행복한 사용자와 고객, 그리고 심지어는 더 행복한 개발자.
1999년에 Extreme Programming Explained 1판이 출판되었다. XP는 당시만 해도 이단아 취급을 받았다. 세상이 받아들이기에는 너무 급진적으로, 그야말로 익스트림하게 보였다. 하지만 지금은 상황이 많이 바뀌었다. 개발자들의 일하는 방식이 알게 모르게 상당히 XP화 되었다. 일례로, 이 책의 저자가 만든 단위 테스트 프레임워크는 이미 업계 표준이 되어서 유명한 오픈 소스 프로젝트 치고 자동화된 테스트를 갖추지 않은 것이 드물어져 버렸다.
IBM, 휴렛패커드, 모토롤라, 구글, 야후, MS 등 유명 기업에서 기민한 방법론을 사용하기 시작했다. 2005년 포레스터 연구소(Forrester Research)에서 발표한 조사 결과에 따르면 XP를 포함한 기민한 방법론(agile software development processes)은 북미 지역과 유럽의 기업들 중 14%가 공식적으로 사용 중이며, 19%의 기업은 기민한 방법론에 관심이 있거나 도입할 예정이라고 한다. 비공식적으로 사용하는 경우를 포함하면 수치는 더 높을 것이다.
학계에서도 XP와 기민한 방법론을 중요한 주제로 고려하고 있다. 소프트웨어 공학 교과서에 XP나 기민한 방법론의 내용이 몇 년 전부터 실리기 시작했고, 콘퍼런스에선 익스트림이나 애자일(agile) 같은 단어가 들리는 것이 전혀 어색하지 않다.
이제 초판이 나오고 5년 만에 두 번째 판이 나왔다. 개정판이라고는 하지만 사실상 완전히 새로 쓴 것이나 다름없다. 저자 켄트 벡은 말한다. 이 개정판은 이전 판을 완전히 대체하는 것이라고. 5년간 켄트 벡의, 그리고 XP 커뮤니티 공동의 경험과 지혜가 책으로 나온 것이다.
두 번째 판의 XP는 더 유연하고 더 강력해졌다.
<책속으로>
1장_ XP란 무엇인가?
1부 XP 탐험하기
2장_ 운전하는 법 배우기
3장_ 가치, 원칙, 실천방법
4장_ 가치
의사소통
단순성
피드백
용기
존중
다른 가치들
5장_ 원칙
인간성
경제성
상호 이익
자기유사성Self-Similarity
개선
다양성
반성Reflection
흐름
기회
잉여
실패
품질
아기 발걸음
받아들인 책임
결론
6장_ 실천방법
함께 앉기
7장_ 기본 실천방법
전체 팀
정보를 제공하는 작업 공간
활기찬 작업
짝 프로그래밍
스토리
일주일별 주기
분기별 주기
여유
10분 빌드
지속적 통합
테스트 우선 프로그래밍
점진적 설계
자 이제는...
8장_ 시작하기
실천방법들의 지도 그리기
결론
진짜 고객 참여
9장_ 보조 실천방법
점진적 배치
팀 지속성
팀 크기 줄이기
근본 원인 분석
코드 공유
코드와 테스트
단일 코드 기반
일일 배치
범위 협상 계약Negotiated Scope Contract
사용별 지불
결론
10장_ 전체 XP 팀
테스터
상호작용 설계자
아키텍트
프로젝트 관리자
제품 관리자
임원
테크니컬 라이터
사용자
프로그래머
인적자원부
역할
11장_ 제약 이론
12장_ 계획 짜기: 범위를 관리하기
13장_ 테스트: 일찍, 자주, 자동화
14장_ 설계하기: 시간의 가치
단순성
15장_ XP 확장
사람 숫자
투자
조직의 크기
시간
문제의 복잡도
해결방안의 복잡도
실패의 결과
결론
16장_ 인터뷰
2부 XP의 철학
17장_ 창조 이야기
18장_ 테일러주의와 소프트웨어
19장_ 도요타 생산 시스템
20장_ XP 적용하기
코치 고르기
언제 XP를 쓰지 말아야 하는가
21장_ 순수성
22장_ 해외 개발
23장_ 시간이 지나도 변치 않는 프로그래밍 방식
24장_ 공동체와 XP
25장_ 결론
주석을 단 참고문헌
철학
마음가짐
창발적인 프로세스
시스템
사람들
프로젝트 관리
프로그래밍
기타