애자일 방법론
1. 애자일이란?
애자일(Agile)은 '민첩한', '기만한'이라는 의미로, 다양한 요구사항의 변화에 유연하게 대응할 수 있도록 일정한 개발 주기를 반복하는 것이다. 애자일은 스프린트를 반복하여 반복되는 주기마다 만들어지는 결과물에 피드백을 받아 유동적으로 개발한다.
2. 애자일 특징
- 공정과 도구보다 개인과 상호작용
- 포괄적인 문서보다 실행되는 소프트웨어
- 계약 현상보다 고객과의 협력
- 계획에 따르기보다 변화에 대응하기
3. 대표적인 개발 모형
스크럼(Scrum), XP(eXtreme Programming), 기능 중심 개발(Feature Driven Development), Lean, 칸반(Kanban) 등
스크럼(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(소규모 릴리즈)