1장. XP란 무엇인가?
- XP는 오래되고 효과가 없는 사회적 습관들을 버리고 효과 있는 새로운 습관들을 채택하는 것이다.
- XP는 오늘 내가 기울인 모든 노력에 대해 자신을 인정해 주는 것이다.
- XP는 내일은 좀더 잘해보려고 애쓰는 것이다.
- XP는 팀 전체가 공유하는 목표에 내가 얼마나 기여했는지를 잣대로 자신을 평가하는 것이다.
- XP는 소프트웨어 개발을 하는 중에도 여러분의 인간적 욕구 가운데 일부를 채우겠다고 요구하는 것이다.
이런 변화를 불러일으키기 위해 무엇을 해야 할까? 그게 경제적으로 효과가 있는 것이기는 할까? 이 책의 나머지 부분에서 그런 것들을 탐구할 것이다.
이 책은 두 부분으로 나뉘어 있다.
- 실용적인 부분. 인간적 욕구들을 감안할 뿐 아니라 충족도 시켜주는 소프트웨어 개발 실천 및 사고 방법을 설명한다.
- XP의 철학적, 역사적 뿌리를 다루고, XP를 현재의 맥락 속에 위치시킨다.
1부. XP 탐험하기
2장. 운전하는 법 배우기
운전은 그냥 목적지를 맞추어두고 그대로 두는게 아니다. 계속 신경을 쓰면서 이쪽으로 조금, 저쪽으로 조금씩 방향을 고치면서 가는 것이다.
이것이 XP의 패러다임이다. 깨어 있고 적응하며 변하는 것.
소프트웨어의 모든 것은 변한다. 요구사항도, 설계도, 비즈니스도, 기술도, 팀도. 변화는 반드시 일어나기 때문에, 문제가 되는 것은 변화 자체가 아니다. 변화를 극복하지 못하는 우리의 무능력이 문제다.
운전 메타포는 XP에 두 가지 차원으로 적용된다. 고객은 시스템 내용의 방향을 결정한다. 그리고 개발 팀은 개발 프로세스의 방향을 결정한다. XP는 작은 수정을 빈번히 하도록 한다. 그러면 변화에 적응할 수 있고, 잘못된 길에 들어섰을 때 금방 알아차릴 수 있다.
고객이 시스템 내용의 방향키를 잡듯, 전체 개발팀은 개발 프로세스의 방향키를 잡는데, 이것은 현재 쓰는 실천들의 집합에서 시작된다. 개발을 진행하면서 팀은 현재 자기네 프랙티스 중 어떤 것이 팀을 목표 쪽으로 이끄는지, 어떤 것이 멀어지게 하는지 깨닫는다. 프랙티스 하나하나가 효율성, 의사소통, 자신감, 생산성을 개선하는 실험이다.
3장. 가치, 원칙, 실천방법
정원을 가꾸는 기본적인 기술들은 책 한 권만 읽으면 쉽게 익힐 수 있지만, 그것만으로는 정원사가 되지는 못한다. 전문가와 그렇지 않은 사람의 차이는 무엇일까?
4장. 가치
5장. 원칙
6장. 실천방법
7장. 기본 실천방법
8장. 시작하기
9장. 보조 실천방법
10장. 전체 XP팀
11장. 제약이론
12장. 계획 짜기: 범위를 관리하기
13장. 테스트: 일찍, 자주, 자동화
14장. 설계하기: 시간의 가치
15장. XP 확장
16장. 인터뷰
2부. XP의 철학
17장. 창조 이야기
18장. 테일러주의와 소프트웨어
19장. 도요타 생산 시스템
20장. XP 적용하기
21장. 순수성
22장. 해외 개발
23장. 시간이 지나도 변치 않는 프로그래밍 방식
24장. 공동체와 XP
25장. 결론