본문 바로가기

개발

워터폴과 애자일

워터폴 방법론

개발을 선형적이고 순차적으로  진행
  1. 요구사항 분석: 프로젝트의 요구사항을 명확히 정리
  2. 시스템 설계: 요구사항을 바탕으로 시스템의 아키텍처를 설계
  3. 구현: 설계된 아키텍처에 따라 코드를 작성
  4. 통합 및 테스팅: 모든 컴포넌트를 통합하고 시스템 전체의 버그를 찾아내기 위해 테스팅
  5. 배포: 완성된 소프트웨어를 사용자 환경에 배포
  6. 유지보수: 소프트웨어의 문제를 수정하고 업데이트를 진행

장점:

  • 초기 단계에서 요구사항이 명확하게 정의되므로 프로젝트의 범위와 일정 예측이 용이
  • 각 단계가 완료될 때마다 문서화가 이루어지므로, 관리 및 통제가 체계적

단점:

  • 한 단계가 완료되어야 다음 단계로 넘어갈 수 있어 유연성이 떨어짐
  • 개발 도중 요구사항이 변경되거나 초기 예측이 틀릴 경우 대응하기 어려움

애자일 방법론

 프로젝트를 작은 부분들로 나누어 짧은 주기(스프린트)로 반복적인 개발을 진행

 

핵심가치

  • 개인과 상호 작용을 프로세스와 도구보다 중요하게 여깁니다.
  • 작동하는 소프트웨어를 포괄적인 문서화보다 우선시합니다.
  • 고객과의 협업을 계약 협상보다 중시합니다.
  • 변화에 대한 대응을 계획을 따르는 것보다 중요하게 다룹니다.

방법

  1. 반복적 접근: 개발을 1-4주의 스프린트로 나누고 각 스프린트마다 사용 가능한 제품을 만들어냄
  2. 지속적인 고객 피드백: 고객과 지속적으로 소통하며, 피드백을 즉시 반영
  3. 자율적 팀 작업: 팀원들이 자율적으로 일하며, 상호 협력을 통해 문제를 해결

장점:

  • 변경 요구에 대한 빠른 대응이 가능
  • 개발 과정에서 고객의 피드백을 지속적으로 받을 수 있어 최종 제품의 만족도가 높음

단점:

  • 프로젝트의 범위가 자주 변할 수 있어 일정과 예산 관리가 어려움
  • 과도한 회의와 조정이 필요할 수 있음

'개발' 카테고리의 다른 글