프로젝트 진행 시 종합적인 가이드라인을 제공하는 문서입니다.
본 프로젝트는 전체 개발 프로세스를 스프린트(sprint)라고 불리우는 작은 개발 주기로 분할하는 개발 방식인 스크럼 개발 방법론을 기반으로 진행됩니다. 스프린트는 시간이 고정되어 있으며 작업이 끝났던, 끝나지 않았던 기간이 절대 늘어지지 않고 정해진 날자에 종료합니다.
스프린트를 시작하기 전에 제품 백로그(project backlog)가 있어야 합니다. 제품 백로그는 프로젝트를 진행하면서 팀이 해야 하는 모든 것이 우선 순위에 따라 기록된 문서입니다. 현재 프로젝트에 제품 백로그에 대한 문서가 작성되어있지 않으므로 스프린트 시작 전 혹은 후에 작성합니다. 즉, 스프린트 주기 사이마다 업데이트 하는 것을 권장합니다. 제품 백로그에 들어갈 아이템들은 구체적인 사용자 스토리가 아닌 추상적인 아이템만 작성합니다. 예를 들어 사용자의 로그인과 관련된 기능을 개발할 때, 제품 백로그에는 "사용자가 로그인하기 위해 버튼을 클릭한다"와 같은 구체적인 기능의 명세가 아닌 "사용자가 로그인한다"와 같이 추상적으로 언급합니다. 제품 백로그는 제품 수명 기간 동안 계속 존재하고 개선되면서 해당 제품의 로드맵 역할을 합니다.
제품 백로그 예시
제품 백로그의 추상적인 명세로부터 스프린트 백로그(sprint backlog)를 도출할 수 있습니다. 스프린트 백로그는 제품 백로그의 우선순위가 높은 아이템들의 구체적인 목표와 내용에 대해서 정의합니다. 제품 백로그의 각 아이템들에 대해 어떻게 수행할 지에 대해서 초점을 맞추며 개별 아이템의 작업을 산출합니다. 아이템의 완료 여부는 스프린트에서 산출한 각각의 작업의 수행 결과로 결정됩니다. 스프린트의 목표는 한 번 설정하면, 모든 추가사항이나 변경사항들은 다음 스프린트까지 미뤄야 합니다. 변경 사항이나 새로운 이슈가 생겼을 경우 스프린트 종료 후, 팀원들간의 조율 끝에 해당 이슈를 제품 백로그에 추가합니다.
스프린트 백로그 예시
본격적으로 개발이 시작된 후의 프로세스는 다음과 같습니다. 본 프로세스는 개발 파트를 중점으로 작성되었습니다.
매 스프린트가 시작될 때 제품 백로그를 작성합니다. 백로그의 우선순위는 명백하게 결정되어 팀원들이 스프린트에 진행할 작업을 파악할 수 있어야 합니다.
제품 백로그의 우선순위에 따라 해당 스프린트 주기에서 진행해야 할 아이템을 선택합니다. 이후, 선택된 아이템들의 구체적인 작업을 작성합니다.
스프린트 백로그의 각 작업들에 대해서 해당 작업을 주도적으로 수행할 참여자를 모집합니다. 작업을 할당받은 참여자는 깃허브의 이슈 기능을 이용해 해당 작업을 수행하는 이슈를 발행합니다. 이슈 제목은 매칭된 작업을 기반으로 자유롭게 작성할 수 있으며 이슈의 내용은 미리 작성된 템플릿을 참고하여 작성합니다. 이슈 발행 시 아래 타입 중 하나에 해당하는 라벨을 부여해야 합니다.