개발자 구직 공고를 보면 애자일, 칸반 및 스크럼 등 프로젝트 관리 방법론에 대한 지식이나 경험을 요구하는 곳들이 많다. 도대체 이것들이 의미하는 것이 무엇이길래 수많은 회사에서 그토록 강조하는 것일까?
워터폴(Waterfall) 방법론
워터폴 모델은 전통적인 방식으로, 말그대로 폭포수 처럼 각 단계의 업무가 순차적으로 이루어진다. 즉, 한 프로젝트를 끝내기 위해 각 단계를 순차적으로 나누고 우선순위의 단계가 끝나면 다음 단계를 진행하는 식으로 업무를 진행한다.
각 단계는 주로 아래와 같다.
요구 및 분석 -> 시스템 디자인 -> 구현(개발 혹은 코딩) -> 테스트 -> 배포(운영) -> 유지보수
워터폴 모델은 한번 시작하면 수정이 어렵기 때문에 각 단계를 명확하고 완벽하게 준비해야 한다. 따라서 다소 유연성이 부족하다는 단점이 있다.
애자일(Agile) 방법론
애자일은 짧은 주기로 작업을 반복하여 프로젝트를 관리하는 방법론으로, 각 주기를 ‘스프린트’라고 한다. 계획에 치중한 워터폴은 지속적인 변화에 대응하기 어렵다는 점을 개선하고자 나온 방법론이다.
애자일 선언문
프로세스와 도구보다 개인 및 상호작용
포괄적인 문서화보다 실질적인 소프트웨어
계약 협상보다 고객과의 협력
계획을 따르기보다 변화에 대응
워터폴 방식에 따라 요구 및 분석을 거쳐 디자인을 마치는데 까지 오랜시간이 걸려 개발에 착수 했는데 고객의 요구사항이 변경되는 바람에 디자인의 큰 틀이 변경되어야 하는 경우 다시 가장 처음 단계인 요구 및 분석을 돌아가야 한다. 애자일은 이러한 문제점을 개선하여, 완벽하지 않아도 일단 동작하는 프로토타입을 제공하여 빠른 피드백을 받고 고쳐나가는 과정을 반복해 나가는 방식이다.
칸반(Kanban) 이란?
칸반은 애자일 방법론의 하위 분야로, 보통 칸반 보드를 떠올리게 된다. 칸반 보드는 각 업무를 카드형태로 시각화 시켜서 표현한다. 할일 -> 진행중 -> 완료의 항목으로 칼럼을 구성하여 각 진행상황에 맞는 칼럼으로 카드를 옮겨가며 업무를 진행하게 된다.
시각화 된 프로젝트 관리 형태는 각 업무의 진행사항 및 결과, 그리고 업무의 담당자 및 기한 등의 세부사항을 직관적으로 한눈에 파악하기 쉽다.
스크럼(Scrum) 이란?
스크럼은 기본적으로 애자일 방식으로 작동하지만 차이점은 ‘스크럼 마스터’가 진두지휘 한다는 점이다. 스크럼 마스터는 스프린트를 계획하고, 매일 15분의 스탠드업 회의를 진행하며 지난 스프린트를 회고하도록 한다.
이러한 정해진 역할과 룰에 따라 스크럼 방식은 비교적 덜 유연한 것이 사실이다. 다만 업무에 대한 역할과 책임을 명확하게 두고 진행함으로써 현재 프로세스를 지속적으로 확인하고 개선하는데 도움이 되는 방법이다. 따라서 비교적 큰 단위의 팀과 큰 프로젝트에서 장점이 부각될 수 있다.
그래서, 어떤 방식을 써야하나?
워터폴 방식은 명확하게 정해진 계획이 있으므로 진행 상황을 쉽게 추적할 수 있고 업무 범위의 변동이 생기지 않는다. 하지만 부족한 유연성으로 프로젝트를 통째로 말아먹을 수도 있다. 또한 각자 업무의 역할이 뚜렷하게 나눠져 있기 때문에 명확하게 문서화 하지 않으면 인수인계가 어려워 질 수 있다.
애자일 방식은 예상치 못한 변화에 빠르게 대응할 수 있고 피드백에 즉각 대응하므로 고객만족을 높일 수 있다. 하지만 업무의 양이나 범위가 예기치 않게 많아질 수 있고 각 스프린트를 진행하는 도중에는 다른 업무를 진행하기 어려울 수 있다.
결국 정답은 없다. 각 회사마다 그리고 팀마다 맞는 방식이 있을 것이다. 현재 개발 분야에서는 애자일 방식의 선호도가 높은 것이 사실이나 굳이 워터폴 방식에서 잘 돌아가는데 억지로 애자일 방식으로 바꿀 필요는 없을 것 같다. 너무 한 방식만 고집하여 따르기 보다는 각 프로젝트 별로 밸런스 있게 중용하는 것이 좋은 방법이 아닐까?
참고: https://asana.com/ko/resources/waterfall-agile-kanban-scrum
'프로그래밍' 카테고리의 다른 글
이직, 그리고 그 과정 (0) | 2022.06.16 |
---|---|
4년 반 몸 담았던 회사를 떠나며 (0) | 2022.06.16 |
면접 본 (망한)후기 (0) | 2022.04.25 |
Drupal(드루팔)로 웹사이트 구축하기 (0) | 2021.12.15 |
The escaping cat on Scratch (0) | 2021.10.01 |