코드스테이츠 프론트엔드·백엔드 개발 부트캠프ㅣ코딩은 기본, 협업까지 배우는 팀 프로젝트
프론트엔드·백엔드 개발 부트캠프에서 진행하는 팀 프로젝트를 소개합니다.
인사이트
신입 개발자가 알아두면 좋은 IT 애자일 프로젝트 용어 (칸반보드, 간트차트, 스크럼)
2023년 06월 23일
안녕하세요, 코드스테이츠 소프트웨어 엔지니어링 백엔드 부트캠프의 프로젝트팀 교육 엔지니어 정여진입니다. 코드스테이츠 백엔드 부트캠프에는 팀 프로젝트 과정이 있습니다. 그동안 학습했던 내용을 바탕으로 프론트엔드 개발자와 협업하며 웹 애플리케이션을 개발하는 방법을 알아가는 과정인데요.
개발 분야의 팀 프로젝트 수행이 처음인 수강생분들의 경우, 진행 과정에서 생소한 개념이나 용어를 어려워하시는 경우가 많았습니다. 오늘은 개발자를 꿈꾸는 분, 신입 개발자분을 위해 프로젝트 관리 방법과 진행 과정에 대해 간단하게 소개하려 합니다. 프로젝트 관리 방법은 도메인, 기업의 종류만큼 다양하고 적용하는 방식도 저마다 다르기 때문에 ‘이런 흐름도 있구나’ 정도로 생각하고 읽어주세요!
– 스타트업에서 첫 MVP를 개발하는 상황
먼저 프로젝트의 의미와 다루게 될 사례를 정의하고 시작하도록 하겠습니다. 이번 글에서는 프로젝트를 기업에서 목적을 달성하기 위해 수행하는 기간, 배정된 금액, 투입 인력이 정해진 업무의 묶음, 제품을 개발하기 위한 팀 단위의 업무로 정의합니다. 그리고 이해를 돕기 위해 한 스타트업에서 어떤 사업의 첫 MVP(Minimal Viable Product)를 생산하는 상황으로 가정하겠습니다. MVP란 ‘최소 기능 제품’이라는 뜻으로 핵심 가치를 시장에 빠르게 전달하기 위해 최소한의 기능으로만 구성된 제품을 의미합니다.
프로젝트 흐름을 알아보기에 앞서, 개발 방법론부터 살펴보겠습니다.
기업에서는 효율적인 개발을 위한 개발 방법론을 사용하는 경우가 많습니다. 물론 개발 상황에 맞게 여러 방법들을 사용하지만 대표적으로 많이 활용하는 방식은 애자일(Agile)방식과 워터폴(Waterfall)방식 입니다.
우선, 워터폴 방식은 전통적인 개발 방식으로 폭포수 방법론이라는 이름에서도 알 수 있듯이 각 작업이 폭포처럼 위에서 아래로 떨어지는 단계별 개발 방법론입니다.
일반적으로 요구사항 정의(설계) → 디자인 → 개발 → 테스트 → 배포의 과정이 순차적으로 진행되는데요. 앞 단계가 완전히 종료된 후 다음 단계를 진행하게 됩니다. 그렇다 보니 한 단계가 완전히 종료되면 고객의 추가 요구사항을 반영하거나 프로젝트의 방향성을 수정하기 어렵다는 단점이 있습니다.
하지만 장점도 많습니다. 앞 단계에서 요구사항을 분석하고 문서를 정리하는 데 많은 시간을 기울인 만큼, 단계마다 소요되는 시간이나 최종 완료일을 파악 할 수 있어 일정 관리가 쉽습니다. 현재 상황을 추적하고 병목을 파악하기도 비교적 쉽죠. 또한, 이미 성공적인 선례를 보유하고 있다면 예산을 관리하기에도 용이합니다.
만약 기업이 웹사이트를 추가로 제작한다고 가정해볼까요? 많은 사용자를 보유하고 있는 웹사이트를 이미 가지고 있다면, 해당 웹사이트를 벤치마킹하여 좋은 선례를 따라 순차적으로 프로젝트를 진행할 수 있는 워터폴 방식을 채택하는 것이 일정 및 예산 관리 면에서 효율적입니다.
애자일(Agile)은 ‘기민한, 민첩한’이라는 뜻으로 애자일 방법론은 빠르게 변하는 고객의 요구사항을 반영하고 수정해나가는 탄력적인 방법론을 말합니다.
불확실한 요구사항을 맞춰 나가기위해 시범적으로 작은 규모의 제품을 선보이고 빠르게 변화하는 고객의 요구사항을 반영하여 다시 보완하는 비교적 짧은 개발 주기를 반복하여 요구사항을 맞춰 나갈 수 있습니다.
워터폴 방식과 비교했을 때, 정확한 일정을 산정하고 예산을 세우기 어렵다는 단점이 있지만, 짧은 개발 주기를 반복하여 중간에 프로젝트의 방향성이 변경된다고 해도 변화에 유연하게 대응 할 수 있습니다. 따라서 애자일 방법론은 프로젝트 방향성을 비교적 유연하게 변경해야 하는 프로젝트에 적합합니다.
애플, 구글, 아마존 등 글로벌 기업을 포함하여 오늘날 네이버, 카카오와 같은 국내 많은 기업도 애자일 방법론을 활용하고 있습니다. 워터폴 방법론과 애자일 방법론은 생겨난 시기와 적합한 조직이 다를 뿐 정답이 있는 것은 아닙니다. 프로젝트 규모와 일정, 고객 요청의 반영 여부, 프로젝트의 방향성, 팀이 처한 환경 등 많은 부분을 고려하여 우리팀에 맞는 방법론을 적용하는 것이 중요합니다.
신규 사업을 시작하는 스타트업이라면, 워터폴과 애자일 방법론 중 어떤 것이 더 적합할까요?
제품을 일단 배포하고 고객의 피드백에 따라 빠르게 보완이 필요한 스타트업에서는 애자일 방법론을 사용하는 것이 일반적입니다. 시장의 정확한 요구를 한 번에 맞출 수 있다면 좋겠지만, 시장은 계속 변화하고 고객의 요구도 따라서 변화합니다. 따라서 첫 MVP를 만들고자 하는 스타트업이라면 스프린트를 반복하며 고객의 니즈를 맞춰나갈 수 있는 애자일 방법론을 활용하는 것이 더 효율적입니다.
스프린트가 무엇인지, 실제 기업에서 애자일 방법론을 활용해서 어떤 흐름으로 프로젝트를 진행하는지 아래에서 더 자세히 설명하겠습니다.
본격적으로 개발에 착수하기 앞서 요구사항 정의가 진행됩니다.
기능, 비기능 요구사항과 사용자, 시스템 요구사항에 대한 정의를 마치고 개발팀이 예상하는 작업량을 측정하게 됩니다. 벤치마킹할 수 있는 사업을 탐색하고, 제작할 제품의 요구사항을 검증하는 등 매우 중요한 단계입니다. 프로젝트 착수 전, 사용 기술을 선택하기 위해 기술을 시험해 보는 단계인 파일럿 프로젝트(프로토타입)를 거치기도 합니다.
요구사항이 정의되었다면, 아래 흐름으로 애자일 방법론 프로젝트가 진행됩니다. 회사의 상황에 따라 세부 절차는 조금씩 다를 수 있습니다.
스프린트는 애자일 방법론에서 일정 기간(약 2~4주) 정기적으로 수행되는 작업 단위를 말합니다. 스프린트 계획을 진행하며 스프린트에 포함할 작업을 선정하고 수행할 우선순위를 정하며 개발팀이 수행할 작업의 범위를 결정합니다.
백로그는 개발 작업의 전체 목록입니다. 백로그에는 요구사항에 대한 기능, 작업, 버그 등을 작업의 우선순위를 포함해 상세히 작성합니다. 이후 백로그 목록은 칸반보드 혹은 간트차트를 활용해 작업 진행 상황을 관리할 수 있습니다.
칸반보드는 기본적으로 Back Log(목록), To do(할 일), In Progress(진행 중), Done(완료) 열로 나뉘어 보드의 카드(개발 작업 중 한 개의 일감)를 업무의 진행 상황에 맞게 옮길 수 있도록 시각화한 프로젝트 관리 방법입니다.
칸반은 팀의 프로젝트 흐름을 쉽게 파악할 수 있어 작업의 속도와 처리량을 높이는 것에 도움을 줄 수 있고, 한 번에 수행할 작업량을 조절할 수 있어 과도한 일정으로 인한 병목 현상도 방지할 수 있습니다.
간트차트는 프로젝트의 진행 상황과 종속성을 가로막대 그래프로 볼 수 있도록 시각화한 관리 방법입니다. 규모가 큰 프로젝트에서 간트차트를 사용하면 PM이 프로젝트를 한눈에 쉽게 파악하고 작업 종속성을 파악할 수 있습니다. 진행 상태 추적 또한 용이하기 때문에 일정 관리에 많은 도움을 주는 관리 방법입니다.
스프린트 실행 단계에서는 개발팀이 스프린트 동안 계획된 작업을 수행합니다. 개발팀은 요구사항에 따라 코드 작성, 테스트, 통합, 문서화 등을 진행하며, 스프린트 목표를 달성하기 위해 협업합니다.
스탠드업 미팅이라고도 불리는 일일 스크럼은 개발팀이 매일 진행 상황을 공유하고, 문제점을 해결하며, 다음 작업에 대한 계획을 조율하는 일일 회의입니다. 이 회의는 짧은 시간에 각 팀원의 업무 상태를 파악하고 팀 간의 협업을 원활하게 유지하는 것에 도움을 줍니다.
작업이 완료되면 개발팀은 해당 작업의 결과를 검토합니다. 검토는 코드 품질, 기능 완성도, 사용자 요구사항 충족 여부 등을 평가하고, 필요한 수정 사항이나 피드백 등을 반영하는 작업입니다.
검토까지 마치면 회고를 진행합니다. 회고는 개발팀이 프로젝트 진행 과정을 돌아보며 개선점을 도출하고 다음 스프린트에 적용할 수 있도록 팀의 성과, 프로세스 개선, 의사소통 개선 등 전반적인 방면을 돌아보며 정리하는 작업입니다.
여기서 이번 스프린트에서 달성하지 못한 작업이 있다면 다음 스프린트로 이관합니다. 회고 때 나온 내용을 바탕으로 개발 기능 범위나 개발 담당자 등이 변경될 수 있습니다. 요구사항이나 검토사항에 해당 내용이 반영되어야 하고 칸반보드도 이에 맞게 수정되어야 합니다. 만일 해당 스프린트가 프로젝트의 마지막 스프린트라면 개선사항 도출은 생략하는 대신 프로젝트 전반에 대한 경험을 함께 공유합니다.
이렇게 스프린트 회고를 마지막으로 다음 스프린트가 진행되거나 개발 프로젝트가 종료됩니다.
애자일 방법론을 적용한 스타트업 개발팀의 프로젝트 프로세스, 어떠셨나요? 낯선 용어들이 많지만 간단히 말하면 기획 → 분석 → 설계 → 구현 → 검토의 흐름이라 크게 어렵지 않으셨을 것이라 예상합니다. 실제 부트캠프 수강생들이 진행한 팀 프로젝트가 궁금하다면 아래 글을 읽어보시는 걸 추천드립니다.
프론트엔드·백엔드 개발 부트캠프에서 진행하는 팀 프로젝트를 소개합니다.
이 글을 보실 예비 개발자, 신입 개발자분들이 프로젝트 흐름을 이해하는 것에 조금이나마 도움이 되었길 바라며 마치도록 하겠습니다.
글 정여진 Educational Software Engineer (백엔드 부트캠프)
원고 검수 구민상 R&D Lead (백엔드 부트캠프)
편집 조주연 Content Manager
👩💻 개발자 커리어의 시작,
코드스테이츠 부트캠프가 더 궁금하다면?
목록 보기
추천글