본문 바로가기
까망 동네/까망

애자일과 워터폴

by 까망 하르방 2021. 2. 18.
반응형

프로젝트 수행에 있어서 개발환경, 비용, 기간, 규모, 숙련도, Risk 등 다양한 요인을 고려해서

최적의 개발 모델을 선택해야 합니다.

 

<프로젝트 수행 큰 흐름>

: 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수

    ※ SW 요구사항: Software가 제공해야하는 서비스/ 품질 등과 관련된 제약

    ※ 유지보수: 오류 발견 및 수정, 인프라 변경에 대한 대응, 기능/성능 개선 등

 

폭포수 모델(Waterfall Model)

- 각 단계 종료 후 다음 단계로 진행하는 방식입니다.

  (순차적으로 이어지는 흐름이 마치 폭포수처럼 보인다해서 명명되었습니다.)

- 정해진 단계별로 업무가 분장되기 때문에 프로세스 상의 마일스톤을 정하는데 있어서 용이합니다.

   (각 단계마다 기간 할당하며, 단계별 공식 산출물도 존재합니다.)

- 단계별 경계 구분이나 고객의 요구사항 변경시 이전단계로 돌아가서 대응하기 쉽지 않음

  (이전단계로 돌아가는 경우 일정 및 비용에서 애로사항이 발생합니다.)

  ex) 폭포수 모델의 경우 『구현』 단계에 이르러서야 서비스의 Proto Type이 나올 수 있기에

        고객과의 소통에 있어서도 쉽지 않을 수 있습니다. 

        (화면 설계 문서, 요구사항 정의서만으로는 어려움 존재)

 

애자일(Agile)

- 폭포수 모델의 단점을 해결을 위한 대안으로 등장 → 고객 요구사항 변경에 대한 빠른 대응

  (반복적 / 점진적 개발 방법론의 한 유형)

- 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어 내며 필요할 때마다 

  요구사항을 반영하여 개발해 나가는 방식 (고객과의 의사소통 중시)

  (잦은 배포를 통한 Risk 감소)

- 문서보다는 실질적인 코드 중시 (Less Document-Oriented)

- 애자일에는 반복되는 개발 주기를 뜻하는 "스프린트(Sprint)"가 존재하는데,

  1~2주, 3~4주 짧은 단위부터 30일 단위까지 다양하게 스프린트를 쪼개며 진행합니다.

- 특정 기간 동안 목표와 필요 작업을 명시하고, 백로그(Backlog)로 진행방식을 남겨

   각 스프린트가 끝나는 시점에 리뷰하고 피드백을 주고받는 형태

 

폭포수 vs 애자일

폭포수(Waterfall) 방법론은 요구사항을 완벽하게 취합하여 계획대로 진행하는 방법론

애자일(Agile)은 요구사항을 초기에 완벽하게 취합하는 것이 불가능하기 때문에 

  개발 주기를 반복하고 고객과 소통하면서 소프트웨어의 품질을 발전시키는 방법론

* 서두에도 말씀드린 바와 같이 두 가지 방벙론 특징을 바탕으로 개발 조직에게 적합한 방법론을 적용해야 합니다.

▶ 초기단계에서 정의된 요구사항 vs 각 단계마다 변경되는 요구사항 반영

▶ 빅뱅 (Big Bang) 릴리즈 vs 빠른 릴리즈

▶ 고객과의 비교적 적은 의사소통(문서 위주)  vs 고객과의 지속적인 의사소통(코드 위주)

▶ 단계별 중간물 전달 vs 진행하고 있는 작업본을 지속적으로 전달

▶ 마지막 단계에 통합 및 테스트 vs. 애자일 : 초기와 이후 잦은 통합 및 테스트

반응형

댓글