[출처] http://blog.naver.com/c7h4a/130106247141
1. Agile Process의 대표적 방법론 XP의 개요
가. XP (Extreme Programming)의 정의
- 짧은 개발주기(Iteration)을 통해 고객이 원하는 핵심적인 기능을 우선 구현함으로써 프로젝트의
위험을 줄이는 프로그래밍 중심의 소프트웨어 개발방법론
나. XP의 등장배경 및 핵심가치
- 효율적 요구사항 변화관리, 생산성감소, 급변하는 환경에서 빠르게 SW개발 필요
- 4가지 핵심가치 : 용기(고객의 요구사항 변화에 능동적인 대처), 의사소통, 빠른 피드백,
단순성(부가적기능,사용되지 않는 구조와 알고리즘 배제)
2. XP의 개발절차 및 실천항목
가. XP의 개발절차
- 유저스토리 : 고객 요구사항, UML의 유즈케이스와 같은 목적, 배포계획 시간 계산,
요구사항 문서 대용
- 스파크 : 잠재적 솔루션 고려를 위한 간단한 프로그램, 유저스토리 신뢰성향상, 기술적 위험 관리
- 배포계획 : 전체 프로젝트 배포계획, 의사결정 규칙, 프로젝트 수행방법 정의
- 반복 : 짧은주기(1~3주) 반복 (개발 → 테스트 → 배포), 프로세스 평가/계획 단순화, 신뢰성
- 인수테스트 : 반복 단위별 테스트, 진척사항 확인, 검증
- 작은 배포 : 반복단위별 배포, 빈번한 소규모 배포, 점증적 기능제공, 빠른 피드백
나. XP의 실천항목
단계 | 실천항목 | 설명 |
분석/설계 | On-Site Customer | 고객의 팀 합류, 의사결정 지원 |
Small Design | 고객요구기능 중심, 짧은시간 릴리즈 | |
Simple Design | 단순하고 정확히 작동하는 디자인 | |
메타포 (Metaphor) | 문장형태 시스템 아키텍쳐 기술, 고객과의 의사소통 언어 | |
구현 | Refactoring | 기능변화 없이 코드 수정통한 디자인 개선, 중복성 복잡성 개선 |
Pair Programming | 두명이 한 프로그램 개발 (오류감소, 생산성 향상) | |
Continuous Integration | 지속적 통합, 개발 불일치 최소화 | |
테스트 | Testing (TDD) | 유저스토리 → 테스 트시나리오, 테스트주도, 고객검증, 승인 |
배포 | 작은배포 | 기능단위 빠른배포 및 피드백 |
3. XP의 적용방법 및 고려사항
- Agile Process와 RUP 혼용형태 프로세스 권장
(프로젝트 전반부는 RUP, 중반부터는 XP의 하이브리드 형태)
- 계획/디자인 단계에 많은 시간할애, 전체 유저케이스/디자인 반복 정제 → 코드수준 →
프로그래머는 단순코딩 작업만 수행.
- On-Site 고객관점접근, 상위 관리자 미고려로 프로젝트 전반적 오류 가능성.
- 테스트 중심 개발 등 프로젝트 초반 오류를 최대한 잡아내기 위한 노력 필요.
댓글 없음:
댓글 쓰기