소프트웨어 개발 주기는 요구사항 분석, 설계, 구현, 배포, 유지보수 등과 같은 일련의 과정이 존재한다. 이러한 소프트웨어 개발에 있어 사용하는 방법은 크게 두 가지를 사용한다.

 

1. 폭포수 모델

Waterfall Model

(개념) 요구사항을 완벽하게 취합하여 계획을 잘 세우고 그 계획대로 진행하는 방법론

 

(배경) 1970년대 창안된 첫 번째 소프트웨어 개발 방법론

 

(아키텍처) 요구사항 → 분석 → 디자인 → 코딩 → 테스트 → 릴리즈 단계를 지님

 

(특징) 미리 모든 요구사항을 수집하고 전체적으로 분석과 디자인을 한 뒤 한번에 완성

 

(단점-1) 느린 단계별 접근법으로, 중복 프로세스가 발생하고 릴리즈 간 긴 시간차가 발생

 

(단점-2) 과도한 문서 업무가 존재함

 

(보완 방안) 애자일 방법론을 고안

 

 

1. 애자일 방법론

 

Agile Methodology

(개념) 요구사항을 초기에 완벽하게 도출하는 것이 불가능하기에 개발 주기를 반복하고 고객과 소통하면서 소프트웨어의 품질을 발전시키는 방법론

 

(전제) 모든 요구사항을 결코 알 수 없다.

 

(배경) 폭포수 모델의 과도한 문서업무로 인해 비효율을 줄이고자 1990년대 고안된 방법론

 

(특징) 빠르고 모듈식의 주기적인 방식을 통해 개발 전 단계에 걸쳐 요구사항을 지속적으로 분석하고 반영하여 릴리즈 간 시간차를 최소화함

 

 

3. 폭포수와 애자일 방법론의 10가지 주요 차이점

  • 요구사항 : 폭포수 = 미리 도출 / 애자일 = 지속적으로 도출
  • 릴리즈 : 폭포수 = 자주하지 않음 / 애자일 = 고객 니즈 충족을 목표로 지속적으로 릴리즈
  • 지향 : 폭포수 = 계획 중심 / 애자일 = 학습 중심
  • 의사소통 : 폭포수 = 고객과의 드문 의사소통 / 애자일 = 고객과의 지속적인 의사소통
  • 현황 공유 : 폭포수 = 계획중심이라, 단계별 진척 사항을 프로젝트 단계별 점검 / 애자일 = 특정 기능이 완성되지 않은 소프트웨어더라도 프로젝트 초기부터 전체적으로 통합되기까지 지속적으로 진행사항 공유
  • 수직/수평 : 폭포수 = 수평적 단계별 개발 / 애자일 = 기능별 수직 개발
  • 관점 : 폭포수 = 프로그래밍은 단순 공사 / 애자일 = 프로그래밍은 디자인의 확장(분리불가)
  • 통합 : 폭포수 = 마지막에 통합 / 애자일 = 초기와 이후 지속적인 통합
  • 테스트 : 폭포수 = 마지막 단계에 테스트 / 애자일 = 초기와 이후 지속적인 테스트
  • 진단방법 : 폭포수 = 계획에 따른 진척사항 진단 / 애자일 = 소프트웨어를 만들지 소프트웨어 만드는 방법을 문서화하는 것이 아니기에 소프트웨어가 얼마나 회사 비즈니스에 부합하나로 진단

4. Reference

+ Recent posts