폭포수(WATERFALL)방법론과 애자일(AGILE) 방법론

2022. 9. 26. 15:23 기타 정보/일하는 방식, 방법론, 법칙

폭포수(WATERFALL)방법론

폭포수(WATERFALL)방법론은 그림에서 알 수 있듯이 소프트웨어 개발 단계가 위에서 부터 아래로 폭포에서 물이 떨어지듯이 순차적으로 진행됩니다.

폭포수 방법론은 한단계씩 진행함에 따라 다시 이전 단계로 가지 않고 계속 진행하기에 다음 단계로 가기전에 완벽하게 요구사항을 반영하여 개발했다는 것을 전제로 합니다.

요구사항 분석 → 설계 → 구현 → 검증(테스트) → 유지보수

장점

  • 수직적으로 진행되기에 각 과정에 대한 이해가 용이합니다.

단점

  • 수직적으로 진행되기 때문에 개발 도중에 요구사항이 변경되었을 경우,
    추가적인 비용과 시간이 들게 됩니다.(수정사항을 반영하여 처음부터 진행하게 됩니다. 😧)

애자일(AGILE)방법론

애자일(AGILE)방법론은 폭포수(WATERFALL)방법론과 다르게 소프트웨어 개발 단계를 명확하게 구분하지 않고 각 단계를 반복적으로 수행하면서 진행합니다. 이때 요구사항을 추가하거나 제외하면서 소프트웨어를 개발하게 됩니다.

잦은 요구사항의 변경이나 큰 프로젝트를 맡게 되어 요구사항 분석 및 설계를 완벽하게 하기 어려운 경우, 애자일(AGILE)방법론은 폭포수(WATERFALL)방법론보다 적합한 개발 방법론이 될 수 있습니다.

스크럼(Scrum)


스크럼(Scrum)은 프로젝트 관리를 위한 상호,점진적 개발방법론이며, 애자일 소프트웨어 개발 중의 하나입니다.

  • 제품 백로그(Product Backlog)
    개발할 제품에 대한 요구 사항 목록
  • 스프린트 백로그(Sprint Backlog)
    각각의 스프린트 목표에 도달하기 위해 필요한 작업 목록
  • 스프린트(Sprint)
    반복적인 개발 주기 (회사에서 정하는 이터레이션이 개발 주기가 된다. 계획 회의 부터 제품 리뷰가 진행 되는 날짜 까지의 기간이 1스프린트입니다.)
  • 일일 스크럼 회의(Daily Scrum Meeting)
    날마다 진행되는 미팅 (어제 한일, 오늘 할일, 오류 등을 공유)

스크럼 진행 방법

  1. 제품에서 요구하는 기능과 우선순위를 제품 백로그로 정한다.
  2. 제품 책임자가 정한 제품의 우선순위에서 어디까지 작업을 할지 팀과 조율 한다.
    조율하여 선정된 제품 백로그가 이번 스프린트의 목표가 된다.
  3. 스프린트 목표를 구현 가능 하도록 팀에서 스프린트 백로그를 작성한 뒤 작업을 할당한다.
  4. 스프린트를 진행하는 동안, 매일 정해진 장소와 시간에 모든 개발 팀원이 참여하는 일일 스크럼 회의를 가진다.
  5. 매회의 스프린트가 종료할 때마다, 스프린트 리뷰 미팅을 통해 만들어진 제품을 학습하고 이해 한다.
  6. 제품의 학습과 이해가 끝나면, 스프린트 회고를 통해 팀의 개발 프로세스에 대한 개선의 시간을 갖는다.
  7. 스프린트 기간 중 다음 스프린트를 준비 하기 위해 제품 책임자와 필요 인원이 모여 백로그를 준비하는 시간을 갖는다.

( 제품 책임자(Product Owner): 제품 백 로그를 정의하여 우선순위를 정해 준다. )

장점

  • 개발 도중에 요구사항이 변경되었을 경우, 해당 요구 사항을 반영하기 용이합니다.
  • 개발하면서 지속적으로 테스트 되기에 개발 초기에 버그를 발견할 수 있습니다.

단점

  • 폭포수(WATERFALL)방법론에 비해 체계화된 문서가 적을 수 있습니다.

 

출처 : https://velog.io/@taeha7b/software-development-process