정의
신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발 방식
워터폴 방식의 문제
- 지나치게 계획과 절차에 의존함
- 전체적인 흐름이 단절됨
- 개발 기간 준수가 어려움
진행과정(반복)
- 계획
- 고객과 사용자의 니즈를 파악
- 기능과 제약조건을 정의하는 명세서 작성
- 설계
- 개발
- 설계를 바탕으로 프로그램을 코딩, 디버깅 시행
- 테스트
- 검토
특징
- 고객과 개발자의 지속적인 소통을 통해 요구사항을 신속하게 수용함
- 진행 중 고객의 피드백을 받음
- 고객의 의견을 우선시함
장점
- 시간을 아낄수 있음
- 버그를 쉽고 빠르게 발견할 수 있음
- 계획, 기능의 수정에 유연함
단점
- 요구사항이 변화함에 따라 반복적으로 유지보수를 진행해야 함
- 공동으로 진행해야 하는 상황이 많음
- 계획이 확정되지 않아 개발 진행시 이해하지 못하는 부분이 발생할 수 있음