폭포수 모델과 애자일의 차이: 진행 방식·계획·변경 대응·테스트·적합한 개발 비교
폭포수 모델은 요구사항 정의, 설계, 프로그래밍, 테스트의 공정을 상류에서부터 차례로 진행하며, 원칙적으로 앞 공정의 산출물을 확정한 뒤 다음 공정으로 넘어가는 개발 모델입니다. 처음에 전체 계획을 세우므로 진척과 비용을 관리하기 쉬운 반면, 나중 공정에서 요구사항의 오류가 발견되면 재작업이 커집니다. 애자일 개발은 몇 주 정도의 짧은 반복을 되풀이하며, 그때마다 동작하는 소프트웨어를 만들어 사용자의 의견을 반영하고, 변하는 요구에 맞춰 계획을 재검토해 나가는 진행 방식의 총칭으로, 대표적인 기법으로 스크럼과 익스트림 프로그래밍(XP)이 있습니다. 요구가 명확하고 잘 바뀌지 않으면 폭포수, 요구가 바뀌기 쉽고 쓸 수 있는 기능을 빨리 전달하고 싶으면 애자일이 적합합니다.
| 비교 항목 | 폭포수 모델 | 애자일 개발 |
|---|---|---|
| 공정의 진행 방식 | 요구사항 정의 → 설계 → 프로그래밍 → 테스트의 공정을 상류에서부터 차례로 한 번씩 진행한다 | 계획·설계·구현·테스트를 포함한 짧은 반복(스크럼에서는 스프린트)을 여러 번 되풀이한다 |
| 계획 수립 방식 | 처음에 전체 범위, 일정, 비용을 정하고 그 계획에 따라 진행한다 | 대략적인 방향을 정하고, 반복마다 우선순위가 높은 것부터 계획을 재검토한다 |
| 요구 변경에 대한 대응 | 앞 공정의 산출물을 확정한 뒤의 변경은 재작업이 크다. 변경 관리 절차를 거쳐 한다 | 변경을 전제로 하고 있어 다음 반복의 계획에 반영하기 쉽다 |
| 동작하는 소프트웨어가 나오는 시기 | 주로 개발 막바지. 테스트를 마친 뒤 한꺼번에 인도한다 | 반복마다 동작하는 소프트웨어(스크럼에서는 인크리먼트)가 나온다 |
| 테스트 시기 | 프로그래밍 뒤에 단위 테스트·통합 테스트·시스템 테스트·인수 테스트를 차례로 한다(V 모델로 설계 공정과 대응시킨다) | 반복마다 한다. 자동화한 테스트와 지속적 통합으로 변경할 때마다 확인하는 경우가 많다 |
| 문서 | 공정마다 요구사항 정의서와 설계서 등을 만들고 리뷰로 확정한다 | 동작하는 소프트웨어를 중시하며, 문서는 필요한 만큼으로 줄이는 경우가 많다 |
| 사용자(발주자)의 참여 방식 | 주로 처음의 요구사항 정의와 마지막의 인수 테스트 | 반복마다 산출물을 보고 의견을 전한다. 스크럼에서는 제품 책임자가 만들 것의 우선순위를 정한다 |
| 진척 관리 | 공정의 완료와 산출물로 측정한다. WBS와 간트 차트로 관리하기 쉽다 | 반복마다 완성되어 동작하는 기능으로 측정한다 |
| 적합한 개발 | 요구사항이 명확하고 잘 바뀌지 않는 개발, 하드웨어와 함께 사양을 일찍 확정하는 개발, 계약으로 범위와 비용을 먼저 정해야 하는 개발 | 요구가 바뀌기 쉬운 개발이나, 만들면서 사용자의 반응을 확인하고 싶은 새로운 서비스의 개발 |
수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.