워터폴 방법론
개발을 선형적이고 순차적으로 진행
- 요구사항 분석: 프로젝트의 요구사항을 명확히 정리
- 시스템 설계: 요구사항을 바탕으로 시스템의 아키텍처를 설계
- 구현: 설계된 아키텍처에 따라 코드를 작성
- 통합 및 테스팅: 모든 컴포넌트를 통합하고 시스템 전체의 버그를 찾아내기 위해 테스팅
- 배포: 완성된 소프트웨어를 사용자 환경에 배포
- 유지보수: 소프트웨어의 문제를 수정하고 업데이트를 진행
장점:
- 초기 단계에서 요구사항이 명확하게 정의되므로 프로젝트의 범위와 일정 예측이 용이
- 각 단계가 완료될 때마다 문서화가 이루어지므로, 관리 및 통제가 체계적
단점:
- 한 단계가 완료되어야 다음 단계로 넘어갈 수 있어 유연성이 떨어짐
- 개발 도중 요구사항이 변경되거나 초기 예측이 틀릴 경우 대응하기 어려움
애자일 방법론
프로젝트를 작은 부분들로 나누어 짧은 주기(스프린트)로 반복적인 개발을 진행
핵심가치
- 개인과 상호 작용을 프로세스와 도구보다 중요하게 여깁니다.
- 작동하는 소프트웨어를 포괄적인 문서화보다 우선시합니다.
- 고객과의 협업을 계약 협상보다 중시합니다.
- 변화에 대한 대응을 계획을 따르는 것보다 중요하게 다룹니다.
방법
- 반복적 접근: 개발을 1-4주의 스프린트로 나누고 각 스프린트마다 사용 가능한 제품을 만들어냄
- 지속적인 고객 피드백: 고객과 지속적으로 소통하며, 피드백을 즉시 반영
- 자율적 팀 작업: 팀원들이 자율적으로 일하며, 상호 협력을 통해 문제를 해결
장점:
- 변경 요구에 대한 빠른 대응이 가능
- 개발 과정에서 고객의 피드백을 지속적으로 받을 수 있어 최종 제품의 만족도가 높음
단점:
- 프로젝트의 범위가 자주 변할 수 있어 일정과 예산 관리가 어려움
- 과도한 회의와 조정이 필요할 수 있음
'개발' 카테고리의 다른 글
소스 코드 관리 전략(모노레포 vs 멀티레포) (0) | 2024.05.11 |
---|---|
아키텍처(모놀리식 vs. MSA) (0) | 2024.05.11 |
프로그래밍 패러다임 (0) | 2024.05.11 |
TDD (0) | 2024.05.11 |
브랜치 관리(Git Flow, GitHub Flow) (0) | 2024.05.11 |