애자일(Agile) 방법론은 오늘날 많은 기업에서 사용하고 있는 방법론입니다. 2023년 현재 대부분의 IT 조직 개발 환경은 애자일 방법론의 영향을 받았고, 실천하고 있다고 해도 과언이 아닌데요. 애자일 방법론의 출발은 소프트웨어 개발 방식이었지만 이제는 제품 개발을 넘어 하나의 일하는 방식, 워크플로우로 자리 잡았습니다.
A. 전통적인 워터폴 방법론
먼저 순차적인 진행, 명확한 요구 사항 분석이 중요시되는 워터폴 방법론부터 알아볼게요.
1. 워터폴(Waterfall) 방법론이란?
워터폴 방법론은 폭포수 방법론이라고도 불리며 이름에서도 알 수 있듯이 각 작업이 폭포처럼 위에서 아래로 떨어지는 단계별 개발 방법론입니다. 요구사항 정의(설계) → 디자인 → 개발 → 테스트 → 배포의 과정이 순차적으로 진행되며 이전 단계가 그다음 단계로 떨어지게 됩니다. 애자일 방법론이 등장하기 전까지는 소프트웨어 개발뿐 아니라 자동차, 선박 등 산업 현장에서 보편적으로 사용되던 프레임워크예요.
2. 워터폴 방법론 프로세스
1) 요구사항 정의(설계)
프로세스의 가장 첫 단계로 고객의 문제를 정의하고 요구사항을 문서화하여 정리하는 단계입니다. 어떤 작업이 필요한지, 필요한 리소스는 무엇인지, 우선순위는 무엇인지 등을 계획하는 단계인데요. 요구사항이 명확해야 프로젝트를 시작하고 무사히 완성될 수 있기 때문에 요구사항을 분석하고 문서를 정리하는 데 많은 시간과 노력이 소요됩니다.
2) 디자인
앞에서 정리한 요구사항을 충족할 수 있는 제품을 설계하는 단계입니다.
3) 개발
앞의 디자인 단계에서 설계한 내용에 따라 본격적으로 제품을 구현하고 만드는 단계입니다.
4) 테스트
만들어진 제품 기능이 제대로 작동하는지 테스트하는 단계입니다. 배포가 되기 전에 문제가 될 만한 버그, 오류를 찾아 수정합니다.
5) 배포
최종적으로 결과물이 출시가 되고 사용자에게 소프트웨어가 배포되는 단계입니다.
3. 워터폴 방법론 장단점
워터폴 방법론은 단계별로 업무를 분담하기 때문에 맡은 바가 명확하다는 장점이 있습니다. 계획 단계의 문서화로 단계마다 소요되는 시간이나 현재 상황을 추적하고 병목을 파악하기도 쉽습니다.
하지만 속도가 느리고 유연하지 못하다는 단점이 있습니다. 아래에선 위에서 물이 떨어질 때까지 마냥 기다리고 있어야 한다거나, 떨어진 요구사항대로 기능을 만들었으나 수 개월이 지난 시점에서는 시장 상황이 변해 더 이상 고객이 그 기능을 필요로 하지 않은 경우도 발생할 수 있죠.
B. 워터폴의 한계로 등장한 애자일 방법론
90년대 이후, 워터폴 방식은 한계가 드러나기 시작합니다. 인터넷 기술이 발달하고 개인 PC 보급이 늘어나면서 고객의 요구는 빠르게 변했지만 소프트웨어 개발은 이러한 요구사항에 민첩하게 대처하지 못했어요. 앞에서 언급한 것처럼 워터폴 방법론은 속도, 변화에 취약했고 문제가 발생했을 때 전 단계로 되돌리기 어렵습니다. 변경 사항이 생길 경우, 처음 계획 단계부터 다시 시작해야 했습니다. 이런 경직된 워터폴 방법론에 대한 대안으로 생겨난 것이 바로 애자일 방법론입니다.
1. 애자일(Agile) 방법론이란?
애자일(Agile)은 ‘기민한, 민첩한’이라는 뜻으로 일정한 주기를 가지고 빠르게 제품을 출시하여 고객의 요구사항, 변화된 환경에 맞게 요구를 더 하고 수정해나가는 탄력적인 방법론을 말합니다.
변화하는 고객 요구 사항에 대응하는 민첩한(agile) 개발 방식
2001년, 경험 많은 소프트웨어 개발자들은 본인들이 기존의 워터폴 방법론이 아닌 새로운 프로세스로 개발하고 있다는 사실을 인식했고 아래와 같은 애자일 선언문 (Manifesto for Agile Software Development)을 발표합니다. 이것이 애자일 방법론의 시작이라고 할 수 있어요.
2. 애자일 소프트웨어 개발 선언
우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다. 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다.
공정과 도구보다 개인과 상호작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를
가치 있게 여긴다.
이 말은, 왼쪽에 있는 것들도 가치가 있지만,
우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.
3. 애자일 방법론 프로세스
일반적으로는 오늘날 많은 기업에서는 스크럼(Scrum)과 같은 애자일 프로세스를 주로 활용합니다. 짧은 사이클로 제품을 개발하고 테스트하고 피드백을 받아 보완하는 방식인데요. 변화에 수동적으로 대처하기보다 변화를 하나의 고정값으로 전제하여 1~4주 작은 스프린트 단위로 디자인 → 개발 → 테스트를 진행합니다.
4. 애자일 방법론 장단점
애자일 방법론의 가장 큰 장점은 빠른 속도와 유연함입니다.
고전적인 폭포수 방법론과 다르게 첫 단계에서 모든 요구사항을 계획하고 분석하지 않기 때문에 디자인, 개발, 배포까지 신속하게 완수할 수 있죠. 계획에 의존하지 않고 일정한 주기마다 그때그때 요구사항을 반영하고 수정하여 시장과 고객의 변화에 대응하기 쉽습니다.
애플, 구글, 아마존 등 글로벌 기업을 포함하여 오늘날 네이버, 카카오 같은 국내 기업도 애자일 방법론을 활용하고 있는데요. 특히 제품을 배포하고 고객의 피드백에 따라 빠르게 보완해 나가는 것이 필요한 스타트업에 적합한 방법론입니다.
등장한 지 20년이 넘는 애자일 방법론은 많은 테크 기업, 스타트업에서 하나의 기본값이 되었으며 우리 조직과 제품에 적합한 애자일 방법론을 만들어가는 것에 집중하고 있습니다.
C. 워터폴 방법론과 애자일 방법론 비교
워터폴 방법론, 애자일 방법론이 무엇인지 어떤 상황에 적합한지 살펴보았는데요.
위 내용을 토대로 워터폴 방법론과 애자일 방법론을 비교하여 표로 나타내면 아래와 같습니다.
빠른 속도와 유연함이 중요한 스타트업과 기술 중심 기업에서는 흔히 애자일 방법론을 사용하고 있지만, 제품이나 기업에 따라 여전히 워터폴 방법론을 사용하는 기업도 있습니다.
오늘날 워터폴 방법론은 출시될 제품의 방향성이 명확하여 요구사항이 매우 디테일한 경우에 활용하기 적합합니다. 규모가 큰 제품의 런칭, 새로운 버전의 서비스 출시, 메인 기능의 개발 등에 주로 활용되고 있고 클라이언트의 요구사항에 따라 제품을 만드는 에이전시 또한 대부분 워터폴 방법론을 사용하고 있죠.
애자일 방법론과 워터폴 방법론은 생겨난 시기와 적합한 조직이 다를 뿐 둘 중 정답은 없습니다.
팀마다 처한 상황이 다르기 때문에 우리 팀에 적합한 방법을 고민하여 적용하는 것이 중요합니다.
[금융보안] 정보보호 인식제고 - 정보화 사회, 윤리 실천 방안
[보안] 01. 악성코드 정의, 악성코드 종류, 감염 위치, 네이밍 스키마
[CCNA] OSPF - 동작 과정, 패킷 종류, 구성법, 검증, 인접성, DR&BDR