개발 방법론 폭폭수 VS 에자일
소프트웨어 개발 방법론은 다양합니다. 이루고자 하는 목적에 맞춰 제대로 된 방법론을 선택하여 소프트웨어를 개발하는 것이 중요하게 여겨지는 시대가 되었습니다. 그 중에서 대표적인 방법론이 폭포수(waterfall) 방법론과 애자일(Agile) 방법론입니다.
폭포수( waterfall ) 방법론
폭포수(waterfall) 방법론은 말 그대로 물이 위에서 아래로 떨어지는 것처럼 정해진 순서에 맞춰 순차적으로 진행하는 방법론을 말합니다.
1950년대에 언급되어 그 동안 개발 표준 방법으로 각광을 받아왔습니다.
건설업, 제조업 등에서 시행하던 방법론으로 정해진 순서에 따라 일하고 그 순서에 맞는 결과물이 나오는 형식의 방법론입니다.
이렇게 구조화된 공정 순서에 맞춰 작업하는 것이 효율적이라고 증명되어 소프트웨어에도 그 방법론이 적용되었다고 보시면 됩니다.
현재까지도 소프트웨어 개발 시 가장 많이 사용하는 방법론 중 하나입니다. 예를들어 쇼핑몰을 구축한다고 가정한다면 사이트 컨셉/방향성, 어떤 기능을 구현할지 등에 대한 고객의 요구사항 분석이 완료되면 요구사항에 맞춰 설계를 하고 기획을 합니다. 그리고 디자인/개발을 하고 테스트를 한 후 완료합니다. 그 후 지속적인 유지보수를 통해 사이트를 유지해 나가는 방법입니다.
위에서 언급한 각 단계마다 어마무시한 산출물(문서)이 생성되며 각 단계별로 엄격한 계획과 일정이 존재하므로 원하는 일정에 맞춰 개발 결과물을 얻을 수 있습니다.
하지만 모든 공정이 순차적으로 진행되다 보니 중간에 이 전 단계의 작업이 잘 못 되었다고 판단되더라도 쉽게 이전으로 되돌리기 어려운게 가장 큰 단점입니다.
예를들어 100층 짜리 건물을 짓고 있고 50층쯤 건물이 올라갔는데 10층~20층 사이에 작업자의 실수로 필수 작업을 안했다고 가정한다면? 이 건물을 부수고 다시 처음부터 작업을 해야하는지 등에 대한 결정을 해야하는데 그런 부분들이 전부 시간과 돈이 투자되는 일이기 때문에 치명적일 수 있습니다. 그래서 폭포수 방법론으로 개발을 할 경우에는 개발보다는 요구사항분석, 설계 등 기본 작업이 더 치밀하게 작성되어야 이런 불상사를 막을 수 있습니다.
애자일(Agile) 방법론
반대로 애자일(Agile) 방법론은 실용적인 측면을 강조한 개발 방법론입니다.
‘Agile = 기만한, 날렵한’ 뜻에서 알 수 있듯이 좋은 것은 빠르게 취하고, 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말입니다.
폭포수 방법론과는 반대로 프로젝트가 언제 끝날지 예측이 어려운 방법론이지만 고객 입장에서는 최소의 기능을 빠른 시일 내 받아 볼 수 있고 회사는 고객의 피드백을 받아 제품을 다시 짧은 시간에 업그레이드해서 출시할 수 있습니다.
애자일 방법론은 데드라인이 없고 빠르게 대응하는 것이 중요하기 때문에 스프린트(Sprint)라는 5일짜리 프로그램 단위로 움직인다고 볼 수 있습니다.
스프린트는 프로토타입을 제작하고 고객과 함께 아이디어를 테스트하여 중요한 문제들에 대한 답을 찾는 독특한 5일짜리 과정입니다.
다만 스프린트가 무조건 성공의 열쇠는 아니라고 생각합니다. 스프린트야 말로 팀이 보유한 지식, 맨 파워, 그리고 무엇보다 5일간의 프로그램이 꼭 진행해야하는 공통된 확신이 있어야 성공적인 결과물을 보장할 수 있습니다.
스프린트는 팀 단위로 짧게 이뤄지는 일이라 무엇보다 팀 캐미에 따라 상이한 결과물이 나올 수 있다고 봅니다.
요즘엔 무수히 많은 스타트업이 생기고 있고 다양한 서비스가 출시되고 있습니다. 팀 단위로 움직이는 스타트업에게 애자일 방법론은 상당히 긍정적인 결과를 도출할 수 있다고 생각합니다.
다만 현실적으로 끝을 알 수 없고 데드라인이 없는 방법론이다 보니 특별한 비즈니스 모델도 없이 개발만 하다 사업이 끝날 수도 있는게 현실입니다.
개인적인 생각으로는 우리나라 IT현실에는 맞지 않는 방법론이라고 생각하며 구글 같은 대기업 또는 투자를 많이 받은 스타트업은 가능할 수도 있겠으나 현실적으로 당장 돈을 벌어야 하는 비즈니스 모델이 고픈 업체에서는 쉽게 해볼 수 있는 방법론이 아니라고 생각합니다. 그리고 더 중요한 것은 애자일 방법론을 아주 잘 핸들링 할 수 있는 리더가 많은지도 한 번 짚어봐야 할 문제라고 생각합니다.