본문 바로가기
IT의 모든것/소프트웨어공학

XP(eXtreme Programming) 정의, 구성요소 ,특징

by coldbrew_ 2023. 6. 21.

XP(eXtreme Programming)은 애자일 소프트웨어 개발 방법론 중 하나로, 고객의 요구사항 변화에 빠르게 대응하여 원하는 소프트웨어를 빠르게 제공하는 프로그래밍 중심의 방법론입니다.

XP의 정의

XP는 고객의 요구사항을 적극적으로 수용하고 대응하기 위해 개발 과정에 프로그래밍을 중심으로 한 방법론입니다.

 

작은 단위로 프로그래밍을 배포하고, 짧은 주기의 반복적인 개발을 추구하는 특징을 가지고 있습니다.

XP의 구성요소

XP는 다음과 같은 구성요소를 가지고 있습니다.

1. 유저 스토리 (User Story)

  • 정의: 기능 단위로 사용자가 필요한 내용을 간단하게 기재한 요구사항
  • 목적: 요구사항 수집, 의사소통 도구, 릴리즈 계획 작성, 인수 테스트에 사용됨

2. 스파이크 (Spike)

  • 정의: 어려운 요구사항이나 잠재적인 솔루션을 고려하기 위해 작성하는 간단한 프로그램
  • 목적: 유저 스토리의 신뢰성 증대, 기술적인 문제의 위험 감소

3. 배포 계획 (Release Planning)

  • 정의: 전체 프로젝트에 대한 배포 계획 수립
  • 목적: 의사결정을 위한 프로젝트 내 모든 요소의 규칙 정의, 프로젝트 수행을 위한 방법 정의

4. 반복 (Iteration)

  • 정의: 사용자 요구사항 변경이나 기술적인 문제 등을 1~2주 단위로 나누어 반복
  • 목적: 프로세스 평가, 계획 단순화, 신뢰성 증대

5. 인수 테스트 (Acceptance Test)

  • 정의: 릴리즈 전에 사용자(고객)가 직접 수행하는 테스트
  • 목적: 유저 스토리 반영 여부 확인, 사용자 직접 진척 상황 확인

6. 작업 배포 (Small Release)

  • 정의: XP 주기의 마지막 단계로 고객에게 이득을 조기 제공하기 위한 소규모의 빈번한 배포
  • 목적: 사용자에게 효용 제공, 프로그램에 빠른 피드백 제공

XP의 특징 - 5가지 핵심가치(Core Value)

  1. 용기 (Courage): 고객의 요구사항 변경에 적극적으로 대처하고 진척사항과 추정에 대한 사실 전달
  2. 단순성 (Simplicity): 필요한 것과 요구한 것만 수행하며, 부가적인 기능과 미사용 구조/알고리즘 배제
  3. 의사소통 (Communication): 개발자, 관리자, 고객 간의 원활한 의사소통, 요구사항부터 소스코드까지 함께 수행
  4. 피드백 (Feedback): 지속적이고 반복적인 배포와 제품 데모를 통해 의견 수렴, 프로젝트와 프로세스 변경에 대한 의견 교환
  5. 존중 (Respect): 모든 프로젝트 관계자는 가치 있는 팀원으로 대우, 고객, 개발팀, 경영진 상호간의 존중

12가지 실천 방법(Practice)

  • 개발: Pair Programming, Collective Ownership, Continuous Integration
  • 관리: Planning Game, Small Release, System Metaphor
  • 구현: Simple Design, Test Driven Development, Refactoring
  • 환경: 40-Hour per week, On-Site Customer
  • 기타: Coding Standards

XP는 다른 애자일 방법론과 비교하여 테스트에 대한 강조로 TDD(Test Driven Development)를 실천 방법으로 채택하고 있습니다.

이와 같은 XP의 특징을 통해 팀은 핵심가치와 실천 방법을 지키며 빠르고 유연하게 소프트웨어를 개발할 수 있습니다.

댓글