개발하는 기획자

반응형

.....Waterfall model(?!)

프로젝트 방법론 - 애자일 vs 워터폴

회사에서는 정말 많은 프로젝트들이 진행이 됩니다.

 

프로젝트를 진행하는데에 있어서 분야가 달라도 굉장히 비슷한 부분들이 많습니다. 먼저 프로젝트의 순서는 대체적으로 초기 기획과 설계, 개발 또는 디자인, 피드백을 통한 수정, 점검과정을 거쳐 완료 산출물을 만들어 내는 과정인 것이죠.

 

이 과정을 가장 유연하게 풀어내고 현실적인 제한사항과 프로젝트의 일정과 성공적인 결과를 내기 위해서는 프로젝트를 유기적이고 체계화 해서 관리하는 것이 굉장히 중요합니다.

 

이런 프로젝트 진행에 대한 관리 방법에 대한 가장 이상적인 방법을 연구하고 정리한 부분들이 프로젝트 방법론입니다.

 

 

회사의 경영진은 개발팀에게 창의적이고 혁신적이 제품 또는 서비스를 만들 것이라는 기대감 하나로 말도 안되는 프로젝트를 시작하고 있습니다.

 

우스갯소리로 중소, 중견기업에 입사한 신입사원이 제일 처음 회사에서 놀라는 사실이 '이렇게 중요한 일을 이렇게 대충 처리해도 되는걸까?'라는 말이 있습니다.

 

그만큼 프로젝트나 일을 진행하는 부분에 있어 체계와 시스템이 갖춰지지 않은 조직이 많을 것입니다. 

 

이런 조직에서 가장 쉽게 도입하려 하고 표방하는 것이 프로젝트 방법론인데, 현재 대표적인 2가지의 방법론이 '워터폴 모델(Waterfall Model)과 애자일(Agile Model) 입니다.

 

 

"워터폴 모델"

 

일반적으로 가장 흔하고 보편적으로 사용되고, 한국에서는 어쩌면 당연하다 느껴지는 프로젝트 방법론 중 하나가 바로 워터폴 모델입니다.

 

영문 그대로 워터폴 모델이라 부르는 사람들도 많지만, 가끔 폭포수 모델이라고 하시는 분들도 종종 있습니다.

 

가장 익숙한 이유는 수직적인 구조로 굉장히 위계가 강한 조직과 잘 어울리기 때문입니다. 

 

그렇다고 '까라면 까!'하는 식의 상명하복의 구조가 아니라, 프로젝트의 순서를 단계별로 순차적으로 진행하는 방법을 의미합니다.

 

워터폴 모델에서는 일반적으로 단계를 4가지 단계를 거쳐 출시를 하는 과정을 가지며, 각각의 단계는 요구사항 분석, 설계, 개발, 검증입니다.

 

워터폴 모델에서는 각 개발에 필요한 단계를 순차적으로 진행하면서 한 단계, 한 단계 앞으로 나아가는 방식으로 진행됩니다. 즉 초기 단계에서 고객과의 인터뷰 또는 서류를 통한 요구사항 분석을 진행해 해당 내용을 확정하고 난 뒤, 설계를 진행할 수 있습니다.

 

또한 설계에서 전체 시스템에 대한 설계도가 모두 완성이 된 후 개발 단계로 넘어가 본 개발을 진행하고, 개발이 완료가 되면 검증을 하는 단계로 넘어간다. 

 

이렇듯 단계에 대한 구분을 명확히 하며, 개별 단계에서 정형화된 접근 방식을 통해 기술적인 리스크를 최소한으로 감소시키는 것이 장점인 프로젝트 방법론입니다.

 

위에서 설명한 것과 같이 기술적 리스크를 줄이는 부분에서는 어느정도 장점을 가지고 있으며, 각 단계에 대한 책임소재나 진행 여부가 명확하게 표시되는 부분으로 인해 대규모 프로젝트에 적합하다는 평을 많이 가지고 있는 모델입니다.

 

단점으로는 클라이언트와의 소통, 커뮤니케이션에 문제가 일부 발생할 수 있다는 점입니다. 초기 요구사항을 분석하고 추출하는 단계를 지나고 난 뒤에는 클라이언트의 입장에서는 결과물을 받아 테스트를 하기 전까지 정확하게 요구사항이 반영되었는지에 대한 파악을 하기가 어려운 부분이 있고, 요구사항이 중간에 고객과의 인터뷰를 통해 변경이 되는 상황이 발생한다면, 일정이나 비용적인 부분에서 수정이 어려운 모델이기도 합니다.

 

 

 

"애자일 모델"

 

애자일 모델은 실질적은 개발을 통한 방법론에 가깝다. 기존 워터폴 모델과 달리 문서를 통한 작업을 최소화하며, 실제 개발을 통한 작은 단위의 프로토타입, 테스트베드를 개발하고 이를 통해 발생하는 요구사항을 수정하고 기능을 더해 결국 최종적으로 큰 프로젝트를 완성시키는 방식을 설명하고 있다.

 

애자일 모델은 단어의 뜻을 보면, Agile 재빠르고 날렵하다는 뜻을 가지고 있습니다.

 

가끔 경량 프로세스라고 부르는 사람들도 있는 만큼, 프로젝트 진행에 있어 좋은 부분은 빠르게 취득하고, 필요가 없는 부분은 빠르게 버려 낭비를 줄이는 방법을 사용하고 있습니다.

 

하나의 단계가 완료되지 않으면 다음 단계로 넘어갈 수 없는 워터폴 모델과의 가장 큰 차이점은 애자일 모델에서는 일정한 주기를 설정하고 끊임없이 프로토타입을 만들고 클라이언트와 소통하며 요구사항을 더하고, 수정하는 방법으로 클라이언트가 개발 과정에 참여할 수 있는 부분이 발생하며, 조금 더 긴밀한 소통과 관계를 유지할 수 있도록 하는 방법론입니다.

 

굉장히 장점이 많은 모델이기도 하지만, 반대로 생각해보면 모든 과정에서 단점이 발생할 수 있습니다.

 

가장 크게 문제가 되는 부분은 클라이언트의 무리한 수정, 또는 무한 수정이라 불리는 요구사항 변경입니다.

 

정말 개발자 입장에서는 소통 한 번, 한 번이 모두 악몽과 같은 개발로 돌아올 수 있는 단점이 있습니다.

 

 

 


 

비즈니스는 시시각각 변화하고 있습니다.

 

변화에 맞춰 창의적이고 재빠르게 움직이기 위해서는 프로젝트의 방법론도 시대에 흐름에 맞게 변화해 나가야 될 것이죠.

 

단순하게 프로젝트 방법론.

 

개발 방식만 달라져서는 한계가 빠른 시간에 다가올 것입니다.

 

관리 문화와 인식과 조직의 사고가 유연하게 달라져야 하고, 현재 내가 속한 또는 운영하는 조직에 가장 잘 맞춰 사용할 수 있게 재단된 우리 조직만의 방법론을 찾을 수 있길 바랍니다.

 

여담으로 저는 애자일 모델을 굉장히 싫어합니다.

 

이와 관련되서 애자일 모델에 대해서는 조금 더 소개할 수 있는 포스팅을 준비하면서 소개를 해볼까 합니다.

 

읽어주셔서 감사합니다.

 

 

 

 

 

반응형

이 글을 공유합시다

facebook twitter googleplus kakaostory naver
-->