
Waterfall은 말 그대로 폭포수 물이 위에서 아래로 내려오는 순차적인 개발 방법론이다.
모든 과정은 이전 과정이 완료가 된 후에 다음 단계로 진행하는 방식이다.

요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
1) 이전 단계 진행 완료 후 다음 단계를 진행하기 때문에 프로젝트 진행 리스크가 적다.
2) 요구사항이 명확하게 정의되어 목표에 있어 변화가 크지 않다.
3) 사전 계획된 내용으로 비용을 절감할 수 있다.
1) 이미 다음 단계가 진행을 시작하면 변화를 주기 어렵다.
2) 요구사항 분석과정에서 요구사항이 명확해야 하며 프로젝트 진행 중 변화를 주기 힘들어 고객의 요구사항 변경이 제한적이다.
3) 개발 속도가 비교적 느리고 유연성이 떨어진다.
💥 예산과 리스크에 대해 예측이 필요하고 프로젝트 타임라인이 긴 조직
Agile은 사전적 의미로 민첩하다는 의미를 가지고 있다.
Agile 방법론은 고객의 요구사항 변경에 따라 바르게 이에 대응하여 개발하는 방법론이다.

고객의 요구사항이 바뀔 때 마다 새로운 설계와 구현을 반복한다.
1) 개발 과정이 빠르고 유연하다.
2) 환경의 변화 또는 시대의 변화에 대한 대응이 빠르다.
1) 개발 과정이 빠르게 진행되기 때문에 비교적 숙련된 사람이 필요로 한다.
2) 변화에 대응이 빠른 만큼 번거로움이 존재한다.
3) 유지보수 보다는 새로운 소프트웨어 개발에 초점이 맞춰져 있다.
4) 문서화가 부족하다.
💥 지속적인 개선에 초점을 맞춘 조직