튜토리얼: GitLab을 사용하여 스크럼 활용하기

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

이 튜토리얼은 GitLab의 Agile 계획 및 추적 기능을 단계별 안내하여 코어 스크럼 의식 및 워크플로우를 용이하게 하는 데 도움을 줍니다. 그룹, 프로젝트, 보드 및 기타 기능을 의도적으로 설정함으로써 팀은 향상된 투명성, 협업 및 전달 주기를 실현할 수 있습니다.

마틴 파울러의 Agile Fluency Model에 따르면, 스크럼을 실천하는 팀은 다음과 같은 고려를 합니다:

…기업의 제품을 통해 혜택을 받게 될 주최자, 고객 및 사용자들이 보게 될 이점에 대해 생각하고 계획합니다.

그들은 이를 이행하여 매달의 진행 상황을 보여주며, 정기적으로 프로세스와 작업 습관을 개선하여 비즈니스 및 고객 가치를 더 많이 제공하기 위해 반성합니다.

이 튜토리얼은 다음 주제를 다룹니다:

그룹 및 프로젝트 설정

스크럼을 위한 GitLab의 실천을 용이하게 하기 위해 먼저 그룹 및 프로젝트의 기초적인 구조를 설정해야 합니다. 그룹을 사용하여 그룹에 속한 프로젝트에 상속될 수 있는 보드와 레이블을 생성할 것입니다. 프로젝트는 각 스프린트의 실제 작업 항목을 구성하는 이슈 및 작업을 포함할 것입니다.

GitLab의 상속 모델 이해

GitLab은 그룹이 프로젝트를 포함하는 계층 구조를 가지고 있습니다. 그룹 수준에서 적용된 설정 및 구성은 하위 프로젝트로 전파되므로 여러 프로젝트 간에 레이블, 보드 및 이터레이션을 표준화할 수 있습니다:

%%{init: { "fontFamily": "GitLab Sans" }}%% flowchart TD accTitle: GitLab 상속 모델 다이어그램 accDescr: 그룹 간의 이슈, 레이블, 이터레이션, 작업 및 에픽과 관계를 보여줍니다. Group -->|포함| Project Group -->|포함| Epics Group -->|포함| Labels Group -->|포함| Boards Group -->|포함| Iterations Group -->|포함| Milestones Group -->|포함| Roadmaps Project -->|포함| Issues Project -->|포함| Templates Project -->|포함| Tasks Project -->|포함| Milestones Project -->|포함| Labels Labels .->|프로젝트로 전파| Project Issues .->|그룹으로 상승| Group Iterations .->|프로젝트로 전파| Project Milestones .->|프로젝트로 전파| Project Templates .->|프로젝트로 전파| Project Templates .->|구성됨| Group Issues .->|에픽의 하위| Epics Issues .->|Boards에서 표시| Boards Issues .->|Lists에서 표시| Lists Issues .->|이터레이션에 할당| Iterations Issues .->|마일스톤에 할당| Milestones Tasks .->|이슈의 하위| Issues Tasks .->|이터레이션에 할당| Iterations Tasks .->|마일스톤에 할당| Milestones Epics .->|Boards에서 표시| Boards Epics .->|Roadmaps에서 표시| Roadmaps Epics .->|Lists에서 표시| Lists
  • 그룹은 하나 이상의 프로젝트, 에픽, 보드, 레이블 및 이터레이션을 포함합니다. 사용자 멤버십은 해당 그룹의 프로젝트로 전파됩니다.
  • 그룹 또는 프로젝트에서 보드와 레이블을 생성할 수 있습니다. 본 튜토리얼에서는 프로젝트 당 그룹에 생성하여 표준화된 계획 워크플로우 및 보고를 용이하게 할 것입니다.
  • 프로젝트로 전파되는 모든 객체는 해당 프로젝트의 이슈와 연결될 수 있습니다. 예를 들어, 그룹에서 레이블을 이슈에 적용할 수 있습니다.

그룹 생성

스크럼 활동을 위한 전용 그룹을 생성합니다. 이 그룹은 프로젝트로 전파될 보드 및 레이블과 같은 설정에 대한 상위 컨테이너가 될 것입니다.

이 그룹은 전형적인 스크럼 주기 중 다양한 활동의 주요 위치가 될 것입니다. 이 그룹은 보드, 피쳐(에픽), 스토리(이슈) 롤업 및 레이블을 포함할 것입니다.

그룹을 생성하려면:

  1. 왼쪽 사이드바의 맨 위에서 생성 () 및 새 그룹을 선택합니다.
  2. 그룹 생성을 선택합니다.
  3. 그룹 이름 텍스트 상자에 그룹의 이름을 입력합니다. 그룹 이름으로 사용할 수 없는 단어 목록은 예약된 이름을 참조합니다.
  4. 그룹 URL 텍스트 상자에 네임스페이스에 사용될 그룹의 경로를 입력합니다.
  5. 가시성 수준을 선택합니다.
  6. 선택 사항. GitLab 경험을 사용자화하려면:
    • 역할 드롭다운 목록에서 역할을 선택합니다.
    • 이 그룹을 사용할 사용자는?에서 옵션을 선택합니다.
    • 이 그룹을 사용할 목적이 무엇입니까? 드롭다운 목록에서 옵션을 선택합니다.
  7. 선택 사항. 그룹 멤버를 초대하려면, 이메일 1 텍스트 상자에 초대할 사용자의 이메일 주소를 입력합니다. 더 많은 사용자를 초대하려면 다른 멤버 초대를 선택하고 사용자의 이메일 주소를 입력합니다.
  8. 그룹 생성을 선택합니다.

프로젝트 생성

생성한 그룹 내에서 하나 이상의 프로젝트를 생성합니다. 프로젝트에서는 상위 그룹으로 롤업되는 스토리가 포함됩니다.

빈 프로젝트를 생성하려면:

  1. 왼쪽 사이드바의 맨 위에서 생성 () 및 새 프로젝트/저장소를 선택합니다.
  2. 빈 프로젝트 생성을 선택합니다.
  3. 프로젝트 세부 정보를 입력합니다:
    • 프로젝트 이름 필드에 프로젝트의 이름을 입력합니다. 프로젝트 이름에 대한 제한 사항을 참조합니다.
    • 프로젝트 슬러그 필드에 프로젝트의 경로를 입력합니다. GitLab 인스턴스는 URL 경로로 슬러그를 사용합니다. 슬러그를 변경하려면 먼저 프로젝트 이름을 입력한 다음 슬러그를 변경합니다.
    • 사용자의 보기 및 접근 권한을 변경하려면 가시성 레벨을 변경합니다.
    • README 파일을 만들어 초기화를 선택하여 Git 저장소를 초기화하고 기본 브랜치를 생성하고 복제할 수 있도록 합니다.
  4. 프로젝트 생성을 선택합니다.

Scrum 라이프사이클의 다양한 단계를 지원하기 위해 범위 지정된 라벨 만들기

다음으로 만든 그룹에서 문제에 추가할 라벨을 만들 것입니다.

가장 좋은 도구는 범위 지정된 라벨인데, 이것을 사용하여 상호 배타적인 속성을 설정할 수 있습니다.

범위 지정된 라벨의 이름에 있는 두 개의 콜론(::)은 같은 범위의 두 라벨이 함께 사용되는 것을 방지합니다. 예를 들어, 문제에 status::in progress 라벨을 추가하면 이미 status::ready인 문제가 있는 경우, 그 전자는 제거됩니다.

각 라벨을 만들려면 다음을 수행하세요:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 그룹을 찾습니다.
  2. 관리 > 라벨을 선택합니다.
  3. 새 라벨을 선택합니다.
  4. 제목 필드에 라벨의 이름을 입력합니다. priority::now로 시작합니다.
  5. 선택 사항. 사용 가능한 색상에서 선택하여 색상을 선택하거나 배경 색상 필드에 특정 색상의 16진수 색상 값을 입력하여 색상을 선택합니다.
  6. 라벨 만들기를 선택합니다.

필요한 모든 라벨을 만들기 위해 이러한 단계를 반복하세요:

  • 우선 순위: 기능 수준 릴리스 우선 순위 설정을 위해 큰 에픽 보드에 사용할 것입니다.
    • priority::now
    • priority::next
    • priority::later
  • 상태: 전반적인 개발 단계에서 스토리의 현재 단계를 이해하기 위해 문제 보드에 이러한 라벨을 사용할 것입니다.
    • status::triage
    • status::refine
    • status::ready
    • status::in progress
    • status::in review
    • status::acceptance
    • status::done
  • 유형: 일반적으로 단일 반복에 풀어들어가는 다양한 작업 유형을 나타내기 위해 이러한 라벨을 사용할 것입니다:
    • type::story
    • type::bug
    • type::mantainence

이터레이션 주기 만들기

깃랩에서 스프린트는 이터레이션이라고 합니다. 이터레이션 주기에는 이슈를 계획하고 보고하기 위한 개별적이고 순차적인 이터레이션 타임박스가 포함되어 있습니다. 라벨과 유사하게 이터레이션은 그룹, 하위 그룹 및 프로젝트 계층 구조를 따라 퍼져나갑니다. 따라서 만든 그룹에서 이터레이션 주기를 만들 것입니다.

전제 조건:

  • 그룹에 적어도 리포터 역할이 있어야 합니다.

이터레이션 주기를 만드는 방법:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 그룹을 찾습니다.
  2. 계획 > 이터레이션을 선택합니다.
  3. 새 이터레이션 주기를 선택합니다.
  4. 이터레이션 주기의 제목과 설명을 입력합니다.
  5. 자동 스케줄링 활성화 확인란이 선택되어 있는지 확인합니다.
  6. 자동 스케줄링을 사용하려면 필수 필드를 완료합니다.
    • 이터레이션 주기의 자동 시작 날짜를 선택합니다. 이터레이션은 시작 날짜의 요일과 동일한 요일에 시작되도록 예정됩니다.
    • 기간 드롭다운 목록에서 2를 선택합니다.
    • 예정된 이터레이션 드롭다운 목록에서 4를 선택합니다.
    • 롤 오버 활성화 확인란을 선택합니다.
  7. 주기 만들기를 선택합니다. 주기 목록 페이지가 열립니다.

이렇게 설정된 이터레이션 주기로:

  • 각 스프린트는 2주의 기간입니다.
  • 깃랩은 자동으로 미래에 4개의 스프린트를 생성합니다.
  • 현재 스프린트가 종료되었을 때 미완료된 문제는 자동으로 다음 스프린트로 재지정됩니다.

또한 이터레이션에서 자동 스케줄링을 비활성화하고 수동으로 이터레이션을 만들고 관리할 수도 있습니다.

기능 백로그 관리

기능 백로그는 에픽 형태로 의견과 원하는 기능을 캡처합니다. 이 백로그를 정립하는 과정에서 에픽이 우선순위를 매겨 미래의 스프린트로 이동하도록 될 것입니다. 이 섹션에서는 백로그 관리를 용이하게 하는 에픽 보드를 만들고 첫 번째 기능 에픽을 작성하는 내용을 다룹니다.

작업 구조화 방법 결정

깃랩은 다양한 형태의 백로그 관리를 지원할 수 있도록 확장 가능합니다. 이 튜토리얼에서는 다음과 같이 우리의 과제를 구조화할 것입니다:

%%{init: { "fontFamily": "GitLab Sans" }}%% flowchart TD accTitle: 납품물 구조 accDescr: 기능(에픽)에서 작업 이야기(이슈)로 이어서 구현 단계(작업)까지의 플로차트 Epic["기능 (에픽)"] --> Issue["작업 이야기 (이슈)"] Issue --> Task["구현 단계 (작업)"]
  • 에픽은 팀이 단일 이터레이션으로 전달할 수 있는 기능을 나타냅니다.
  • 각 에픽은 여러 작업 이야기를 포함합니다.
    • 이야기는 명확한 수용 기준을 포함하여 구체적인 고객 가치를 제공하고, 개인이 하루 이틀 안에 완료할 수 있는 크기여야 합니다.
    • 팀 단위로 스프린트 당 네 가지 이야기를 완료해야 합니다.
  • 기능을 분해하는 많은 전략 중 하나는 수직 슬라이스를 하는 것입니다. 이는 사용자가 목표를 달성하기 위해 따라야 하는 개별적이고 독립적인 작업 이야기로 기능을 분해하는 훌륭한 전략입니다.
    • 당신은 단일 이야기를 고객에게 제공할 수 없을 수도 있지만, 팀은 각 이야기를 프로덕션 환경의 특징 플래그를 사용하여 테스트하고 상호 작용해야 합니다. 이것은 이야기의 진행 상황을 이해하는 데 도움을 주는 것뿐만 아니라 더 복잡한 기능을 접근 가능한 개발 목표로 분해하는 메커니즘입니다.
  • 이야기의 복잡성에 따라, 개발자가 이야기를 완료하기 위해 취해야 하는 구체적인 구현 단계를 작업으로 사용할 수 있습니다.

시간적인 측면에서 작업 항목에 대해 다음 가이드라인을 대상으로 하세요:

  • 기능은 단일 이터레이션에서 완료할 수 있어야 합니다.
  • 이야기는 며칠 안에 완료할 수 있어야 합니다.
  • 작업은 몇 시간에서 하루 정도면 완료할 수 있어야 합니다.

예: 기능을 수직으로 쪼개기

끝 사용자의 여정을 기반으로 기능을 수직으로 쪼개는 예시입니다:

%%{init: { "fontFamily": "GitLab Sans" }}%% flowchart TD accTitle: 기능을 수직으로 쪼개기 accDescr: 이터레이션에서 완료하기 위해 수행해야 할 작업 조각들을 식별하는 끝 사용자의 여정을 사용 Epic["에픽: 애플리케이션 사용 시,<br> 계정을 생성해야 함,<br> 그래서 애플리케이션 기능을 사용할 수 있음"] --> Issue1["이슈: 내 계정을 생성할 때,<br> 이메일 주소를 지정해야 함,<br> 그래서 애플리케이션에서 차후 업데이트를 받을 수 있음"] Epic --> Issue2["이슈: 내 계정을 생성할 때,<br> 비밀번호를 지정해야 함,<br> 그래서 내 계정이 안전함을 유지함"] Epic --> Issue3["이슈: 내 계정을 생성하고 필요한 정보를 입력하는 동안,<br> 계정 생성을 완료하여<br> 로그인할 수 있어야 함"]

애플리케이션에서 수정되지 않은 계정 가입 기능을 세 가지 개별 이야기로 분해했습니다:

  1. 이메일 주소 입력.
  2. 비밀번호 입력.
  3. 계정 생성을 실행하기 위해 버튼 선택.

특정 기능을 이야기로 나눈 뒤, 이야기를 구체적인 구현 단계로 나눌 수 있습니다:

%%{init: { "fontFamily": "GitLab Sans" }}%% flowchart TD accTitle: 이야기를 더욱 세부화하기 accDescr: 이야기를 작은 단계로 나누기 Issue1["이슈: 내 계정을 생성할 때,<br> 이메일 주소를 지정해야 함,<br> 그래서 애플리케이션에서 차후 업데이트를 받을 수 있음"] Issue1 --> Task2["작업: 백엔드<br> 이메일 서식 확인"] Issue1 --> Task3["작업: 백엔드<br> 클라이언트로부터의 POST 요청 수락을 위한 API 엔드포인트"] Issue1 --> Task4["작업: 프론트엔드<br> 이메일 입력 표시"] Issue1 --> Task5["작업: 프론트엔드<br> 유효성 검사 실패 시 오류 메시지 표시"]

릴리스 계획 보드 설정

납품 구조를 정의했습니다. 다음 단계는 특징 백로그를 개발하고 유지할 것인 epic 보드를 만드는 것입니다.

새 epic 보드를 만들려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. Plan > Epic boards를 선택합니다.
  3. 왼쪽 상단에서 현재 보드 이름이 표시된 드롭다운 목록을 선택합니다.
  4. 새 보드 만들기를 선택합니다.
  5. 새 보드의 제목을 입력합니다: 릴리스 계획.
  6. 보드 만들기를 선택합니다.

다음으로 새 목록을 생성하고 priority::later, priority::next, 그리고 priority::now 라벨을 추가하세요.

새 목록을 만들려면:

  1. 보드의 오른쪽 상단에서 목록 생성을 선택합니다.
  2. 새 목록 열에서 라벨 선택 드롭다운 목록을 펼치고 목록 범위로 사용할 라벨을 선택합니다.
  3. 보드에 추가를 선택합니다.

이러한 목록을 사용하여 보드에서 특징을 좌에서 우로 이동하는 데 도움이 됩니다.

릴리스 계획 보드에서 각 목록을 사용하여 다음과 같은 시간 범위를 나타내도록합니다:

  • 열기: 아직 우선 순위를 정하지 않은 특징
  • 나중: 나중에 릴리스에 우선 순위를 정할 특징
  • 다음: 다음 릴리스에 대략적으로 계획된 특징
  • 지금: 현재 릴리스에 대한 우선 순위가 정해진 특징
  • 닫힘: 완료되거나 취소된 특징

첫 번째 epic 만들기

그다음, priority::now 목록에 새 epic을 생성하세요:

  1. priority::now 목록 상단에서 새 epic () 아이콘을 선택합니다.
  2. 새 epic의 제목을 입력합니다:

    애플리케이션 사용 시, 애플리케이션 기능을 사용할 수 있도록 계정을 만들어야 한다.
    
  3. 에픽 만들기를 선택합니다.

이 단계를 완료하면 보드는 다음처럼 보여야 합니다:

예시 epic 보드

이제 릴리스 계획 보드를 사용하여 백로그를 빠르게 구축할 수 있습니다.

다음으로 많은 특징을 채우고 지금, 다음, 나중 목록에 우선 순위를 정하세요. 그런 다음 각 이야기를 세부 이야기와 작업으로 더 세분화하는 데 시간을 투자하세요.

목록이나 목록 간에 특징 epic을 재정렬하려면 epic 카드를 끌어 놓으세요. 또한 카드를 목록의 맨 위 또는 맨 아래로 이동할 수도 있습니다.

이야기 백로그 관리

특징을 epic으로 정의하면 다음 단계는 해당 특징을 세부적이고 수직으로 쪼갠 이슈로 나누는 것입니다. 그런 다음이슈를 정제하고 순차적으로 배치하여 전용 백로그 보드에서 반복에 걸쳐 이슈를 관리하는 것입니다.

특징을 이야기로 분해

효율적인 스프린트 계획 회의를 위해 미리 특징을 수직으로 쪼개 이야기로 나누세요. 이전 단계에서 첫 번째 특징을 만들었습니다. 이제 그것을 이야기로 나눠봅시다.

첫 이야기를 생성하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. Plan > Epic boards를 선택합니다.
  3. 왼쪽 상단에서 현재 보드 이름이 릴리스 계획으로 표시되는지 확인하세요. 그렇지 않으면 해당 보드를 드롭다운 목록에서 선택하세요.
  4. 이야기 카드의 제목을 클릭하여 오픈합니다.
  5. 하위 이슈 및 epic 섹션에서 추가 > 새 이슈 추가를 선택합니다.
  6. 이슈 제목으로 다음을 입력합니다:

    내 계정을 생성할 때 미래 애플리케이션 업데이트를 받기 위해 이메일 주소를 지정해야 한다
    
  7. 프로젝트 드롭다운 목록에서 이슈를 생성할 프로젝트를 선택합니다.
  8. 이슈 생성을 선택합니다.
  9. 다음 두 수직 슬라이스에 대해이 프로세스를 반복하세요:

    내 계정을 만들 때 안전한 계정 유지를 위해 비밀번호를 지정해야 한다
    
    내 계정을 만들고 필요한 정보를 입력하면 계정 생성을 완료하여 로그인할 수 있다
    

이야기 백로그 정제

이전 단계에서 특징을 세부적인 사용자 이야기로 나눴습니다. 다음은 이야기 백로그를 관리하고 정제하기 위한 캐노니컬한 위치로 이슈 보드를 설정하세요.

그룹에서 백로그라는 새 이슈 보드를 생성하세요. 이 보드를 사용하여 이야기를 다가오는 스프린트(이터레이션)에 순차적으로 배치하고 예정합니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. Plan > Issue boards를 선택합니다.
  3. 왼쪽 상단에서 현재 보드 이름이 표시된 드롭다운 목록을 선택합니다.
  4. 새 보드 만들기를 선택합니다.
  5. 새 보드의 제목을 입력하세요: 백로그.
  6. 보드 만들기를 선택합니다.

보드를 생성한 후, 각 다가오는 이터레이션에 대한 새 목록을 만드세요:

  1. 이슈 보드 페이지의 오른쪽 상단에서 목록 생성을 선택합니다.
  2. 나타나는 열에서 범위 아래에서 이터레이션을 선택합니다.
  3. 드롭다운 목록에서 이터레이션 중 하나를 선택합니다.
  4. 보드에 추가를 선택합니다.
  5. 다른 다가오는 이터레이션에 대해 이전 단계를 반복하세요.

그런 다음, 이터레이션이 종료되면 완료된 이터레이션 목록을 제거하고 릴리즈 계획 설정에 따라 자동으로 생성된 새로운 미래 이터레이션에 대한 새 목록을 추가해야합니다.

이 시점에서 이야기는 추정되거나 작업으로 세분화되지 않았습니다. 정제 대상으로 표시하세요:

  1. 보드에서 각 이슈 카드를 선택하고 status::refine 라벨을 적용하세요:
    1. 사이드바의 라벨 섹션에서 편집을 선택합니다.
    2. 할당된 라벨 목록에서 status::refine 라벨을 선택합니다.
    3. 라벨 할당 해제 옆의 X를 선택하거나 라벨 섹션 외부의 영역을 선택하세요.
  2. 원하는 다가오는 스프린트로 세 이야기를 끌어 놓아 이야기를 해당 스프린트 시간표로 할당하세요.

튜토리얼의 이 시점에서 백로그 보드는 다음과 같아야합니다:

예시 이슈 보드

실제로는이 보드를 사용하여 다양한 이야기를 올해 이터레이션으로 배치합니다. 백로그가 커지고 여러 특징에 걸친 수십 개의 이야기가있는 경우 에픽으로 그룹화를 활성화하면 해당 특징 epic에 관련된 이야기를 볼 수 있어 시퀀스를 용이하게 설정할 수 있습니다. 이야기가 그룹화되면 이야기를 다가오는 이터레이션에 순차적으로 배치하는 것이 더 쉽습니다.

스프린트 계획 세션

백로그가 준비되었으면 다가오는 스프린트를 계획할 때입니다. GitLab에서는 동기식 및 비동기식 방법을 사용하여 스프린트 계획 미팅을 용이하게 할 수 있습니다.

동기식 계획

스프린트 계획 세션이 시작될 때 팀과 함께 백로그 보드를 열고 각 이야기를 진행합니다. 현재 스프린트의 마지막 날에 다음 스프린트를 위해 계획을 시작해야 합니다. 각 이슈를 논의하는 동안:

  • 수용 기준을 검토하고 협업합니다. 이를 확인할 수 있도록 체크리스트 또는 목록 항목을 사용하여 이 문제에 포착할 수 있습니다.
  • 이야기를 각 구현 단계의 작업으로 더욱 상세하게 분해하세요.
  • 이슈의 이야기 포인트 노력 또는 복잡성을 추정하고, 해당 값으로 이슈의 무게 필드에 설정합니다.
  • 팀이 이슈의 범위에 만족하고 이야기 포인트 값에 동의한 후, status::ready 레이블을 이슈에 적용하세요:

    1. 사이드바의 레이블 섹션에서 편집을 선택합니다.
    2. 레이블을 할당 목록에서 status::ready 레이블을 선택합니다.
    3. 레이블을 할당 옆의 X를 선택하거나 레이블 섹션 바깥의 어느 영역이든 선택합니다.

곧 다가오는 이터레이션의 모든 이슈를 순환했다면, 스프린트 계획이 완료됩니다!

팀의 속도를 스프린트 조직에 통합하는 것을 잊지 마세요. 각 이터레이션 목록 상단에 할당된 이야기 포인트(무게)의 총 수를 찾을 수 있습니다. 또한, 이전 스프린트에서 롤오버될 가능성이 있는 이야기 포인트를 확인하는 것도 중요합니다.

비동기식 계획

동기식 회의를 진행하는 대신, 이슈를 사용하여 스프린트 계획을 실행하세요.

비동기식 스프린트 계획의 특성 상, 현재 스프린트의 며칠 전에 시작해야 합니다. 모든 팀원이 기여하고 협업할 수 있는 적절한 시간을 제공하세요.

  1. 백로그 이슈 보드를 열어보세요:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
    2. 계획 > 이슈 보드를 선택합니다.
    3. 왼쪽 상단의 현재 보드 이름이 표시된 드롭다운 목록을 선택합니다.
    4. 백로그를 선택합니다.
  2. 다가오는 스프린트의 목록에서 새 이슈 만들기 ()를 선택하세요.
  3. 이슈 제목을 입력하세요: 릴리스 계획.
  4. 이슈 생성을 선택하세요.
  5. 이슈를 열고, 다가오는 스프린트에 할당된 각 이야기에 대한 토론 스레드를 만드세요.

    이슈 URL에 +를 추가하여 제목이 자동으로 펼쳐지도록 합니다. 이슈 URL에 +s를 추가하여 제목, 마일스톤, 담당자가 자동으로 펼쳐지도록 합니다. 이러한 스레드에 대해 다음 템플릿을 사용하여 체크박스를 만들기 위해 다음을 사용할 수 있습니다:

    ## https://gitlab.example.com/my-group/application-b/-/issues/5+
    
    - [ ] 수용 기준 정의
    - [ ] 무게 설정
    - [ ] 구현 단계(작업) 생성
    

    예시:

    계획된 이야기를 위한 스레드 예시

  6. 각 이야기에 스레드가 생성되면, 이슈 설명을 편집하고 각 팀원을 언급하세요. 팀원을 언급하면 각 팀원의 할 일 목록에 할 일이 자동으로 생성됩니다.
  7. 그런 다음, 다가오는 스프린트 시작 전에 각 팀원은 비동기식으로 다음을 해야 합니다:

    • 각 이슈에 대해 논의하고, 질문하며 계획된 각 이슈의 수용 기준에 일치하기 위해 협력하세요.
    • :one:, :two:, :three:과 같은 반응 이모지를 사용하여 이야기 포인트(무게)를 투표하세요. 팀원이 서로 다른 이야기 포인트 값을 지정하면, 합의가 이루어질 때까지 추가 논의할 수 있는 좋은 기회입니다. 또한 모든 다양한 반응을 평균하여 이야기 포인트를 정렬할 수도 있습니다.
    • 수직 슬라이스(이슈)를 구현 단계(작업)로 분해하세요.
  8. 각 이야기 논의가 끝나면, 수용 기준에 대한 모든 변경 사항을 이슈에 업데이트하고 무게 필드에 이야기 포인트 값을 설정하세요.
  9. 이야기가 업데이트되면, 각 이슈에 status::ready 레이블을 추가하세요.
  10. 그런 다음 해당 수직 슬라이스의 계획이 완료되었음을 나타내기 위해, 계획 이슈에서 각 토론 스레드를 해결하세요.

스프린트 진행 추적

스프린트 동안 작업을 시각화하고 관리하기 위해 팀은 현재 스프린트 범위를 나타내는 전용 이슈 보드를 만들 수 있습니다. 이 보드는 팀의 진행 상황과 잠재적인 차단 요소에 대한 투명성을 제공합니다. 팀은 번다운 차트를 통해 추가적인 가시성을 위해 이터레이션 분석을 사용할 수도 있습니다.

현재 스프린트를 위한 보드 만들기

그룹 내에서 현재 스프린트라는 새로운 이슈 보드를 만듭니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 계획 > 이슈 보드를 선택합니다.
  3. 왼쪽 상단의 현재 보드 이름이 표시된 드롭다운 목록을 선택합니다.
  4. 새 보드 만들기를 선택합니다.
  5. 새 보드의 제목을 입력하세요: 현재 스프린트.
  6. 범위 옆에서 확장을 선택합니다.
  7. 이터레이션 옆에서 편집을 선택합니다.
  8. 이터레이션 주기 아래에서 현재를 선택합니다.
  9. 보드 만들기를 선택합니다.

이제 이 보드는 현재 이터레이션에 할당된 이슈만 표시하도록 필터링되었습니다. 팀의 진행 상황을 활성 스프린트에서 시각화하는 데 사용하세요.

그런 다음 모든 상태에 대한 레이블 목록을 만듭니다:

  1. 이슈 보드 페이지의 오른쪽 상단에서 목록 만들기를 선택합니다.
  2. 나타나는 열에서 범위 아래에서 레이블을 선택합니다.
  3. 드롭다운 목록에서 레이블 중 하나를 선택합니다:
    • status::refine: 개발 전에 추가로 수정이 필요한 이슈입니다.
    • status::ready: 개발할 준비가 된 이슈입니다.
    • status::in progress: 이슈가 개발 중입니다.
    • status::review: 이슈의 해당 MR은 코드 검토를 거치고 있습니다.
    • status::acceptance: 이슈가 이해관계자 수용 및 QA 테스트를 위해 준비되었습니다.
    • status::done: 이슈의 수용 기준이 충족되었습니다.
  4. 보드에 추가를 선택합니다.
  5. 다른 레이블에 대해 이전 단계를 반복합니다.

스프린트가 진행되는 동안 이슈를 다른 목록으로 끌어다 놓아 status:: 레이블을 변경하세요.

스프린트용 번다운 차트와 번업 차트 보기

스프린트 중에 이터레이션 보고서를 검토하는 것이 도움이 될 수 있습니다. 이터레이션 보고서는 진행 지표와 번다운 및 번업 차트를 제공합니다.

이터레이션 보고서를 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. Plan > Iterations을 선택하고 이터레이션 주기를 선택합니다.
  3. 이터레이션을 선택합니다.