백로그 뜻과 개념에 대해서 이야기해봅시다.
백로그 뜻과 개념 알기
백로그(Backlog)는 애자일(Agile) 프로젝트에서 사용하는 요구 사항들의 목록을 의미합니다.
예측형 접근 방식(Predictive Approach)인 워터폴(Waterfall) 프로젝트에서는 요구사항 정의서(Business Requirements)와 화면 설계서(Story Board)를 사용한다면 적응형 접근 방식(Adaptive Approach)인 애자일(Agile) 프로젝트에서는 백로그를 사용하는 것입니다.
백로그(Backlog)는 상품 백로그(Product Backlog)와 스프린트 백로그(Sprint Backlog)가 있습니다.
상품 백로그(Product Backlog)는 프로젝트에서 구현하려고 하는 전체 요구사항을 의미합니다.
스프린트 백로그(Sprint Backlog)는 특정 반복 주기(Iteration)에서 개발할 요구사항입니다. 스프린트 백로그는 이터레이션 백로그라고도 부르며 유저 스토리(User Story)라고도 하는 문서입니다.
유저 스토리(UserStory)는 최종 사용자나 고객 관점에서 만든 소프트웨어 기능에 대한 요구 사항들입니다. 유저 스토리에는 제품 백로그에도 기술합니다. 즉, 제품 백로그는 애자일 프로젝트에서 해야할 일들의 목록이라고 한다면 스프린트 백로그는 짧은 기간 동안 해야 할 일들의 목록입니다.
백로그 그루밍(Backlog Grooming)은 프로덕트 오너(Product Owner)가 애자일 팀(Agile Team)과 함께 논의합니다. 프로덕트 오너가 논의해야 할 스토리(Story)의 후보들을 제시하고 개발팀은 해당 스토리를 함께 논의하는 방식으로 진행됩니다. 팀원들이 모두 협력해서 스토리를 함께 탐구하고 스토리의 세부 사항과 규모, 그리고 우선순위에 대해서 이해하고 조정하는 작업을 수행합니다.
백로그 뜻과 개념 설명
백로그 뜻(Backlog)은 애자일(Agile) 프로젝트에서 기획하는 요구 사항들의 목록을 의미합니다. 백로그(Backlog)는 애자일(Agile) 프로젝트를 진행할 때 애자일 개발 팀이 개발해야 할 기능이나 제품에서 요구하는 기능과 우선 순위를 정리한 산출물입니다.
제품 백로그(Product Backlog)에 대한 결정과 우선순위 조정은 프로덕트 오너(Product Owner)라고 하는 사람이 책임집니다. 애자일 프로젝트를 진행하는 과정에서 백로그 내용을 더 상세화하거나 개발 우선순위를 조정하는 활동도 함께 진행하게 됩니다.
백로그 준비(Backlog Preparation)는 전체 범위를 작은 요구사항과 수행할 작업으로 세분화하여 제품 백로그를 만드는 것입니다. 요구사항이 계속 진화하거나 프로젝트의 불확실성이 큰 경우 초기에 범위를 정확하게 파악하는 것이 어려운 경우가 많습니다. 그래서 처음부터 프로젝트 전체에 대한 모든 스토리들을 정할 필요 없이 릴리즈를 개괄적으로 이해하고 다음 반복 주기에 진행할 항목을 파악하는 것 만으로도 충분하다고 할 수 있습니다.
백로그에는 개발 우선순위에 대한 선정도 함께 진행되어야 합니다. 또한 제품 백로그는 새로운 신규 스토리를 추가하거나 기존 스토리를 변경하거나 기존 스토리를 없애는 등의 이유들로 고정되어 있는 문서가 아니라 지속적으로 수정되고 검증되며 구체화되는 산출물입니다.
백로그 그루밍(Backlog Grooming)은 애자일 팀(Agile Team)이 현재 진행 중인 작업들과 스프린트(Sprint) 목표 달성에 집중하면서 다음 계획을 스프린트 기간 중에 사전에 준비하는 작업을 의미합니다.
애자일(Agile)의 프로덕트 오너(Product Owner)는 스프린트의 반복 진행 과정에서 한 차례 이상의 회의를 열어서 다음 반복에 대한 일부 스토리를 애자일 팀의 팀원들과 함께 준비하는 형태로 진행됩니다.
백로그 그루밍에서는 백로그 항목을 조정할 수 있고 백로그 정제(Backlog Refinement)라고 하는 상세화 과정을 수행할 수 있으며 우선순위에 대한 재선정도 진행합니다. 백로그 항목을 조정하는 것은 백로그 항목을 추가하거나 수정하거나 삭제하는 것을 모두 포함합니다. 정제가 필요한 이유는 반복 리뷰를 통해 실제 작동할 수 있는 소프트웨어를 만들고 검증하는 것이 필요하기 때문입니다. 완료 작업 흐름이 꾸준하게 이어질 수 있는 스토리를 작게 상세화 할 필요가 있습니다.
향후 스토리에 대해서 조정하거나 이해하거나 공유하거나 스토리 간의 의존성을 식별하고 우선순위 결정등을 수행하게 됩니다. 애자일 팀에서는 스프린트의 2주 반복 기간을 사용하여 반복 주기 중 1시간 이내로 토론하는 방식으로 진행하는 경우가 많습니다.
애자일에서는 계획하고 리뷰하고 우선순위를 조정하는데 반복 주기인 스프린트(Sprint)가 끝나기 전에 스프린트 안에서 다음 개발 항목들에 대한 우선순위 조정까지 모두 완료해야 합니다.
만약 애자일 프로젝트를 진행하는 과정에서 프로덕트 오너가 이야기한 것을 개발팀이 완벽하게 이해하지 못했거나 불확실성이 존재하는 경우 세부 설명을 진행하거나 리스크(Risk)를 파악하기 위해서 스파이크(Spike)라고 하는 세션을 팀에 요청할 수 있도록 하고 있습니다.
스파이크(Spike)는 더 나은 추정, 개발, 그리고 개선을 위해서 기능, 기술, 프로세스 관점에서 학습을 진행하여 불확실성을 줄이는 방법과 세션입니다.
백로그 그루밍(Backlog Grooming)에서는 전체 백로그(Backlog)를 대상으로 유저 스토리(UserStory)인 아이템들(Items)에 대해서 추정(Estimate)하거나 추가 작업을 넣거나(Insert Item) 우선순위에 대한 재산정 작업(Re-Prioritize Items)을 진행하는 것입니다.
그리고 기존의 아이템(Original Large Item)을 더 작게 분할(Refine Items)할 수 있습니다. 마지막으로 필요 없어진 기존 항목들은 삭제(Delete Item)할 수 있습니다.
애자일 프로젝트에서 스크럼 마스터(Scrum Master)는 백로그를 효과적을 관리하는데 집중하는 것도 좋은 방법으로 알려져 있습니다. 백로그는 프로덕트 오너(PO)가 개발팀과 같이 만드는 산출물이지만 스크럼 마스터는 이를 지원하고 관리해주는데 집중할 수 있습니다.
애자일의 사상처럼 백로그도 처음에 모든 것을 완벽하게 준비하는 완벽주의를 목표로 하기보다 완성주의적인 방법으로 점진적으로 완성해나가는 산출물입니다.