Workflow

이전 프로젝트에서 중간 중간 서로 무엇을 해야하는지 확인이 되지 않아 개발이 지연되는 문제가 발생한 경험으로 이번 프로젝트에서는 팀의 개발 Workflow 를 시각화하여 이러한 문제가 발생되지 않도록 하기 위해 JIRA를 이용한 협업 을 준비하게 되었습니다.

Waterfall

Agile

  • 민첩한, 재빠른, 좋은 것을 빠르고 낭비없게 만드는 것
  • 즉, 변화 요구사항에 맞는 대응 개발 방식
  • Scrum, Kanvan, XP, TDD, BDD 등이 Agile 방법의 개발 방식 중 하나

Kanban

  • Just In Time 적시개발 방법론
  • Kanban Board를 통해 Workflow를 시각화 하여
  • 진행중인 아이템 수를 제한하여 Workflow 상의 적정한 프로세스를 관리
  • 스크럼이 스프린트에 작업 시간을 제한하여 생산성을 제어한다면,
  • 칸반은 동시에 처리할 수 있는 이슈의 수를 제한하여 속도 및 생산성을 제어

칸반 프로세스
칸반 프로세스는 하나의 스토리가 한번의 과정에서 완성된다.(WIP)
한 항목을 완료하는데 걸리는 평균 타임을 측정하고 예측하며 소요시간을 최소화하기 위해 프로세스를 최적화한다.

Scrum

  • 스프린트(Sprint)를 기반으로 애자일 방법론을 실행
  • 반복적인 개발 주기인 스프린트로 나누어 개발을 진행하고,
  • 회고등을 통한 요구조건등의 변화를 즉각 반영하여 지속적으로 프로토 타입을 개선하는 방식

스크럼 프로세스
개발할 제품에 대한 요구사항 목록(Product Backlog)의 우선순위, 스프린트 목표에 맞게 나열한 작업 목록(Sprint Backlog)을 우선순위에 따라 작업을 수행한다.
개발 주기(Sprint)동안 개발을 진행하고나면 리뷰(Daily Scrum), 회고(Sprint Review) 등을 통해 개선할 점, 요구조건의 변화 등을 반영하고(개선) 다음 스프린트를 진행한다.

Jira

  • 계획 수립, 우선 순위에 대한 정리가 가능해짐
  • 보드와 리포트를 이용한 Work flow의 시각화
  • 팀이 진행 중인 업무를 시각화하며, 업무를 단위별로 관리가 가능하게 함
  • 팀 생산성 향상에 도움을 주는 Workflow Tool

  • Scrum 방식의 Workflow 개발 진행으로 결정
  • 하지만 아직 팀원분들의 Workflow의 이해 및 능력에 대한 생각을 분명히 해야 함

Jira Login 후

프로젝트 생성

  • 스크럼 템플릿을 선택하여 복잡하지 않고 간단하게 프로젝트 구성이 가능한,
  • 팀에서 관리하는 프로젝트 선택 유형 선택하여 프로젝트를 생성

  • 프로젝트 이름 및 Key를 설정 후 다음 버튼으로 프로젝트 최종 생성

Key? 해당 프로젝트를 식별하는 유니크한 식별 접두사 예를 들어 스크럽 회의에서 이번 프로젝트 스크럼 보드는 FIRST 보드에서 진행할 예정이니 해당 보드 최신화 부탁드립니다. 처럼 해당 프로젝트 혹은 작업을 식별할 수 있게 도와주는 유니크 키값입니다.

보드

A : 계획

  • 타임라인 : 프로젝트 진행상황에 대한 타임라인 표시 기능
  • 백로그 : 스프린트를 계획하고 보드에 반영하기 위한 기능
  • 보드 : 현재 페이지

B : 애자일 보드

  • 할일 또는 진행중, 완료등 개발 프로세스에 필요한 이슈를 컨트롤 할 수 있는 보드
  • 이름은 임의로 변경이 가능

C : 추가 보드

  • B의 추가적인 보드를 생성
  • ex) 테스트 중, 디버깅 중 등

프로젝트 설정

  • 프로젝트 이름, 관리자 등 설정 탭

백로그

  • 스프린트를 계획하고, 이슈를 생성하여 진행상황에 반영하기 위한 기능

A : 스프린트

  • 1개의 스프린트를 무엇을 언제 까지 해야하는지에 대한 설정
  • 말그대로 스크럼을 위한 스프린트를 설정합니다.

B : 날짜

  • 스프린트 기간을 설정합니다.

C : 스프린트 이슈

  • 스프린트에서 해야하는 이슈를 작성합니다.
  • 스프린트 위에 마우스를 올리면 ••• 이 나타납니다.

  • 해당 버튼을 누르면 아래와 같은 창이 우측에 생성 됩니다.

  • 다양한 설정이 가능하며, 필요에 따라서는 Git에 연결하여 브랜치 생성 및 커밋 생성이 가능합니다.

    D : 스프린트 시작

  • 스프린트를 시작할 수 있게 하는 실행 버튼

  • 스프린트 시작 버튼을 누르면 위 이미지와 같이 작성한 이슈가 애자일 보드에 업데이트 됩니다.
  • 해당 진행상황을 Drag & Drop 방식으로 상태를 변경할 수 있습니다.

이슈 : 하위 이슈

  • 이슈 카드의 내부적으로 하위 이슈를 넣을 수 있습니다.
  • 이는 보다 이슈를 자세하게 관리할 수 있습니다.
  • 카드를 선택하면 다음과 같이 하위 이슈 추가 를 선택합니다.

  • 추가적인 하위 이슈를 입력하면 추가적인 키가 생서되는 것을 볼 수 있습니다.
  • 나중에 해당 번호로 브랜치를 생성하거나 커밋하여 해당 이슈를 추적할 수 있습니다.

  • 보드를 확인하여 만든 이슈를 확인해보면 분기가 생성된 모습을 볼 수 있습니다.

  • 사용법 자체는 이슈와 다르지 않습니다.

담당자 배정

  • 누가 담당할 것인지 배정해 누가 해당 업무를 하고 있는지 확인 가능합니다.

해당 버튼을 누르면 등록 되어있는 다른 팀원으로 선택하여 담당자로 배정할 수 있습니다.

작업 상태 변경

  • 작업 상태의 변경은 Drag & Drop으로 상태를 변경 하는 방법
  • 카드의 상태를 직접 변경하는 방법이 있습니다.

  • 빨간색 구역의 버튼들은 드롭다운 형식으로 누르시면, 각 상태에 대한 버튼이 있으므로 선택하여 상태를 변경합니다.

  • 진행중으로 변경된 상태에서 다시 보드를 보면 해당 이슈가 진행중으로 넘어간 것을 볼 수 있습니다.

마치며

이상 JIRA를 이용한 스크럼 스프린트 방식의 일정관리에 대한 간단한 튜토리얼 입니다. 이는 정말 기초에 기초적인 부분이며, 좀 더 전문적으로 상태관리를 할 수 있지만 초보자들에게는 어려울 수 있어, 지금 당장 작은 사이즈의 프로젝트에 적용할 수 있는 정도의 팀 스크럼 보드를 만들어 봣습니다.

이를 팀에게 전달하여 저번과 같이 구멍이 생기는 일을 방지 해야 할 것 입니다.