애자일 방법론 폭포수 방법론 비교


애자일 방법론 폭포수 방법론 비교
소프트웨어 개발 프로세스에서 폭포수(Waterfall) 방법론과 애자일(Agile) 방법론을 설명 한 후에, 각각의 모델의 특징과 장단점을 비교해 보도록하겠습니다. 그리고 하나의 프로젝트에서 두가지 방법론을 함께 사용하는 사례에 대해 설명드리도록 하겠습니다.

폭포수(Waterfall) 방법론

폭포수 모델은 소프트웨어 개발하는데 있어서, 각 단계가 위에서 아래로 물이 떨어지는 것처럼 순차적으로 진행되게 됩니다. 크게 아래의 이미지 처럼 요구사항 분석, 설계, 구현, 테스트, 유지보수로 나눠져 있습니다.

이 모델 특징으로는 폭포에서 물이 떨어지는 것처럼 위에서 아래 단계로 순차적으로 각 단계가 진행되게 됩니다. 여러 단계가 병행적으로 진행되거나 거꾸로 진행되는 경우가 거의 없습니다.

예를 들어 요구사항 분석이 끝난 다음에 설계가 이뤄지게 되며, 각 단계가 끝나야 다음 단계로 진행할 수 있습니다.

개발 분야가 단순하거나 잘 알고 있는 경우에 적합하며 각 단계를 거칠때마다 체계화된 문서가 작성되게 됩니다.

폭포수 모델 장단점
폭포수 모델은 각 단계를 문서화하는데 부담이 될 수 있습니다. 하지만 이 단점이 개발을 체계화된 문서를 기반으로 안정적으로 진행할 수 있다는 것이 될 수도 있습니다.

각각의 개발 단계에서 진행이 완료된 다음 다음 단계로 진행하기 때문에 개발 프로젝트를 진행하는데 리스크는 적습니다.
하지만 각 단계가 진행된 뒤에 요구사항이 변경되거나 설계등이 변경되면 추후에 커다란 문제가 발생될 수 있습니다.

그리고 실제 현실에서는 개발 프로젝트에서 요구사항이 변경될 가능성이 높아, 각 단계가 반복될 수 있기 때문에 다소 현실적이지 못한 개발 방법론이 될 수 있습니다. 실제 작동하는 소프트웨어는 개발 후반부에 확인할 수 있다는 것이 추가 단점이 될 수 있습니다.


애자일(Agile) 방법론

애자일 소프트웨어 개발 모델은 실용적인 측면을 강조한 개발 방법론 입니다.

아무런 계획없이 소프트웨어를 개발하는 방법과 지나치게 복잡하고 많은 계획을 수립하고 문서화를 한 뒤에 개발하는 방법론 사이에 타협점을 찾는 방법입니다.

폭포수 모델등의 고전적인 방법론과의 가장 큰 차이는 적은 문서를 지향하고, 실제 개발을 지향하는 방법입니다.

애자일 방법론 장단점
소프트웨어 개발 각 단계를 명확하게 구분하지 않고 각 단계를 반복적으로 수행하면서, 요구사항을 더하거나 수정하면서 소프트웨어를 완성해 나갑니다.

커다란 소프트웨어를 개발하는데 요구사항 분석이나 설계를 완벽하게 하기 어려울 때 적합한 개발 방법론이 될 수 있습니다.

그리고 적은 문서 작성을 목표하고 실제 개발을 지향하는 방법론이기 때문에 실제 작동하는 소프트웨어는 기존 폭포수 모델 방법론과 다르게 빠르게 확인 할 수 있다는 장점 또한 있습니다.

하지만 실용적인 측면에서 개발하기 때문에, 체계화된 문서가 적을 수 있다는 단점이 존재합니다.


애자일 방법론 폭포수 모델 비교

소프트웨어 개발 프로젝트를 수행하는 환경과 조건이 모두 다르기 때문에 적합한 모델이나 방법론은 상황에 따라 결정되어지는 것이 맞다고 생각합니다.

저같은 경우는 애자일 방법론을 선호합니다. 따라서 애자일 방법론으로 프로젝트를 시작했하다가, 개발된 프로토타입에서 고객사의 요구사항이 지속적으로 변경되고 추가되는 경우도 있습니다.

이 경우 이 후의 개발 방법을 폭포수 모델로 요구사항을 한 번에 정의하여 설계 후 진행할 수도 있습니다.
아래의 내용은 애자일 방법론과 폭포수 방법론의 주요 내용을 비교한 내용입니다.

폭포수(Waterfall) 애자일(Agile)
요구사항 한번에 정의 지속적으로 요구사항을 반영
고객과 의사소통 적음 많음
테스트 마지막 단계에서 테스트 지속적인 테스트

( 본문 인용시 출처를 밝혀 주시면 감사하겠습니다.)