XP 방법론: Difference between revisions

From CS Wiki
No edit summary
(익스트림 프로그래밍 문서로 넘겨주기)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
;eXtreme Programming
#넘겨주기 [[익스트림 프로그래밍]]
;애자일 방법론 중 하나로, 비즈니스 상의 요구가 시시각각 변동이 심한 소규모 프로젝트에 적합한 개발 방법론
 
* 10~12개 정도의 구체적인 실천 방법(Practice)을 정의
* 짧은 주기로 여러번 고객에게 납품 반복
* 개발 문서 보다는 소스코드를, 조직적인 개발 보다는 개개인의 책임과 용기를 중시
 
== 장단점 ==
* 장점
** 문서 작성 최소화로 개발 효율 증가
** 의사소통과 빠른 피드백을 통한 소프트웨어 품질 향상
* 단점
** 대규모 프로젝트엔 적용 어려움
** 참여하는 개인의 성향에 따라 프로젝트의 품질 차이 발생
 
== 핵심 가치 ==
[http://www.extremeprogramming.org/values.html 출처]
* '''용기''': 문서로 변명하기 보단 진실되고 용기있게 개발
* '''존중''': 개발자의 역량을 존중하고 충분한 권한과 권리 부여
* '''의사소통''': 이해관계자 모두가 팀원이라는 생각으로 모든 사항 공유
* '''피드백''': 의사소통에 따른 즉각적인 피드백
* '''단순성''': 필요한 것은 하지만 더이상은 하지 않음
 
== 절차 ==
{| class="wikitable"
|  User Stories
|  ▶
| rowspan="2" |  Release Planning
| rowspan="2" |  ▶
| rowspan="2" |  Iteration
| rowspan="2" |  ▶
| rowspan="2" |  Acceptance Test
| rowspan="2" |  ▶
| rowspan="2" |  Small Release
|-
|  Architectural Spike
|  ▶
|}
=== 사용자 스토리 ===
; User Stories
* 사용자 요구사항 / UML의 유스케이스와 같은 목적(요구사항 수집, 의사소통 도구)
* 릴리즈 계획을 작성하기 위한 단위
* 기능단위로 필요한 내용을 간단하게 기재, 필요시 간단한 테스트 사항도 표기 가능
* 시스템을 사용하는 고객이 필요한 것이 무엇인지를 기술 → 인수테스트시 사용
 
=== 구조적 스파이크 ===
; Architectural Spike
* 어려운 요구사항 혹은 잠재적인 솔루션들을 고려하기 위해 작성하는 간단한 프로그램
* 사용자 스토리의 신뢰성을 증대시키거나 기술적인 문제의 위험을 줄이고자 하는데 목적
 
=== 릴리즈 계획 ===
; Release Planning
* 전체 프로젝트에 대한 배포 계획을 생성
 
=== 반복 ===
; Iteration
* 하나의 반복을 1에서 3주 정도로 나누고 반복들을 프로젝트 전반에 균일하게 유지
* XP의 반복은 프로세스의 평가와 계획을 단순하고 신뢰성 있게 만드는 핵심 항목 → 반복 계획 미팅
* 사용자 요구사항 변경, 기술적인 문제 등 상황에 따라 릴리즈 및 반복 계획 수정 가능
 
=== 인수 테스트 ===
; Acceptance Test
* 릴리즈 전의 인수 테스트. 고객이 수행
 
=== 소규모 릴리즈 ===
; Small Release
* 작은 배포는 XP 주기의 마지막 단계
* 소규모로 빈번하게 배포하면 고객에게 여러 가지 이득을 조기 제공
* 프로그램은 빠른 피드백을 제공 받음

Latest revision as of 22:32, 13 July 2019