본문 바로가기

소프트웨어공학

[소프트웨어공학] Agile Process Model - eXtreme Programming (XP)

- XP Programming

  • 정의
    • 수시로 발생하는 요구사항 반영을 위해 개발 과정의 반복을 통한 lightweight 개발 프로세스
    • 각 Iteration 에 맞는 XP Practices 를 극대화(extreme)하여 작업하여 효과 극대화하는 방법
  • 특징
    • Short Release Cycle (1~4 weeks) & high priority task first --> 일정 준수 & Requirement Change 줄어듬
    • stakeholder 가 직접 task priority, Test 등 관여하여 팀의 participant 가 됨
    • CI/CD 를 통한 auto test & deploy
  • XP Practices
    • XP 을 구성하는 요소로 서로 연관되어 있음
    • The Planning Game
      • Game 처럼 Story card 형식 (짧은 시나리오) 으로 requirement 작성
      • Scope, Priority, Release Schedule 설정 (Business)
      • requirement에 대한 Estimation, Specification 작업 및 Development Schedule 설정 (Development)
    • Simple Design
      • current requirement에 충족하는 수준의 Design 작업 (Not 미래를 예측하는 Design)
    • Test-Driven Development
      • 개발 전에 테스트 시나리오를 작성하여 요구 사항 가시화 및 명확화
    • Customer Involvemenet
      • stakeholder 가 test  등에 직접 참여
    • On-site Customer
    • Test Automation
    • Pair Programming (짝프로그래밍)
      • 서로 크로스 체크를 하며 코드 개발을 통해 품질 향상
    • Small Releases (소규모 릴리즈)
      • 릴리즈 기간을 짧게 잡아 요구 사항에 반영 속도 향상
    • Refactoring
      • Well-structured & Clear code 와 architecture 기반이어야 변경이 용이
    • Collective Ownership
      • Everybody takes responsibility for the whole of the system
    • Continuous Integration (CI)
      • 최소 매일 Code 통합 및 Test 진행
  • 프로세스 단계
    • 사용자 스토리 (User Story)
      • 고객의 요구사항 및 테스트 시나리오 작성
    • 릴리즈 계획 수립 (Release Planning)
      • 기능 및 전체 개발에 대한 계획 수립
    • 스파이크(Spike)
      • risk를 줄이기 위해 Iteration 들어가기 전에 사전 개발 및 테스트 진행
    • 주기(Iteration)
      • 릴리즈를 세분화한 단위
      • 1~4주 정도의 기간으로 진행
      • 이 기간에 새로운 스토리가 작성되면 다음 Iteration에 추가
    • 인수 테스트(Acceptance Test)
      • User Story에서 작성된 테스트 시나리오를 기반으로 테스트
      • 테스트 중 생긴 결함은 다음 Iteration 에 추가
      • 테스트 완료 시, 다음 Iteration 진행

 

반응형