1. eXtreme Process (XP)
- 짧은 주기의 Iteration을 통해 요구변화에 신속하게 대응할 수 있는 경량 방법론 (애자일 방법론)
- Kent Beck이 만들었으며, 그는 애자일을 선언한 17명의 개발자 중 한명이다.
1) XP의 장점
- 신속한 개발 : RUP같은 프로세스는 산출물 부담(UML)으로 신속한 개발 불가
- Time to market : 빠른 시장대응 능력 향상, 시장에 적시배포가 가능함
- 유연한 대처 : 고전적인 프로세스 중심의 전통 방법론은 빠른시장에 대응하기 힘듬
- 생산성 향상 : 개발자, 관리자, 고객을 하나의 팀으로 생각해서 조화로 인해 개발 생산성 향상
2) XP의 특징 (개발 면에서 유용한것만, 40시간 근무.. 이런거 뺐음)
- 점진적 계획 : 계획(스토리)을 빨리 만들어서 일단 개발 시작후에 개발중에 계획이 진화됨
- 점진적 릴리즈 : 다른 점진적 개발 프로세스처럼 짧은 주기동안 개발하고 릴리즈하여 피드백 확보
- 테스트 드리븐 : 프로그램을 만들기 전에 테스트코드를 먼저 짜고 조건에 맞춰 프로그래밍 (TDD)
- 짝프로그래밍 : 때로는 한 컴퓨터에서 두명의 개발자가 개발에 임함 -> 모든 코드가 코드리뷰됨
- 지속적 통합 : Continuous Integration을 지향한다. 언제라고 할 것없이 개발하면 통합한다.
- 리팩토링 : 프로젝트 동안 계속 리팩토링하여 설계를 더 나은 방식으로 향상시킨다.
2. XP의 과정
1) 유저스토리 (사용자스토리)
- 사용자의 요구사항을 적어놓은 것으로, 스크럼의 사용자스토리와 동일.
- XP버전 Usecase라고 볼 수 있으나, 형식이 없고 간단한 문장임 (e.g. 사용자는 현금을 인출한다),
- 사용자 스토리는 사용자의 입자에서 적혀야하며, 개발자 입장에서 재해석해서 적으면 안됨.
2) 스파이크 / 구조적 스파이크
- 기술적, 설계적 위험을 탐지하기 위해 프로젝트 시작전에 핵심기능을 간단하게
- 만들어봄으로서 이게 진짜 되는건지 아니면 안될지, 오래걸릴지 미리 구현해보는 것임.
- 핵심 기능 이외의 것은 신경쓰지 말고 전부 배제하고 최대로 간단하게 만듬
3) 릴리즈 계획
- 릴리즈 시점에 대한 일정을 수립하고, 각 주기에 개발할 스토리를 유저가 선택하게끔 함.
- 이 때 스파이크를 계속 만들어보면서 얼마나 이 프로젝트가 어렵고 오래걸릴지 예측해봄.
4) 주기 개발
- 사용자스토리와 만들어놓은 스파이크들을 활용하여 개발을 시작한다.
- 각 주기는 1~4주 정도가 적당하며 각 주기의 길이가 비슷한 것이 좋다.
- 개발 중에 사용자 스토리가 새로 추가되거나 업데이트 될 수 있다.
5) 인수(승인) 테스트
- 주기가 시작되면 동시에 고객이 스토리를 참고해서 테스트 시나리오를 만든다.
- 사용자가 테스트 시나리오를 바탕으로 인수 테스트 코드를 작성한다.
- 인수 테스트는 블랙박스 테스트이다. (내부 동작이나 로직을 모르는 상태에서 만듬)
- 인수테스트를 반드시 통과해야 유저스토리 처리가 완료된다.
- 주어진 스토리가 인수테스트를 모두 통과하면 작은 릴리즈를 실시한다.
3. XP 프로세스 정리
- 스토리/스파이크 → 릴리즈계획 → 주기 → 인수테스트 → 릴리즈
- 주기 중 스토리 업데이트되면 릴리즈 계획단계로, 인수테스트 중 오류나면 주기 단계로
- 릴리즈계획, 주기, 인스테스트를 거의 동시에 진행하면서 왔다갔다 한다. (3주정도)
4. Reference
XP 개발방법론
1. 코딩보다 테스트를 먼저 하는 방법론 XP(eXtreme Programming) 가. Xp(eXtreme Programming)의 정의 - 소프트웨어를 개발하기 위한 가볍고 효율적이며 낮은 위험도를 가진 방법론 - 고객이 원하는 소프트웨��
stechstar.tistory.com
XP 개발방법론
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 우리가 가장 중요하게 여기는 것은 제 시간에, 지속적으로 가치 있는 소프트웨어를 인도함으로..
openbee.kr
XP(eXtreme Programming)
XP(eXtreme Programming) - 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법 - 짧고 반복적인 개발 주기, 단순
tkdrms568.tistory.com
XP(eXtreme Programming) 기법
# XP(eXtreme Programming) 기법 * XP(eXtreme Programming), 익스트림 프로그래밍 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법 -
heeya7.tistory.com
'소프트웨어공학' 카테고리의 다른 글
프로세스 (7) - 애자일 프로세스 모델 (2) - 스크럼 (Scrum) (0) | 2020.05.13 |
---|---|
프로세스 (6) - 애자일 프로세스 모델 (1) - 선언문(Manifesto) (0) | 2020.05.13 |
프로세스 (5) - 점진적 프로세스 모델 (2) - UP / RUP (0) | 2020.05.13 |
프로세스 (4) - 점진적 프로세스 모델 (1) - 증분 / 진화 / 나선형 (0) | 2020.05.13 |
프로세스 (3) - 선형적 프로세스 모델 - 폭포수 / V / 프로토타입 (0) | 2020.04.14 |
프로세스 (2) - 프로세스의 각 단계 (0) | 2020.04.14 |
프로세스 (1) - 프로세스란 무엇인가? (0) | 2020.04.14 |