XP(eXtreme Programming)

비즈니스 상의 요구 변동이 심한 경우 적합한 개발 방법이다

애자일 개발 프로세스의 대표적인 하나로 꼽힌다

짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극적인 참여를 통해 소프트웨어를 빠르게 개발하는 것이 목적이다

비교적 작은 규모의 인원의 개발 프로젝트에 적용하기 좋으며 개발 문서보다는 소스코드를, 조직적인 개발 보다는 개개인의 책임과 용기에 중점을 두는 경향이 있다

릴리즈의 기간을 짧게 반복아혀 고객의 요구사항 반영에 대한 가시성을 높인다

 

XP의 가치

의사소통, 단순성, 피드백, 용기, 존중

 

XP의 원칙

인간성, 경제성, 상호이익, 자기 유사성, 개선, 다양성, 반성, 흐름, 잉여, 실패, 품질

 

XP의 실천방법

Whole Team 모든 프로젝트에 참여하는 팀원들을 가리켜 개개인의 역할이 있고, 역할의 중요성을 이야기한다
Planning Game XP에서 계획을 세우는데에는 이번 반복(iteration) 어떤 개발과정을 끝낼것인가, 개발 반복무엇을 할 것인가가 있다
Customer Tests 사용자의 요구사항에 부함하는 소프트웨어 만들기
Small Releases 릴리즈 기간을 짧게 반복하여 주기적으로 프로토 타입을 의뢰인에게 보여준다
Simple Design 코딩을 가능한 간단하게 한다
Test-Driven Development 테스트를 기반으로 하여 개발한다
Pair Programming 두명 혹은 그 이상의 프로그래머가 함께 코딩을 한다

 

XP 개발 프로세스

 

유저스토리(사용자스토리)

- 고객의 요구사항을 적어논 것

- 사용자의 입장에서 적으며 개발자 입장에서 재해석 해서는 안된다

 

릴리즈 계획

- 개발 완료 시점에 대한 일정을 수립한다

 

스파이크

- 요구사항의 신뢰를 높이고 기술 문제 위험을 감소시키기 위해 별도로 만드는 간단한 프로그램

- 핵심 기능 이외에는 모두 무시하고 최대한 간단하게 작성한다

 

이터레이션

- 하나의 릴리즈를 더 세분화 한 단위

- 이 기간 중에 새로운 스토리가 작성될 수 있으며, 작성된 스토리는 진행 중인 이터레이션 혹은 다음 이터레이션에 포함될 수있다

 

승인검사

- 부분 완료 제품이 구현되면 수행한다

- 사용자가 직접 작성한 시나리오를 바탕으로 테스트 코드를 작성한다

- 테스트를 반드시 통과해야 유저스토리 처리가 완료된다

- 테스트가 완료되면 다음 이터레이션을 진행한다

 

소규모 릴리즈

- 릴리즈를 소규모로 진행하며 고객의 반응을 기능별로 확인할 수 있다

반응형

+ Recent posts