반응형

1. xp란?

- 모호하고 빠르게 변하는 요구사항을 가지고 일을 하는 중소규모 팀을 위한 경량화된 방법론이다.

 

xp의 특징으로는

* 5명에서 10명 정도로 구성된 프로그래머가 고객과 함께 한 장소에서 일한다.

* 개발은 점진적으로 자주 이뤄지고 각 단계마다 산출물의 기능을 덧붙여 나간다.

* 요구사항 정의 시에는 사용자가 요구하는 새로운 기능을 스토리 형태로 구체적으로 작성한다.

* 프로그래머는 엄격한 코딩 규칙을 준수하고 짝을 이뤄 일하며 단위테스트를 실시한다.

* 요구사항, 아키텍쳐, 디자인은 프로젝트 중간에 언제든지 발생한다.

 

2. xp의 논쟁거리

- xp에서는 초기에 설계를 끝내고 진행하는 스타일(BUFD, Big Up-Front Design)을 지양한다.

- 짝(pair)프로그래밍

- TDD

 

3. xp의 무엇이 그토록 익스트림한 요소일까?

- 짝(pair)프로그래밍

- 사용자 기능 테스트.

- 리팩토링

- 가장 단순한 것이 작업을 가능케 한다.

- 메타포어.

- 지속적 통합.

 

4. xp의 기본 원리

xp의 단순성, 리팩토링, 전반부 설계의 최소화에서 알 수 있듯이, xp는 폭포수 모델이나 다른 방법론에서 기본적으로 갖고 있는 몇 가지 기본개념을 부정한다. xp에서 제공하는 여러 가지 활동(최신 프로그래밍 테크닉, 언어, 도구, 프로젝트 세분화)을 사용해 새롭게 개발되는 애플리케이션들은 비용을 효과적으로 분산할 수 있으며 짧은 주기로 좀더 나은 솔루션을 제공할 수 있다. 전통적인 소프트웨어 개발에서 분석에 많은 시간과 비용을 들였다면 xp에서는 코드를 작성하면서 잘못된 부분을 직접 발견하고 수정하면서 비용을 최소화한다.

 

5. xp의 가치와 원칙, 활동

- xp의 5가지 핵심 가치

* 의사소통(communication)

* 단순성(simplicity)

* 피드백(feedback)

* 용기(courage)

* 존중(respect)

 

- 기본원리

* 사람(humanity)

* 반성(reflection)

* 품질(quality)

* 잔걸음(baby step)

 

- 주요활동 13

* 함께 앉으라(sit together)

* 하나의 팀(whole team)

* 정보를 제공하는 작업공간(informative workspace)

* 열정적인 작업(energized work)

* 짝프로그래밍

* 스토리

* 주 단위 주기

* 사분기 주기

* 느슨함(slack)

* 10분 빌드(ten-minute build)

* 지속적인 통합

* 테스트 우선 프로그래밍

* 점진적인 설계

 

6.  xp 프로세스 모델

* user stories - 릴리즈할 때까지 앞으로 구현해야 될 기능들을 이야기한다.

* architectural spikes - 팀이 설계를 하거나 리팩토링을 하거나 새로운 기술을 적용실킬 때 그 바탕이 되는 것을 말한다.

 

위 2가지는 릴리스계획의 입력이 된다. 그리고 반복을 통해 인수테스트(acceptance test)에 이르며 user stories 와 비교되며 기능들이 검사된다. 이 프로세스의 결과로 고객이 제시하는 문제점에 대해 빠르게 대응하여 설명할 수 있는 작은 릴리스들이 나온다.

 

7. 방법론의 적용성

xp의 큰 프로젝트에서의 적용은 - 풀어야 할 문제의 규모가 작지 않다면, 충분히 작은 크기로 업무를 나눈 다음에 이를 소규모 팀들이 각각 맡아 해결하게 하면 된다.

 

xp는 끊임없는 의사소통, 협력, 꾸준한 코딩과 테스팅이 필요로 하므로, 기존 방법론에 비해 프로그래머나 테스터의 업무 강도는 훨씬 높으며, 초과 근무가 잦아지면 생산성을 급격히 낮아진다.

반응형

+ Recent posts