How To Study Extreme Programming

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS

FrontPageakimotoConnectItSolitaire HowToStudyExtremeProgramming

ExtremeProgramming을 어떻게 공부할 것인가

제가 공부한 경험을 토대로 "만약 다시 공부한다면...":

XP를 이해하려면 다음 기본 자료에 대한 이해가 우선되어야 합니다.

  • XP Explained (KentBeck) : XP 선언서
  • XP Installed (RonJeffries et al) : C3 프로젝트에 적용한 예, 얻은 교훈 등
  • Planning XP (KentBeck, MartinFowler) : 계획 부분만 설명 (관리자, 코치용)
  • Refactoring (by MartinFowler) : 리팩토링에 대한 최고의 책
  • XP Applied : 유즈넷과 메일링리스트의 논의 등 최근의 자료를 반영
  • XP Explored : 가장 쉽고 구체적인 XP 안내서

이 중에서 XPI나 XPX를 먼저 권합니다. XPE는 좀 추상적인 서술이 많아서 봐도 느낌이 별로 없을 수 있습니다. (작년 마소 11월호에 제가 쓴 리뷰 참고)

여유가 되면 다음의 자료를 더 참고합니다.

  • The Timeless Way of Building : 패턴 운동을 일으킨 Christopher Alexander의 저작. On-site Customer, Piecemeal Growth, Communication 등의 아이디어가 여기서 왔다.
  • XP in Practice (Robert C. Martin et al) : 두 세 사람이 짧은 기간 동안 간단한 프로젝트를 XP로 진행한 것을 기록. Java 사용. (중요한 문헌은 아님)
  • XP Examined (논문 모음집) : XP 컨퍼런스에 발표된 논문 모음
  • Peopleware (Tom DeMarco) : 개발에 있어 인간 중심적 시각의 고전
  • Adaptive Software Development (Jim Highsmith) : 복잡계 이론을 개발에 적용. 졸트상 수상.
  • Surviving Object-Oriented Projects (Alistair Cockburn) : 얇고 포괄적인 OO 프로젝트 가이드라인
  • Software Project Survival Guide (Steve McConnell) : 조금 더 "SE"적인 시각.
  • The Psychology of Computer Programming (Gerald M. Weinberg) : 프로그래밍에 심리학을 적용한 고전. Egoless Programming이 여기서 나왔다.
  • Agile Software Development (Alistair Cockburn) : 전반적 Agile 방법론에 대한 책
  • Software Craftsmanship (Pete McBreen) : 새로운 프로그래머상
  • Agile Software Development with [http]SCRUM(Schwaber Ken) : 최근 Scalability를 위해 XP+[http]SCRUM의 시도가 agile 쪽의 큰 화두임.
  • Test Driven Development (Kent Beck) : 곧(아마 올해 내에) 출간 예정인 최초의 TDD 서적. TDD를 모르면 XP도 모르는 것. (TDD를 실제 적용하려면 적어도 반년 정도는 계속 훈련해야 함)
  • IEEE Software/Computer, CACM, SdMagazine 등에 실린 기사
  • XP Conference, XP Universe 등의 논문들 (특히 최근 것들)
  • 유즈넷, 메일링 리스트, OriginalWiki의 논의들
특히 다음의 것들은 늘 가까이 하고 있어야 합니다.

위 세 곳을 살필 때, 특히 다음 인물들의 글은 꼭 읽어보고 항상 레이다를 열어둘 것:

  • KentBeck
  • RonJeffries
  • WardCunningham
  • Alistair Cockburn
  • MartinFowler
  • Robert C. Martin (aka Uncle Bob)
  • Michael Feathers
  • Ken Auer
  • William Wake
  • Roy Miller
  • Dave Thomas
  • Andy Hunt
  • Ralph Johnson
  • Scott Ambler
  • Jim Highsmith
  • Joshua Kerievsky
  • Laurent Bossavit
  • John Brewer

KentBeck 스스로가 XP Explained를 만약 다시 쓴다면 뜯어 고치고 싶은 부분이 상당히 된다고 말하는 것을 보아도 알 수 있듯이, 초기 XP 이후 바뀐 점, 보완된 점이 상당수 있습니다. 따라서, 책만으로 XP를 공부하기는 힘듭니다. 지금은 책 속의 XP가 사람들의 머리 속 XP에 한참 뒤쳐져 있습니다.

어찌되었건, XP에는 무술이나 춤, 혹은 악기 연주 등과 유사한 면이 많습니다. 따라서, 글을 보고 그것을 익히기는 쉽지 않습니다. 그나마 메일링 리스트 같은 "대화"를 보면 훨씬 더 많은 것을 얻을 수 있기는 하지만, 태권도 정권 찌르기를 말로 설명해 내는 것이 불가능에 가깝듯이 XP를 언어를 통해 익히기는 정말 어렵습니다. 우리의 언어는 너무도 성글은 미디어입니다. (XP는 매 초, 매 순간 벌어지는 "일상적" 장면 장면의 연속들이 매우 중요합니다.)

기회가 되신다면 주변에서 XP를 직접 사용하는 곳을 방문해서 하루만 같이 생활해 보시기를 권합니다. 반년 공부를 앞당겨 줄 수 있습니다.

이게 힘들면 같이 스터디를 하는 방법이 있습니다(see also 스터디그룹패턴). 이 때 같이 책을 공부하거나 하는 것은 시간 낭비가 많습니다. 차라리 공부는 미리 다 해오고 만나서 토론을 하거나 아니면 직접 실험을 해보는 것이 훨씬 좋습니다 -- 두사람 당 한대의 컴퓨터와 커대란 화이트 보드를 옆에 두고 말이죠. 제 경우 스터디 팀과 함께 저녁 시간마다 가상 XP 프로젝트를 많이 진행했고, 짤막짤막하게 프로그래밍 세션도 많이 가졌습니다.

나중에 회사에서 직접 XP를 사용할 때 많은 도움이 되었습니다.

--김창준



"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>