IT_Study/Team Project

[공통 PJT] Jira 및 JQL 활용 / Project Management 방법론

__Vivacé__ 2023. 7. 6. 14:00

왜 Jira를 사용해야 하는가? 4가지 관점에서 볼 수 있음

 

 

1. Issue Tracking (Project Management)

 - 의미: 이슈 추적 (Issue Tracking)은 프로젝트의 작업 상태를 관리하고 추적하는 과정
 - 특징: Jira는 강력한 이슈 추적 기능을 제공하여 이슈 생성, 할당, 우선순위 설정, 진행 상황 추적, 의견 공유 등을 통해 팀의 업무를 효율적으로 조율하고 업무 투명성을 확보 가능

 

2. Agile

 - 의미: 빠른 변경에 대응하고 가치를 신속하게 제공하기 위한 방식
 - 특징: Jira는 Agile 방법론을 지원하며 *스크럼, 칸반, 익스트림 프로그래밍 등 다양한 방식으로 프로젝트를 구성하고 관리할 수 있음. Agile 보드를 사용하여 백로그 관리, 스프린트 계획, 작업 추적, 스프린트 리뷰 등을 수행할 수 있어 팀은 작업을 민첩하게 진행하고 변경사항에 신속하게 대응 가능

 

*Scrum 방법론의 주요 개념

 - Scrum meeting (Daily Scrum) (하루에 10분 이내로 끝내도록 권장 - 그래서 일어서서 스크럼 미팅을 하라고 권장, )

  : 아침마다 모여서 기분이 어떤지 등 small talk를 한 다음, 어떤일 했고, 어떤 일을 할 건지에 대해 공유하는 시간을 가짐

 - burndown chart

 : 오늘 어떤 이슈를 해결했는가를 관리해주는 것 / 0이 되면 내 할일이 끝난 것

 

*Backlog : 남은 할 일을 담아두는 곳 / log는 장작을 의미, 타지 않고 남아있는 장작은 backlog라고 함

 

 

*Kanban 방법론의 주요 개념

 - Sprint가 없다

 - Issue를 상태 관리만 해준다 --> 누군가에게 일이 몰릴 수 있다, 따라서 WIP (Work In Progress) 로 관리

 

 

 

3. DevOps

 - 의미: DevOps는 개발과 운영 팀 간의 협업과 통합을 강조하는 방식 / *사일로 현상 방지
 - DevOps를 잘 수행하기 위한 조건

    - 반복적인 작업들을 Tool을 이용해서 자동화

    - 팀원 모두가 알고 있는 하나의 공유된 지표가 필요

    - 장애나 이슈가 있을 때 혼자만 알지 말고 팀원들과 공유 필요

 

*사일로 현상 : 이기적으로 우리 조직만을 생각하는 현상

 

 

4. SRE (Site Reliability Engineering)

 - 의미: SRE는 시스템의 신뢰성과 안정성을 개선하는 역할을 하는 분야 / 구글 NEXT 발표에서 확인할 수 있는 개념
 - 특징: 장애 추적, 복구 작업 조율, 문제의 근본 원인 분석 및 수정 등을 위해 Jira를 활용 가능. 이를 통해 시스템 장애를 추적하고 대응하며, 안정성을 확보 가능

 

*Error budget : 얼마나 에러 허용치를 둘까 / 일정 수준을 넘으면 개발을 멈추고 품질을 높이는 데 기여하자

 


JIRA 실제 활용 시 가이드

 

빨간 박스 개념에는 Task, Story, Bug, Epic 등이 있음

 

Task : 일반적인 개념

Story : 사용자 관점에서 필요한 기능 / 로그인 기능, 비밀번호 변경 기능 등

Bug : 에러 발생 이슈

Epic : 여러 태스크를 하나로 묶는 큰 개념을 작성 시 사용, 추후 Epic 단위로 관리

 


bug 선택 시 나타나는 창

어떤 version의 버그를 고치는 지 표시할 때 사용

 

 

 

 

story 선택 시 아래 나타나는 지표

해당 작업의 난이도 등을 나타내는 지표

 


Workflow

Ticket이 생성되고 완료될 때까지의 상태 변화

출처 : atlassian 사이트 / 가장 범용적인 예시

 - 해당 기능 이용 시, 프로젝트 진행상황을 한 눈에 파악 가능

 - 불필요한 커뮤니케이션 감소

 

OPEN : 등록은 했는데, 어떻게 할 지 모르는 상태

CLOSED : 상황 종료

 

관리자가 아닌 이상, workflow를 개개인이 설정 불가능하다 (팀에 일괄 적용이기 때문에, template 유지를 위함)

 

 

 

BULK

여러 개의 이슈를 한 번에 수정하는 방법

일괄 변경 클릭 후, 단계에 맞게 진행

JQL 등을 이용해서 이슈를 따고, 일괄 변경을 진행하면 된다.

 

 

 

Components and Labels

프로젝트 구성 요소를 만들 수 있다 (BE, FE 등) / 라벨보다는 컴포넌트를 이용하는 게 좋음

이름에 BE, FE 등 삽입 가능

기본 담당자는 프로젝트 리더 등 선택 가능

 

컴포넌트를 생성 후, Bulk 작업을 통해 각 이슈에 작업 할당 가능

 

 

 

Releases

버저닝 규칙에 따라 이름 설정

설명에는 이전 버전과 비교점 등을 삽입

 


JQL (Jira Query Language)

Jira Issue를 구조적으로 검색하기 위해 제공하는 언어 / SQL과 비슷한 문법 (아래 참고)

쌓인 Issue들을 재가공해 유의미한 데이터(ex. Gadget, Agile Board 등)를 도출할 때 활용

 

Query에는 Basic Query와 Advanced Query가 있음

Basic Query의 모습
Advanced Query의 모습

 


JQL Operators

 - =, !=, >, >=

 - in, not in

 - ~ (contains), !~ (not contains)

 - is empty, is not empty, is not null

 - AND, OR, NOT, EMPTY, NULL, ORDER BY


검색은 다음 창처럼, [Filter] - [Advanced issue search]를 통해 접근 가능

 


JQL Dates

w는 1주, d는 하루, 1시간은 1h, 1분은 1m

사용 요령 : updated > startOfWeek(2d) (이번주 화요일 {일요일 + 2d} 이후로 업데이트된 것)  |  assignee = currentUser() (담당자가 지금 로그인한 사용자)

 

 

추가로 

 

- endofDay(), startOfDay()

- endOfWeek() (토요일), startOfWeek() (일요일)

- endOfMonth(), startOfMonth(), endOfYear(), startOfYear()

 - currentUser()

 

이런 명령어들이 존재

 


DashBoard 활용

Dashboard 생성 시 나타나는 화면

각종 Gadget을 오른쪽에서 검색해 끌고와서 여러 일정을 관리할 수 있음

 

Filter Results, Assigned to Me 등을 갖고 와서 구성하는 것임

 

Scrum 보드와 Kanban 보드 생성하기

좌측 메인 보드탭을 클릭하면, 아래에 Create board를 통해 위 사진의 창을 띄울 수 있음

 

 


Project Management

SW 개발 프로젝트의 문제

1. 프로젝트 결과물이 추상적이다

2. 프로젝트 일정 관리가 쉽지 않다

3. 리소스 역량 양극화

4. 팀 구성원 간 커뮤니케이션이 쉽지 않다

5. 기술적 불확실성이 높다. (잘 될거라 생각했는데, 오류가 많이 발생)

 

 

 

PM 구성요소

3대 제약조건

- Scope Management : 범위 관리; 결과물을 어떤 걸 만들 것인가? 요구사항/기능이 무엇이냐

 : 모든 요구사항이 프로젝트 작업에 누락없이 포함되고, 해당 내용이 성공적으로 완료되도록 명확히 하는 것

- Time Management : 일정 관리;

- Cost Management : 원가 관리; 원가 경쟁력이 있어야 한다.

 

- Quality Management : 품질 관리;

- Resource Management : 자원 관리; 자발적인가 강요/명령인가, 전자여야 PM이 의미가 있다.

- Communication Management : 의사소통 관리;

- Rist Management : 리스크 관리;

- Procurement Management : 조달 관리; 아웃소싱 내용

- Integration Management : 통합 관리;

- Stakeholder Management : 이해관계자관리;