XP(eXtreme Programming)

반응형
  • 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가지 실천사항부터 먼저 적용하여 시작
      • 단순화, 명확화, 고객의 역할 정의 부분 등에 지속적으로 보완
반응형