애자일 방법론이란?

애자일 방법론

애자일(Agile)

1. 애자일이란?

애자일(Agile)은 '민첩한', '기만한'이라는 의미로, 다양한 요구사항의 변화에 유연하게 대응할 수 있도록 일정한 개발 주기를 반복하는 것이다. 애자일은 스프린트를 반복하여 반복되는 주기마다 만들어지는 결과물에 피드백을 받아 유동적으로 개발한다.

 

2. 애자일 특징

- 공정과 도구보다 개인과 상호작용

- 포괄적인 문서보다 실행되는 소프트웨어

- 계약 현상보다 고객과의 협력

- 계획에 따르기보다 변화에 대응하기

 

3. 대표적인 개발 모형

스크럼(Scrum), XP(eXtreme Programming), 기능 중심 개발(Feature Driven Development), Lean, 칸반(Kanban) 등


스크럼(Scrum) 기법

스크럼(Scrum)

  • 제품 백로그(Product Backlog) : 모든 요구사항을 우선순위에 따라 나열한 목록으로, 새로운 요구사항도 계속해서 업데이트 된다.
  • 스프린트 계획 회의 : 제품 백로그에서 이번 스프린트에 수행할 작업을 대상으로 일정을 수립한다.
  • 스프린트 수행: 실제 개발 작업을 진행하는 과정이다.
  • 일일 스크럼 회의: 매일 약 15분 동안 진행상황을 점검하는 회의이다.
  • 스프린트 검토 회의: 수행한 작업이 요구사항에 잘 부합되는지 테스팅하는 회의이다.
  • 스프린트 회고: 이번 스프린트를 돌아보며 잘한점, 개선할 점 등을 확인하고 기록하는 것이다.

 

XP(eXtreme Programming) 기법

  • 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
  • XP의 5가지 핵심 가치: 의사소통(Communication), 단순성(Simplicity), 용기(Courage), 존중(Respect), 피드백(Feedback)
  • 개발 프로세스 순서: 릴리즈 계획 수립 - 이터레이션 - 승인검사 - 소규모 릴리즈

 

XP의 주요 실천 방법

  • Pair Programming(짝 프로그래밍)
  • Collective Ownership(공동 코드 소유)
  • Test-Driven Development(테스트 주도 개발)
  • Whole Team(전체 팀)
  • Continuous Integration(계속적인 통합)
  • Refactoring(리팩토링)
  • Small Releases(소규모 릴리즈)