애자일(Agile) 소프트웨어 개발 방법론
- 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발과정을 진행
- 스프린트(Sprint) 또는 이터레이션(iteration) 의 짧은 개발 주기를 반복하며 고객의 평가와 요구를 적극 수용
- 고객의 요구사항에 우선순위를 부여하여 개발 작업을 진행
- 소규모 프로젝트, 고도로 숙달된 개발자, 급변하는 요구사항에 적합
애자일 주요 개발 방법론
스크럼(Scrum)
팀워크 중심의 방법론으로, 특정 기간(Sprint) 동안 동작 가능한 제품을 개발합니다. (진행단계: 백로그 ➜ 스프린트 ➜ 검토)
- 제품 백로그(Product Backlog): 개발할 기능들의 우선순위 목록
- 스프린트(Sprint): 짧은 개발 주기(2~4주)
- 스크럼 마스터(Scrum Master): 팀의 장애물을 제거하고 가이드를 주는 조력자
- 데일리 스크럼(Daily Scrum): 짧은 미팅
- 제품 책임자(Product Owner): 제품의 비즈니스 가치를 극대화하고 무엇을 만들지 결정하는 사람
XP(eXtreme Programming)
고객의 참여와 짧은 개발 과정의 반복을 극대화하여 생산성을 향상시키는 방법입니다.
핵심 가치: 의사소통, 단순성, 피드백, 용기, 존중
주요 실천 사항:
Pair Programming: 다른 사람과 함께 프로그래밍 수행
TDD(Test Driven Development): 테스트 주도 개발
CI(Continuous Integration): 지속적인 통합
Refactoring: 리팩토링
Small Releases: 짧은 출시 주기
기타 방법론
칸반
크리스탈
Lean
ASD (Adaptive Software Development)
FDD (기능 중심 개발)
DAD (Disciplined Agile Delivery)
DSDM (Dynamic System Development Method)
애자일의 핵심 가치
- 개인과의 상호작용 > 프로세스(공정)와 도구
- 실행되는 소프트웨어 > 포괄적인 문서
- 고객과의 협력 > 계약 협상
- 변화에 대응 > 계획 준수