새소식

반응형
카테고리 없음

기존의 개발방법론과 애자일 개발방법론

  • -
반응형

폭포수 개발은 일련의 작업 단계에 따라 순차적으로 개발하는 형태이다. 초반에 요구사항을 모두 분석하기 어렵고, 고객은 실제 제품을 프로젝트 후반부에 가서야 제대로 볼 수 있기 때문에 나중에 요구사항이 많이 변경된다는 단점이 있다. 최근에는 요구사항 분석과 제품의 주요 부분을 프로토타입이나 스토리보드로 만들어 고객의 검증을 받은 후 개발을 본격적으로 시작하는 프로토타입 모델을 많이 사용하여 이 단점을 개선하고 있다.

 

- 폭포수 개발 프로세스

요구 분석(사용자 참여) > 설계 > 구현 > 테스트(사용자 참여) > 이행

 

- 프로토타입 개발 프로세스

요구 분석 > 프로토타입 개발 > 고객 평가(개선이 필요하면 다시 요구분석으로) > 설계 > 구현 > 테스트 > 이행

 

점진적 개발은 전체 시스템 요구사항을 분석한 후 전체 시스템을 여러 개의 빌드로 나눈다. 그러고는 빌드 하나를 순차적으로 수행하여 점진적으로 기능을 완성해 나가는 방식이다. 각 빌드 단위에서는 폭포수 방식을 적용한다. 제품을 빌드 단위로 개발하여 위험 요소를 줄이고, 종료 시점에 납품하지 않고 점진적으로 제공함으로써 return on investment를 높일 수 있는 장점이 있다.

 

- 점진적 개발 프로세스

요구 분석 > 상위 수준 설계 > 1차 빌드(상세 설계 > 구현 > 테스트) > 2차 빌드(상세 설계 > 구현 > 테스트) > 3차 빌드(상세 설계 > 구현 > 테스트) > 시스템 테스트

 

진화적 개발은 초기에 요구사항이 완전히 파악되지 않은 상태에서 알려진 요구사항만으로 개발하는 방식이다. 점진적 개발과 다르게 빌드를 사전에 계획하지 못하고 고객에게 피드백을 받아 요구사항이 좀 더 명확해지면 점진적으로 기능을 개선하여 목표 시스템을 완성한다. 초기에 사용자 요구사항을 구체적으로 파악하지 못했을 때 활용할 수 있지만 아키텍처의 변화에 대응하기는 어렵다.

 

- 진화적 개발 프로세스

1차 빌드(분석 > 설계 > 구현 > 테스트 > 평가) > 2차 빌드(분석 > 설계 > 구현 > 테스트 > 평가 > 3차 빌드(분석 > 설계 > 테스트 > 구현 > 평가)

 

애자일 개발은 점진적 개발의 장점을 살리면서 요구사항의 변화를 주기적으로 수용하는 반복적 개발이라고 할 수 있는데 기존 점진적 개발과는 몇 가지 차이가 있다.

점진적 개발에서는 요구사항을 빌드별로 미리 할당해서 개발하지만 애자일 개발에서는 스프린트 단위로 요구사항의 변화를 수용하면서 개발한다. 스프린트를 계획할 때 기존에 계획한 요구사항과 전 스프린트에서 나온 변경사항을 비교하고, 구성원 간의 검토를 거쳐서 우선순위화하여 반영한다. 그러면 프로젝트 중간에 요구사항을 변경해도 다음 스프린트에 언제든지 반영할 수 있다.

스프린트에서 폭포수 방식으로 개발하지 않는다. 하지만 스프린트 안에서 분석, 설계, 구현, 테스트 같은 공정은 발생할 수 있다.

특별한 경우가 아니면 개발 주기가 규칙적이다. 이를 타임 박싱이라고 표현한다. 애자일 개발에서는 스프린트 기간이 2~4주일로 규칙적이다. 타임 박싱은 프로젝트에 규칙적인 리듬감을 주어 업무를 예측하는데 도움을 줄 수 있다.

 

- 애자일 개발 프로세스 

프로젝트 기획 (제품 기획, 타당성 검토, 프로젝트 승인) > 스프린트 0 (요구사항 분석, 아키텍처 정의, 개발 환경 셋업, 릴리즈 계획 수립) > 요구사항 우선 순위 > 스프린트 1 (스프린트 계획, 분석과 설계, 구현과 테스트, 스프린트 리뷰, 회고) > 요구사항 우선 순위 > 스프린트 N (시스템 테스트, 시범 운영)

 

참고

애자일 & 스크럼 프로젝트 관리 (이재왕 지음)

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감과 광고 클릭 부탁드립니다~