이 글은 우리FISA 1기 굿프렌즈팀의 기술 블로그에 게시된 글 입니다.
애자일(Agile)이란?
애자일 소프트웨어 개발(Agile software development) 혹은 애자일 개발 프로세스는 소프트웨어 엔지니어링에 대한 개념적인 얼개로, 프로젝트의 생명주기동안 반복적인 개발을 촉진한다. - 위키백과 -
**Agile**
은 소프트 웨어 개발 방법론 중 하나로, 서로 다른 여러 맥락에서 따른 방법론과 테크닉의 조합이다.
애자일 원칙의 절차적인 부분
들은 팀과 조직이 어떻게 구성되고 협업해야 하는지에 대한 것들을 규정한다.
-
회의 방식, 구성원 각각의 역할, 요구사항 파악 방법, 작업 진척 속도 파악 방법, 점진적/반복적으로 일할 때 취하는 방식 등과 같은 것들이다.
-
팀에 정말로 중요한 것, 비즈니스 가치가 있는 것에 집중한다.
애자일 원칙의 기술적인 부분
들은 개발, 확장, 유지보수, 제품을 출하면서 어려움들에 대해 특정한 기술적 관례나 기술 자체를 매우 구체적으로 가이드한다.
- 테스트 주도 개발(TDD), 페어 프로그래밍, 지속적인 통합, 단순한 디자인 원칙 등과 같은 것들이다.
애자일 개발 프로세스
애자일 방법론은 프로세스 전반적인 과정(기획->디자인->개발->테스트->배포)
을 최대한 신속하고 시간낭비 없이 프로덕트를 만드는 다양한 방법론 전체를 일컫는다.
그 예로 스크럼(Scrum), 익스트림 프로그래밍(XP), 칸반(Kanban) 등이 있으며 가장 대표적인 것이 스크럼
이다.
스크럼
스크럼(scrum)은 프로젝트 관리를 위한 상호, 점진적 개발방법론이며, 애자일 소프트웨어 개발 중의 하나이다. - 위키백과 -
스크럼
은 작은 주기(Sprint)로 개발 및 검토를 하며 효율적인 협업 방법을 제공한다.
주요 용어
-
제품 백로그(Product Backlog): 개발할 제품의 요구사항인 사용자 스토리 집합이며, 우선순위로 관리한다.
-
스프린트(Sprint): 기획, 개발, 테스트, 배포 작업 등의 최소 단위의 Cycle이다.
-
스프린트 계획 회의(Sprint Planning Meeting): 스프린트 목표와 스프린트 백로그를 계획하는 회의
-
스프린트 백로그(Sprint Backlog): 각각의 스프리트 목표에 도달하기 위한 필요한 작업 목록
-
일일 스크럼(Daily Scrum): 하루의 할 일을 공유하는 회의(매일 15~20분 정도 수행)
-
스프린트 리뷰(Sprint Review): 스프린트 마지막날 개발자가 개발한 내용을 주주, 고객, 제품 책임자에게 시연하고 검토(4주 스프린트 기준 4시간 정도 수행)
-
스프린트 회고(Sprint Retrospective): 스프린트 마지막날 좋았던 점, 문제점, 개선할 점을 KPT(Keep, Problem, Try) 형식으로 정리한다.(4주 스프린트 기준 3시간 정도 수행)
-
사용자 스토리(User Story): 사용자가 사용하는 관점에서 어떤 가치를 제공할 것인지를 설명한다.
-
인수 기준(Acceptance Criteria): 사용자 스토리를 완료시키기 위한 조건 명세(Given, When, Then)이다.
-
최소 실행 가능한 제품(Minimum Viable Product, MVP): 팀이 최소 노력으로 고객에게 검증 결과를 받을 수 있는 수준의 제품
-
칸반 보드(Kanban Board): 작업을 시각적으로 업무 상태, 흐름을 보여주는 게시판
스크럼 프로세스
우리 팀은 애자일 방법론
중에 스크럼
을 선택하게 되었고, 아래의 스크럼 프로세스 순서로 프로젝트를 진행했다.
우리 굿프렌즈팀은 기획자가 없고 전부 개발자이기 때문에, 모두가 동등한 자율과 책임 권한으로 기획을 다 같이 진행하기로 결정했습니다.
-
PO(팀원 모두)는 제품의 요구 사항 정의서와 우선 순위를 제품 백로그로 정리한다.
-
제품 백로그를 기준으로 스프린트 계획 미팅을 진행해서 스프린트 목표 설정과 스프린트 백로그를 정리한다.
-
스프린트 주기(1주) 동안 프로젝트를 진행한다.
-
데일리 스크럼 미팅을 통해 각자의 이슈를 공유한다.
-
스프린트 종료시 모두가 모여서 스프린트 리뷰를 진행하여 중요한 코드 리뷰 및 팀원들의 산출물을 함께 살펴본다. (1주 스프린트 기준 1시간 진행)
-
매회의 스프린트가 종료할 때마다, KPT 회고를 작성하여 한 단계 발전된 팀으로 다음 스프린트를 수행할 준비를 한다.
-
2번으로 돌아가 반복한다. (제품의 요구 사항 정의서가 바뀐다면, 1번으로 돌아간다)
이를 기반으로 굿프렌즈팀의 Github -> Wiki에 정리한 데일리 스크럼 및 스프린트를 기록하고 있습니다.