반응형
-
XP : Agile 프로세스의 대표적 개발 기법
-
XP의 개념
- 개발자, 관리자, 고객이 조화를 극대화하여 개발 생산성을 높이고자 하는 접근 방법
- 라이프사이클 후반부라도 요구 사항 변경에 적극적이고 긍정적인 대처를 권고하는 역 발상의 소프트웨어 개발 방법
-
XP의 출현 배경
- 현재의 소프트웨어 개발 과정에서 자주 발생되고 있는 문제점 극복 대안
-
급변하는 환경에서 소프트웨어를 빨리 개발할 목적으로 설계
-
-
XP의 특징 및 기존 개발 방법의 문제점 해결 방안
-
XP의 특징 : 프로젝트의 생산성 및 효과를 향상시키기 위한 핵심 사항 제시
- 4가지 가치(용기, 의사소통, 피드백, 단순성)
-
Core Values | 내용 |
용기 | 고객의 요구 사항 변화에 능동적인 대처 |
의사소통 | 실제 개발자들 사이의 의사소통을 통한 개발 사이클 채택 |
피드백 | 빠른 피드백이 기본 원칙으로 해결할 수 있는 일 먼저 처리 |
단순성 | 부가적 기능이나 사용되지 않는 구조와 알고리즘 배제 |
-
12개 실천 항목
- Simple Design : 가장 단순 하며 정확히 작동하는 Design
- Small Design : 고객이 원하는 기능 중심으로 짧은 시간내 릴리즈
- Refactoring : 기능에 변화없이 코드 수정을 통해 디자인 개선
-
Pair Programming : 두명이 한 프로그램개발(오류감소, 생산성향상)
- Pair 프로그래밍 - XP에 적용되는 기법으로 두 명의 프로그래머가 동시에 같은 프로그램에 대해 작업하는 것으로서, 한 명이 코드를 작성할 때 다른 한명은 각 코드를 점검하는 방식
- Testing : 테스트주도(TDD), 테스트를 통한 고객검증, 승인
- On-Site Customer : 고객의 팀합류, 의사 결정지원
- Continuous Integration : 지속적인 통합으로 개발의 불일치 최소화
-
메타포(Metaphor) : 문장 형태로 시스템 아키텍쳐 기술, 고객과 개발자간의 의사 소통언어
- Metaphor - XP에 적용되는 개발 기법으로, 공통적인 이름의 체계를 가지고 공통적인 시스템 서술서를 가짐으로 인하여 개발과 의사소통을 돕는 것.
- 기타 : 작은배포, 스토리카드에 의한 계획 수립, 코드공동소유, 코딩표준, 주당40시간
-
기존 개발 방법의 문제점 해결을 위한 전략
-
관리 전략
- 결정은 분산화, XP 관리 도구로 메트릭 사용, 코칭/트래킹/조정
-
계획 전략
- 가능한 한 적게 투자, 빨리 가치 있는 기능 구현 전략
-
개발 전략
- 지속적인 통합, 공동 소유, Pair 프로그래밍
-
설계 전략
- 테스트, 설계 및 구현, 반복과 단순화로 설계
-
테스트 전략
- 코딩 보다 단위 테스트를 먼저하고, 테스트를 자동화
- 계획 세우기, 작은 시스템 릴리즈, Metaphor 등 12가지 실천사항 병행
-
-
XP 구현 프로세스(역 발상)
-
1단계 : 릴리스 계획 및 스토리 작성
- 탐색 : 스토리 쓰기(고객) → 스토리 예측(개발자) → 스토리 분할(고객) & Spike(개발자)
- 계획 : 우선순위 정하기(고객) → 개발 속도 정의(개발자) → 범위 정하기
-
2단계 : Iteration 계획반복 시기 동안 구현할 스토리 계획 → 스토리 분할 → 개발자 할당
-
3단계 : 개발자에 의한 개발 및 관리
-
-
XP를 적용하여 프로젝트 추진 시 고려 사항
-
XP를 적용하지 말아야 할 경우
- 고객이나 관리자가 큰 그림으로부터 시작하고자 할 때
- 팀 작업이 회사가 원하는 속도에 맞출 수 없을 때
- 피드백 시간이 너무 오래 걸릴 때
-
XP를 적용하여 프로젝트를 시작한 경우
- 12가지 실천사항부터 먼저 적용하여 시작
- 단순화, 명확화, 고객의 역할 정의 부분 등에 지속적으로 보완
-
반응형
'밥벌이 > 소프트웨어 공학' 카테고리의 다른 글
컴포넌트 기반 개발(CBD; Component Based Development) 방법론 (0) | 2010.08.30 |
---|---|
Agile 프로세스 (0) | 2010.08.30 |
MDA(Model Driven Architecture) (0) | 2010.08.30 |
4세대 모델 (0) | 2010.08.13 |
RAD(Rapid Application Development) 모델 (0) | 2010.08.13 |