XP 개발 주기의 개괄

XP에서의 기본 전제는 고객과 개발자가 함께 진정한 가치를 지닌 소프트웨어를 만들어 나간다는 것이다. 고객은 XP 프로젝트의 개발 주기에 따라서 사업적 가치를 창출해내기 위해서 개발팀에 방향을 제시해 준다. 고객이 프로젝트에 능동적으로 참여하는 것이다.


Snap6.jpg 이 그림은 XP 개발 주기가 지속적으로 가치를 정의하고 만들어 가는 과정임을 보여준다. 이 과정은 이전의 패러다임과 다를 것이 하나도 없어 보인다. 모든 개발에서 고객은 가치를 정의하고 개발자는 가치를 만들어 낸다. XP에서의 차이점은 그런 주기가 매우 짧게 일어난다는 것이다. 개발팀은 새로운 기능을 매 분, 매 시간마다 만들어 낸다. 이것이 고객에게 프로젝트를 보완하고 수정할 수 있는 여지를 제공한다.












단계설명
조사 기간 프로젝트 시작, 추상적 수준의 사용자 요구분석, 기술적인 프로토타이핑
계획 작업의 우선순위 부여, 릴리즈 단위로의 분할, 초기 계획 작성
이터레이션(iteration) 시스템의 개발과 테스트, 2차로 작업을 나누어 이터레이션 계획 수립, 실 사용자가 이 단계에서 ㅇ이너페이스를 개량하고 사용 편의성을 확인하기 위해 일할 수 있다.
제품화 고객의 작업 환경에 소프트웨어를 설치
유지 보수 지속적 유지, 보수, 기능 향상


XP 프로젝트는 고객의 제품에 대한 시각을 우선 릴리즈 단위로 나누고 다시 릴리즈를 이터레이션 단위로 나눈다. 계획 단계는 프로젝트가 진행됨에 따라 점차 상세화, 발전되는 과정으로 인식된다.


Snap2(1).jpg 각각의 이터레이션에서 새 코드를 작성해서 통합될 때마다 build가 이루어지게 된다. 빌드의 수는 사용되는 기술의 종류와 팀에서 채택한 개발 스타일에 따라 다르다. 그렇다면 릴리즈와 이터레이션의 주된 차이점은 무엇인가? 릴리즈 단위가 끝날 때면 개발진은 작동하는 소프트웨어를 고객에게 넘겨주는 반면 이터레이션에서는 개발팀 내부적인 확인만 이루어진다. 이런 식으로 개발팀에 상주하는 고객과 개발자 사이에서 프로젝트의 진행 정도를 확인하고 조절하게 된다.





build는 시스템의 구성요소가 하나로 통합되어서 제대로 작동하는지 테스트하는 과정이다.


[그림 4.3]은 XP 가 가진 이터레이션 중심의 특징을 보여준다. 

Snap3(1).jpg 조사 이후에 개발팀은 릴리즈 계획을 세우고 소프트웨어가 완성되어 제품화 준비를 할 때 까지 이터레이션 작업을 계속하게 된다. 제품화나 각 릴리즈의 종료 시점에서는 소프트웨어가 작업 현장에 투입되어서 테스트된다. 제품화는 그 소프트웨어를 사용하여 실제 사업적 가치를 얻기 시작한다는 점에서 중요하다. 제품화가 이루어진 후의 다른 특성은 이제 제품의 문제로 생기는 비용이 훨씬 커진다는 것이다. 이 때문에 신중한 고객들은 최종 점검 테스트를 한다.




'SE > agile' 카테고리의 다른 글

UML: 클래스 다이어그램 기초  (0) 2010.07.08
Observer Pattern  (0) 2010.06.18
① 사용자 요구조건 조사  (0) 2010.03.18
01] XP 정의, 4개 구성  (0) 2010.03.18

+ Recent posts