Extreme Programming - 1
Chap 1. XP란 무엇인가?
1. XP는...
- 과거에는 잘 통했지만 지금은 일을 최고로 잘 하려고 하는데 방해가 되는 습관과 양식을 버리는 것
- 우리가 할 수 있는 게 무엇인지 공개한 다음 그걸 해내는 것에 대한 이야기
- 우리가 될 수 있는 최고의 자신을 향해 나아가면서 그 과정에서 개발자로서 최고가 되는 것에 대한 이야기
- 프로그래밍 기법과 명확한 의사소통, 팀워크를 탁월하게 적용하는 것에 집중하는 소프트웨어 개발의 양식
2. XP에 포함되는 것들
- 의사소통, 피드백, 단순성, 용기, 존중 같은 가치들에 바탕을 둔 SW 개발 철학
- SW개발을 개선하는 데 쓸모가 있다고 증명된 실천방법들의 집합
- 상호 보완적인 원칙들. 가치를 실천방법으로 옮기는 지적인 기법들의 집합
- 이 가치들을 공유하고, 동일한 실천방법들 중 상당수를 공유하는 공동체
3. XP가 여타 방법론과 다른 점
- 점진적 계획 접근 방법
- 구현 일정을 유연하게 세워 자주 바뀌는 비즈니스 요구에 대응 가능한 점
- 자동화된 테스트에 의존하는 점
- 구두 전달, 테스트, 소스 코드에 의존하여 시스템 구조와 시스템 의도를 전달하는 점
- 시스템이 존재하는 마지막 순간까지 끝나지 않는 진화적인 설계 절차에 의존하는 점
- 재능은 평범해도 열심히 참여하는 개인들 사이의 긴밀한 협력에 의존하는 점
- 팀 구성원들의 단기적 본능과 프로젝트의 장기적 이해관계 둘 다에 함께 적용될 수 있는
실천방법들에 의존하는 점
* XP에 대한 의문점
- XP에서는 최선을 다하고 그 결과에 대한 책임을 지며, 실패를 준비하지 않는다고 하였다.
그렇다면 실패 확률이 훨씬 높은 프로젝트를 진행하는 동안 XP를 시도하여 실패에 대한
플랜을 세워놓지 않을때와 어느 정도 실패에 대한 대비를 해 놓았을때를 비교하면,
실제 프로젝트가 실패했을 때 어떤 것이 더 효율적이고 합리적인 방안일까?
- 향후 XP적인 방법을 프로젝트에 도입한다고 가정하였을때, XP가 익숙하지 않은 팀원들에게 XP를
적용하여 발생하는 기회비용은 어느 정도까지 감당하는 것이 합리적일까?
적응이 된다면 예전에 비해 효율적일 수는 있겠지만, 과연 그 정도 수준에 이르기까지 어느 정도의
시간적, 인적 비용을 감수해야 할까?
- 약 5년 전 XP의 등장이후, 현재 XP의 개념이 확장되었듯이, 시간의 흐름에 따라 XP의 개념이 바뀐다면
어떤 모습으로 변화될 것이며 그 변화주기는 얼마나 걸릴 것인가?