Waterfall 방법론은 순차적인 프로세스를 따르며, 고정된 날짜, 요구 사항, 결과물을 기반으로 운영됩니다. 특별한 통합이 필요한 경우가 아니라면, 각 실행 팀은 지속적인 소통 없이 독립적으로 운영됩니다.
팀원들도 독립적으로 작업하는 경향이 있으며, Agile 방식에 비해 상태 보고서 를 자주 제출할 필요가 없습니다. 일반적으로 이전 단계가 완료되어야 다음 단계가 시작됩니다.
소프트웨어 개발 프로젝트를 예로 들면, Waterfall 프로세스는 일반적으로 다음과 같은 단계로 구성됩니다:
요구 사항
Waterfall 방법론은 모든 프로젝트 요구 사항 을 사전에 수집하고 파악할 수 있다는 전제를 기반으로 합니다. 프로젝트 관리자 는 프로젝트 스폰서의 요구 사항을 면밀히 파악하기 위해 최선을 다합니다. 일반적으로 단일 문서에 담기는 서면 요구 사항은 비용, 가정 사항, 리스크, 종속성, 성공 지표, 완료를 위한 일정 등 프로젝트의 각 단계를 설명하는 데 사용됩니다. 모든 프로젝트 요구 사항이 정의되면, 팀은 전체 프로젝트 생애주기에 대한 명확한 윤곽을 파악할 수 있습니다.
디자인이 수월합니다.
이 단계에서는 소프트웨어 개발자들이 시나리오, 레이아웃, 데이터 모델을 포함하여 제품 요구 사항에서 제시된 문제에 대한 기술적 해결책을 설계합니다. 먼저, 프로젝트의 목적과 범위, 각 구성 요소의 전반적인 트래픽 흐름, 통합 지점을 설명하는 상위 수준의 논리적 설계가 작성됩니다. 이 설계가 완성되면, 특정 하드웨어 및 소프트웨어 기술을 활용하여 물리적 설계로 변환됩니다.
시스템 설계에는 상위 수준과 하위 수준, 두 가지 단계가 있습니다. 상위 수준 설계 단계에서는 팀이 정보 접근 방식과 전반적인 동작 구조의 청사진을 만듭니다. 이후 하위 수준 단계에서는 소프트웨어의 각 구성 요소를 구체적으로 정의하고 세부 내용을 구체화합니다.
구현
설계가 완료되면 Waterfall 방법론의 다음 단계인 기술 구현이 시작됩니다. 이전 단계에서 면밀한 조사와 설계가 이미 완료되었기 때문에, 이 단계는 Waterfall 프로세스에서 가장 짧을 수 있습니다. 이 단계에서 개발자들은 프로젝트 요구 사항과 사양에 따라 애플리케이션을 코딩하며, 일부 테스트와 구현도 함께 진행됩니다. 이 단계에서 중대한 변경이 필요할 경우 설계 단계로 되돌아가야 할 수 있습니다.
검증 및 테스트
제품을 고객에게 출시하기 전에 반드시 테스트를 거쳐야 합니다. 이를 통해 오류가 없고 모든 요구 사항이 충족되었는지 확인하여 소프트웨어의 우수한 사용자 경험을 보장합니다. 테스트 팀은 프로젝트 관리 방법론을 검토하고, 제품 관리자가 제공한 설계 문서, 페르소나, 사용 사례 시나리오를 바탕으로 테스트 케이스를 작성합니다.
배포 및 유지 관리
배포 단계는 소프트웨어, 제품, 또는 최종 결과물이 최종 사용자인 고객에게 전달되는 시점입니다. 원활한 출시를 위해서는 긴밀한 협력과 철저한 계획 수립이 필요합니다. 소프트웨어가 시장에 배포되거나 고객에게 출시된 후에는 유지 관리 단계가 시작됩니다. 결함이 발견되거나 사용자로부터 변경 요청이 접수되면, 담당 팀이 업데이트를 처리하고 새로운 소프트웨어 버전을 출시합니다.