투덜이 블로그
by 투덜이
카테고리
이전블로그
Extreme Programming Applied

Extreme Programming Applied: Playing to Win
by Ken Auer, Roy Miller
Paperback: 384 pages
Dimensions (in inches): 0.75 x 9.18 x 7.38
Publisher: Addison-Wesley Pub Co; 1st edition (October 1, 2001)
ISBN: 0201616408

세번째 읽는 XP 관련 책이다. 이런 책을 계속 읽는 것을 보면 프로그램 개발 방법론에 대한 고민이 자못 큰가보다. 어쨋든 지금 상황은 만족스럽지 못하고 이것을 어떻게든 극복해 보려고 하니 고민이 많을 수 밖에.

최대의 화두는 agility 라고 할 수 있겠다. 개발자라면 누구나 다 경험하는 일이겠지만 요구 사항은 끊임없이 바뀌고 심지어는 회사의 정체성도 끊임없이 흔들린다. 이런 상황에서 개발자로서 살아남는 최선의 방법은 변화에 기민하게 대응하는 것이다. 변화하는 것에 짜증을 내거나 적응하지 못하는 순간 월급받기 힘들어지고 만다. 그렇담 기민성을 확보하는 방법이 무엇인가. 아직 정답은 없는 것 같다. 더 찾아볼 수 밖에...

이 책은 XP에 대한 책으로 크게 다섯 부분으로 나뉘어 있다.

첫번째 파트에서는 지금 사용하는 소프트웨어 개발 방법론의 문제점이 무엇이고 이를 극복하는 방법은 무엇인지에 대해 다룬다. 현재 사용되는 무거운 소프트웨어 개발 방법론들의 가장 큰 문제점은 최종 결과물이 고정되어 있다는 가정에서 출발해 훌륭한 솔루션을 제공하는 것과는 전혀 상관없는 일에 개발자들을 끊이 없이 매달리게 한다는 것이다. 최종 결과물을 고정된 것으로 가정하기 때문에 광범위하게 요구사항을 분석하고 이를 바탕으로 시스템을 디자인하게 된다. 하지만 현실은 그렇지 않다. 요구사항은 끊임 없이 변화하고, 이에 맞추어 미리 디자인한 시스템을 변경하기는 점점 어려워진다. 결국 개발 종료단계에 이르면 변경에 따른 비용이 기하급수적으로 늘어나 프로젝트는 실패하게 된다. 그렇다면 끊임없이 변화하는 상황에서 승리하기 위한 방법(playing to win)은 무엇인가? 그것은 프로젝트의 목표가 끊임없이 변화할 수 있다는 사실을 받아들이고 이러한 변화로 인해 발생하는 비용을 작게 만드는 것이다. 저자들은 XP가 이런 방법론이라고 주장한다.

두번째 파트에서는 XP를 시작하기 위해 필요한 사항들을 점검한다. 먼저 XP를 해 보겠다고 마음먹은 개발자들은 해괴한 짓을 한다고 따를 당하더라고 결과를 만들어 내겠다는 용기를 가져야 한다. 왜냐고? 새로운 시도는 항상 사람들을 두려움에 떨게 하고 이러한 두려움을 감당할 수 없는 사람들이 도처에서 해꼬지를 하려고 하기 때문이다. 따라서, 처음부터 독불장군식으로 밀어붙여 될일이 아니라 주변에서 일어날 수 있는 저항을 잘 극복해야 한다. 관리자들은 XP로 인해 발생할 수 있는 위험에 대해 두려움을 느낀다. 따라서 관리자의 목표를 분명히 파악하고, 나는 그것들를 달성하기 위해 필요한 일들을 한다는 믿음을 관리자에게 줘야 한다. 개발자들은 pair 프로그래밍이나 collective code ownership과 같은 부분에 대해 상당히 거부감을 느끼는 데, 이는 뛰어난 개인적 자질을 발휘할 기회를 읽어버릴 수도 있다는 두려움 또는 자신이 무능한 것이 드러나지나 않을까 하는 두려움 때문이다. 따라서 개발자들에게는 한 팀으로서 성공하고 실패하는 것이 결정된다는 점을 강조하고 결국은 높은 품질의 소프트웨어를 만들어냄으로써 승리할 수 있다고 설득하는 것이 중요하다.

세번째 파트에서는 XP를 할 때 핵심적인 사항들을 점검한다. 저자들은 핵심적인 사항으로 Project Planning, Iteration Planning, Test First Development, Pair Programming, Refactoring을 꼽고 있다. 각 사항에 대해 왜 해야하는지, 어떻게 해야 하는지, 언제 해야하는지, 무엇을 해야하는지, 예외적인 상황은 어떻게 대처해야 하는지에 대해 설명하고 있다.

네번째 파트에서는 XP의 나머지 요소들을 설명한다. Simple Design, Collective Code Ownership, On-Site Customer, Acceptance Test, Coding Standard, 40 Hours a Week, Good Metaphor, Coaching or Mentoring, Scoring 에 대한 설명들이 이어지는데, 각각에 대해 왜 하는지, 어떻게 해야하는지, 무엇을 해야 하는지, 그리고 왜 적당한 시간에 시작해야 하는지를 설명한다.

다섯번째 파트에서는 XP를 파는 것에 관한 얘기다. XP를 한다고 장사가 저절로 되는 것이 아니기 때문에, 장사를 하기 위해 필요한 일이 무엇인지에 대한 설명을 한다. Scoring, 벤처기업에 대한 전략, Scalibiling XP, Distributed XP에 대한 설명들이 이어진다.

서번째에서 다섯번째까지는 각 사항에 대한 내용이 너무 많기 때문에 적절한 요약을 하기 어렵다. 관심있는 분은 책을 통해 자세한 내용을 확인하시기를 바란다. 결국 소프트웨어의 위기는 해결되지 않았으며, 수많은 방법론이 등장했지만 아직 이렇다할 주목할만한 결과를 보여주는 방법론은 없는 것 같다. XP는 이제 시작된지 얼마 않되는 방법론으로서 비전통적인 접근 때문에 많은 관심과 비난을 동시에 받는 처지인데, 결국 저자들이 말하듯 결과물이 말을 해 줄 것이라 믿는다. 5~6년이 지난 뒤 XP 팀들이 만들어내는 결과가 방법론의 우열을 말해줄 것이기 때문이다.

XP에 관심있는 분은 반드시 읽어야 할 책.

(2004. 08. 07)
by 투덜이 | 2004/08/07 00:40 | 독서하기 | 트랙백(1)
Tracked from Younghoe.Info at 2006/10/25 15:58

제목 : 코드 소유권(Code Ownership)
코드의 소유권(Code Ownership)은 다양한 형태로 나타난다. 이들은 크게 세 가지 범주로 나눠볼 수 있다:강한 코드 소유권 코드 기반을 클래스, 함수나 파일 등의 모듈로 나눠서 개별 모듈을 특정 개발자에게 할당하는 방식. 개발자는 자기가 소유한 모듈에 대해서만 변경을 허용받는다. 다른 사람의 모듈에 변경이 필요한 경우는 이를 요청한다. 빨리 수정을 하게 하려면 패치를 작성해서 코드 소유자에게 보낼 수 있다. 약한 코드 소유권 은 모듈을......more

< 이전페이지 다음페이지 >


이글루링크
최근 등록된 덧글
●달통위젯을 사용해 보..
by 보름달 at 10/11
"세상 속 꿈 찾기...*"란..
by Stefan at 07/06
尹氏曰, "君子求在我者..
by 투덜이 at 04/03
愚按, 此章問答, 其淺..
by 투덜이 at 03/22
往者, 其所已言者. 來者..
by 투덜이 at 03/22
詩衛風淇澳之篇, 言治..
by 투덜이 at 03/22
諂, 卑屈也. 驕, 矜肆也..
by 투덜이 at 03/22
尹氏曰, "君子之學, ..
by 투덜이 at 03/21
不求安飽者, 志有在而..
by 투덜이 at 03/21
信, 約信也. 義者, 事..
by 투덜이 at 03/20
최근 등록된 트랙백
코드 소유권(Code Own..
by Younghoe.Info
[펌] 이름을 어떻게 ..
by Smalltalk로 하는 객체지..
피플웨어
by 투덜이 블로그
프로그래머. 어떻게 살..
by 써니의 一生牛步行
Windows Vista Beta 1..
by 아크몬드의 비스타블로그
팟캐스팅(Podcastin..
by Podcasting! 팟캐스..
메모장
rss

skin by 이글루스