애자일(Agile)
소프트웨어 개발에 대한 반복적이고 점진적인 접근 방식
- 전통적인 폭포수 모델이 선형적인 접근방식인 반면, 애자일 방법론은 더 유연하고 적응적
애자일(Agile) 개발 4가지 핵심 가치
(20.8)
- 프로세스와 도구보다는 개인과의 상호작용에 더 가치를 둠
- 방대한 문서보다는 실행되는 SW에 더 가치를 둠
- 계약 협상보다는 고객과의 협업에 더 가치를 둠
- 계획을 따르기 보다는 변화에 반응하는 것에 더 가치를 둠
애자일 방법론 종류
(20년 4회 기출)
XP(eXtreme Programming)⭐️⭐️
특징
- 문서보다 코드 중시
- 개발 세분화하여 1~3주 반복 개발
핵심가치 5가지⭐️
(20.6)
기본 원리
(20년 4회 기출)
- Whole Team
- Small Releases
- Test-Driven Development
- Continuous Intergration
- Collective Ownership
- Pair Programming
- Refactoring
스크럼(Scrum)⭐️
특징
- 소프트웨어에 포함될 기능/개선점에 우선순위 부여
- 개발주기는 30일정도로 조절
- 개발 주기마다 실제 결과 제공
- 개발 주기마다 적용할 기능/개선목록 작성
- 항상 팀 단위로 사고
- 매일 15분 정도 회의 진행
스프린트(Sprint)
- 반복적인 개발 주기
- 1~4주의 짧은 기간으로 목표 설정
제품 백로그(Product Backlog)
스프린트 백로그(Sprint Backlog)
- 각각 스프린트 목표에 도달하기 위해 필요한 작업 목록
스프린트 계획 회의(Sprint Planning Meeting)
- 스프린트 목표와 스프린트 백로그를 계획하는 회의
일일 스크럼 회의(Daily Scrum Meeting)
실행 가능한 제품(Shippable Product)
제품 책임자(PO;Product Owner)
- 제품 백로그를 작성하는 주체
- 백로그에 대한 우선순위 지정, 이해관계자들의 의견 종합
스크럼 마스터(Scrum Master)
- 프로젝트 관리자로서 일일 스크럼 회의 주관
- 팀원들을 통제하는 것이 목표 아님
개발팀(DT;Development Team)
- 제품 책임자와 스크럼 마스터를 제외한 모든 팀원
- 최대 인원 7~8명
스크럼 개발 프로세스
스프린트 계획 회의 → 스프린트 → 일일스크럼 → 스크럼 검토 회의 → 스프린트 회고
그외 애자일 방법론
- 동적 시스템 개발 방법론(Dynamic Systems Development Method, DSDM)
- 기능 주도 개발 방법론(Feature Driven Development, FDD)
- 기능(Feature)마다 2주 정도의 반복 개발을 실시
- 크리스털 패밀리(Crystal family)
- 프로젝트의 규모와 영향의 크기에 따라서 여러 종류의 방법론을 제공
- 적응형 소프트웨어 개발 방법론(Adaptive Software Development, ASD)
- 합동 애플리케이션 개발을 사영하는 방법론
- 개발을 혼란 자체로 규정하고 혼란을 전제로 그에 적응할 수 있는 소프트웨어 방법을 제시하기 위해 만들어진 방법론
- 린 소프트웨어 개발 방법론(Lean software development)
- 도요타 린 시스템 품질 기법을 소프트웨어 개발 프로세스에 적용해서 낭비요소를 제거하여 품질을 향상시킨 방법론