brunch

You can make anything
by writing

C.S.Lewis

by jinhooah Aug 20. 2023

프로젝트 방법론: Agile과 Waterfall

무엇이 정답인가?


프로젝트 관리와 소프트웨어 개발에서 자주 사용되고 너무나도 잘 알려진 두 가지 프로젝트 방법론, 

Agile과 Waterfall에 대해 각각 어떤 특성을 가지고 있는지 살펴보자 합니다. 



Waterfall : 워터폴 방법론이란?

접근 방식: 시작부터 목표와 결과는 확립됨

유연성: 낮음

요구 사항: 다음 단계로 진행하기 위해서 전단계가 수행되어야 함


말 그대로 폭포수를 뜻하는 워터폴 방법론은 프로젝트의 모든 단계를 순차적으로 진행하는 전통적인 개발 프로세스로, 한 단계가 완전히 마무리 되기전까지 다음 단계가 시작되지 않는 특징을 가지고 있습니다. 이러한 구조의 특성상, 워터폴 방법론에서는 초기 계획 단계에서 수행된 작업의 양과 품질에 따라 프로젝트의 결과물이 크게 달라지게 됩니다. 대규모 팀의 합의점 도출에 용이하며 일정관리가 안정적인 면이 있으나, 직렬로 이루어지는 프로세스에 의해 개발속도가 느리며 개발 방향성에 대한 유연성이 상대적으로 부족합니다.

워터폴 개발 프로세스


워터폴 방법론 프로세스

워터폴 방법론에서는 보통 5단계의 프로세스로 이루어집니다.


1. 요구사항

'첫 단추를 잘 꿰어야 한다' - 프로젝트를 성공으로 이끌기 위한 첫 단추인만큼, 제일 중요한 단계라고도 볼 수 있으며, 최대한 정확한 정보를 수집하여 프로젝트의 계획과 필요한 요구사항들을 정의를 합니다. 문제 및 가설은 무엇이고, 어떠한 작업이 필요한지, 필요한 자원과 리스크, 성공에 대한 지표 등 프로젝트의 전반적인 요구사항들을 수집하여 정보구조도 및 화면설계서와 같은 양식의 형태로 문서화합니다. 이 단계의 본질은 프로젝트를 같이 수행할 디자이너와 엔지니어에게 무엇이 만들어져야 하는지를 커뮤니케이션하기 위함입니다.


2. 디자인 (시스템 설계)

요구사항에서 수집된 시나리오, 레이아웃 및 데이터 모델을 포함하여 기술적인 해결책을 설계하는 과정입니다. 프로젝트의 목적과 범위에 기반하여 어떻게 정보나 데이터가 시스템 내에서 움직이게 될 것인지, 시스템의 여러 부분들이 어떻게 연결되는지에 대한 논리적인 디자인과 더불어 어떤 하드웨어와 소프트웨어를 사용하여 데이터를 저장할 것인지에 대한 물리적 디자인 계획을 세웁니다.


3. 구현

프로젝트의 요구사항과 디자인에서 단계에서의 설계를 바탕으로 실제적인 제품을 구현하는 단계입니다. 세세한 연구와 디자인은 수행되었기 때문에, 워터폴 프로세스에서 가장 짧은 단계일 수도 있습니다. 


4. 검증 및 테스트

제품 구현이 완료되면, 고객에게 출시하기 전에 오류가 없고 모든 요구사항이 완료되었는지를 확인하기 위해 테스팅을 진행합니다. QA(Quality Assurance)팀은 제품의 품질을 위해 발견한 모든 문제를 문서화하고, 사용자 사례 시나리오를 참조하여 테스트 케이스를 작성하기도 합니다.


5. 배포 및 유지 관리

테스트가 성공적으로 완료되면 제품을 시장에 배포하고 최종 고객에게 전달됩니다. 새로운 버그나 결함이 발견되거나 사용자로부터 요구사항이 들어오면 이를 기반으로 지속적으로 업데이트를하여 제품을 관리합니다.  



Agile : 애자일 방법론이란?


접근 방식: 이해당사자들과의 지속적인 상호작용

유연성: 높음

요구 사항: 팀의 주도성 및 단기 마감


'민첩함'을 뜻하는 애자일은 자원과 리소스의 낭비를 줄이기 위해 린 스타트업 사고방식을 적용한 프로젝트 방법론입니다. 기존의 워터폴 방식은 제품을 고객에게 전달하기까지 너무 오랜 시간이 걸리고 프로젝트의 유연성이 낮은 단점이 존재했는데요. 이에 대한 대안으로 2001년, 소프트웨어 업계를 주도하는 리더들이 애자일 소프트웨어 개발을 위한 선언을 공표를 했습니다. 


                                프로세스와 도구보다 개인과 상호작용을

                                포괄적인 문서보다 작동하는 소프트웨어를

                                계약 협상보다 고객과의 협업(참여)을

                                계획을 따르기보다 변화에 대응하기를


선언을 보면 유추할 수 있듯이, 애자일은 빠르게 변화하는 시장의 니즈를 파악해, 중요한 핵심기능을 담아 작동하는 소프트웨어를 출시하고, 고객과의 지속적인 협업과 피드백을 통해 이 프로세스를 빠르게 반복(iteration)하는 것을 목표로 합니다. 이를 기반으로, 시장에서 현재 필요한 문제와 소프트웨어가 실제로 해결하는 문제의 갭을 효과적으로 줄일 수 있게 합니다.

애자일 개발 프로세스


대표적인 애자일 개발 프레임워크

1. 스크럼 (Scrum)

전 세계적으로 널리 인정받는 프레임워크로, 반복적인 개발 주기를 스프린트(Sprint)라는 단위로 나누어 개발을 진행합니다. 각 스프린트는 주로 1 ~ 4주 사이의 시간 프레임을 가지며, 이 때 고려되는 작업들(프로덕트 및 스프린트 백로그)은 초기에 우선순위를 기반으로 선별되고, 해당 기간동안 작성된 프로덕트 및 스프린트 백로그 작업들을 수행합니다. 완료하지 못해도 다음 스프린트로 넘어가기 때문에, 단기간에 팀원들이 몰입하기 좋은 프로세스입니다. 개발 중에는 지속적으로 리뷰 및 검토를 진행하면서 프로젝트의 투명성과 방향성을 유지하며, 스프린트가 완료되면 회고를 통해 잘된 것과 개선점을 고려하여 다음 스프린트를 준비합니다.


2. 칸반 (Kanban)

토요타 자동차의 칸반 작업 시스템에서 유래된 칸반 프레임워크는 스크럼에서 강조되는 스프린트라는 개념이 존재하지 않습니다. 프로덕트의 백로그만 존재하며, 대신 칸반은 동시에 처리할 수 있는 백로그의 수를 제한함으로써 속도와 생산성을 이끌어냅니다. 


칸반 예시 출처: https://www.marimba.team/kr/blog/task-management-using-backlog/


애자일의 핵심

애자일의 본질은 최종 사용자에게 빠르게 작동되는 소프트웨어를 빠르게 전달하는 것입니다. 워터폴 방식은 홀케이크를 한 번에 제작하는 것이라면, 애자일 방식은 조각 단위로 나누어 만들어, 하나의 케이크를 완성시키는 것이라 볼 수 있을 것 같습니다.



Waterfall vs Agile



아래의 사진과 같이 주요 목표나 제품/기능을 더 작고 관리하기 쉬운 단위로 분해하고, 그것들을 우선순위에 따라 점진적으로 완성시켜 나가는 것입니다. 중요한 것은 위의 조각'케이크'처럼 하나의 '기능'으로 작동되는 완성품을 사용자에게 전달할 수 있어야 한다는 것입니다.





Agile vs Waterfall : 무엇을 써야 하는가?

쿠팡, 토스 등의 주요 IT 기업들은 애자일 방법론과 문화를 적극적으로 도입을 하는 있으며, 현재 트렌드는 확실히 애자일 쪽에 많이 기울어져 있다고 생각합니다. 워터폴 방식은 점차 구식으로 여겨지기도 하는 것 같은데요. 하지만 이것은 조직의 문화, 제품의 성격, 타겟 고객 등 여러 복합적인 요소들을 고려하며 판단할 문제라고 생각됩니다. 이에 따라, 애자일과 워터폴을 하나의 스펙트럼으로 바라보고 두 가지의 방법론의 장점들을 적절히 섞어가는 전략이 현명하지 않을까 생각을 합니다.


The Agile Spectrum



참고자료:


매거진의 이전글 서비스 기획이란 무엇인가?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari