Atlassian JIRA 초보자를위한 입문가이드 오픈소스컨설팅
목차 I. 강의소개 II. JIRA란무엇인가? III. JIRA의프로젝트 IV. JIRA Issue 생성및기본정보입력 V. Issue Type VI. Issue 상세관리 VII. Issue Priority와 Time Tracking VIII.Workflow IX. Bulk Operation X. Issue 검색및 JQL XI. Dashboard 2
1. 강의소개 강의대상 JIRA 를사용해본경험이없거나적은사용자 강의범위 JIRA User 교육으로 Admin 기능의교육은제외 강의목표 JIRA에대한이해 JIRA의기본 Issue Tracking 기능파악 JIRA의필터기능을이용한대시보드구성 3
2. JIRA 란무엇인가? Issue Tracking 시스템 프로젝트에서예상되거나또는이미발생한 " 이슈 " 들을관리하는것 관리대상이슈로는업무 ( 작업 ), 문제점, 개선사항등이있음 이슈관리방법 - 목록으로정리 - 우선순위부여 - 담당자지정 - 진행과정을추적 이러한일련의내용들을시스템적으로관리 유사한솔루션 : Redmine, Mantis, Trac, Bugzilla 등 다양한이슈목록및우선순위담당자할당진행과정추적 4
2. JIRA 란무엇인가? Project 관리도구 프로젝트진행에필요한 - 기간, 리소스등에대한계획수립 - 이슈들의진행상태추적 - 통합된리포트및대시보드제공 프로젝트참여자의업무과정 ( 태스크의할당, 작업로그등 ) 을기록 프로젝트전반에걸친모니터링및플래닝도구제공 개발과정이나업무처리에필요한다양한도구와연동 5
2. JIRA 란무엇인가? Jira Core / Software / ServiceDesk 필요시하나의 Jira 에모두설정가능 - Core: Jira의기본기능탑재 - Software: Board 기능및 Software Type 프로젝트사용가능 - ServiceDesk: 사용자 Portal 및 SLA 관리기능사용가능 Software 나 ServiceDesk 사용시 Core 기능은기본적으로포함 6
3. JIRA 의프로젝트 JIRA Project 실제조직의프로젝트와 Mapping 프로젝트단위로이슈들을관리 멤버관리 이슈유형 (Issue Type) 관리 워크플로우관리 Issue V 1.0 V 2.0 멤버이슈 / 컴포넌트워크플로우버전 7
4. JIRA Issue 생성및기본정보입력 JIRA Issue 실제해야할업무를등록 프로젝트에속함 기본트래킹단위 워크플로우적용 Issue 생성및기본필드입력 Project Issue Type Summary Priority Assignee Description Attachments 8
5. Issue Type JIRA 에서제공하는기본적인 Issue Type (Core) Task: 일반적인작업으로가장작은규모 Sub-Task: 하나의이슈를세부적으로나누는하위이슈 PROJECT Task Task Task Sub-Task Sub-Task Sub-Task Sub-Task 9
5. Issue Type JIRA 에서제공하는기본적인 Issue Type (Software) Bug: 제품이설계대로동작하지않는문제점 Improvement: 제품이가지고있는기능을개선또는향상시키는것 Epic: 애자일에서큰규모의작업으로여러 Story들의집합 Story: 일반적인작업으로중간정도의규모 Task: 일반적인작업으로가장작은규모 Sub-Task: 하나의이슈를세부적으로나누는하위이슈 10
6. Issue 상세관리 ( 이동, Link, Sub-Task 등 ) More 메뉴 Log Work Voters Watchers Create Sub-Task Move Link Clone Labels Delete 11
7. Issue Priority 와 Time Tracking Issue Priority 일을진행하는우선순위 조직의여건에맞게우선순위를정해야함 - 모든이슈가 Highest 나 High 일수는없음 일반적인우선순위및조치방법 - Highest: 시스템이전혀사용불가능한상태 조치방법 : 10분이내담당자지정. C레벨보고 - High: 시스템의주요기능이동작불능 조치방법 : 1시간이내담당자지정. 팀장보고 - Medium: 시스템의일부기능에제약 조치방법 : 4시간이내담당자지정 - Low: 시스템기능은동작하나일부기능불편 조치방법 : 24시간이내담당자지정 - Lowest: 시스템기능동작에영향없음 12
7. Issue Priority 와 Time Tracking Time Tracking 프로젝트리소스중에서시간은매우중요한자원 각단위작업들에대한시간을산정하여프로젝트전체의일정을예측해야함 예상작업시간 (Estimated Time) - 이슈생성시입력 실제작업시간 (Logged Time) - 작업시간을기록하면 Remaining Time 자동계산 13
8. Workflow Workflow 의효과 진행중인작업의상태를명확하게알려줌 작업상태를알기위한커뮤니케이션불필요 전체프로젝트의상태파악및리소스계획수립가능 새로운팀원을포함한전체팀원들간의협업용이 현재리뷰중이니내일이면기능을볼수있겠군 거의작업이 끝났으니스케줄을 맞출수있겠군 프로젝트관리자 요청자 14
8. Workflow JIRA 에서기본적으로제공하는 Workflow Open: 이슈가최초생성되어아직작업에들어가기전상태 In Progress: 담당자가정해지고이슈에대한작업이진행중인상태 Resolved: 담당자가작업을완료한상태 Closed: 이슈를요청했던요청자가담당자의작업결과에만족하여이슈의완료에동의한상태 Status Transition Reopened: 완료된이슈에문제가발견되어다시작업을진행하는상태 Issue Resolution 이슈해결방법입력 - Fixed, Duplicate, Won t Fix, Unresolved 등 15
8. Workflow JIRA 애자일에서기본적으로제공하는 Workflow Kanban Software Development Scrum Software Development 16
8. Workflow Best Practices JIRA Issue Tracking 에서가장중요한부분중의하나 이슈들을항상올바른상태에두어야함 ( 불필요한커뮤니케이션방지 ) 작업을시작했으면항상 "Start Progress" 를하는습관 작업을완료했으면 "Resolve" 를하고적절한 Resolution 을입력 이슈의상태를변경시필요하다면커맨트를통해변경이유명시 팀원들이 Workflow 에익숙해지도록노력 필요할업무환경에맞게커스터마이제이션 - 지속적으로개경우조직과선및자동화노력 17
9. Bulk Operation Bulk Operation 이란? 여러이슈들에대한다음과같은작업들을한꺼번에수행할수있는기능 - Workflow 상태변화 - 이슈편집또는삭제 - Move - Watch 또는 Stop Watching 18
10. Issue 검색및 JQL JIRA 의 Issue 검색기능 프로젝트, 이슈타입, 상태, 텍스트등다양한조건을기반으로검색 - Apache Lucene 검색엔진사용 검색결과를 필터 로저장했다가재사용하거나다른사람과공유가능 Basic Search 기능을통해초보자도쉽게사용가능한검색기능 Advanced Search 기능을통해 JQL(Jira Query Language) 기반의고급검색기능 검색결과를차트로표시하거나엑셀로저장가능 19
10. Issue 검색및 JQL Basic Search Listbox 형태로원하는조건을쉽게선택 - 프로젝트, 이슈유형, 상태, 담당자, 텍스트키워드 More 버튼을통해더많은조건 ( 생성일, 생성자, Label 등 ) 선택 Advanced 버튼을눌러 JQL 로쉽게변환가능 20
10. Issue 검색및 JQL Advanced Search 및 JQL SQL 과유사한 JQL(JIRA Query Language) 언어기반의강력한검색기능 Basic Search 에서제공하지못하는검색가능 - Project Category 조건, 함수사용, AND/OR 등논리연산자 Syntax Help 및자동완성기능을통해문법을완전히외우지않아도사용가능 Syntax Help 및자동완성기능 21
10. Issue 검색및 JQL JQL Tips 자동완성기능을최대한활용 - 예 : 'project = ' 이라고만입력하면선택가능한프로젝트추천 AND, OR 연산자를활용하여여러조건결합 값이없는필드의경우 'EMPTY' 키워드통해서검색가능 - 예 : due date = EMPTY 기본제공되는함수및문법활용 - 금주에완료될이슈 : due <= endofweek() - 지난 2주간업데이트가없는이슈 : not updated >= startofday(-2w) - 나의진행중인이슈 : resolution is EMPTY and assignee = currentuser() 22
10. Issue 검색및 JQL Issue Filter 검색결과를저장하여재사용하는기능 다른사람에게필터를공유하여조직내에서활용 필터관리기능 저장된필터를수정하여재활용 23
11. Dashboard Dashboard 란? 프로젝트의전체적인정보를실시간볼수있는페이지 커스터마이제이션가능 - 표시할내용, 레이아웃등 프로젝트팀원들과공유 Built-in 또는 Add-on 형태의 Gadget 제공 - Gadget: 표, 차트등다양한시각화도구 저장된필터를자료의소스로사용 24
11. Dashboard Dashboard 예시 대상 - 담당자 ( 개발자 ), 프로젝트리더 Issue 생성 vs 종료그래프 Issue 캘린더 기한을초과한이슈목록 금주에종료해야할이슈목록 지난 1 주일간신규생성된이슈목록 Activity Stream - 다른팀원들의이슈진행보기 개인별, 프로젝트별워크로드 자신에게할당된이슈 ( 담당자 ) 25
Jira Software 기능 26
12. Agile 보드 Kanban 보드 칸반 (Kanban) - 신호, 지시카드를나타내는일본어 도요타에서연결된여러공정작업효율화를위해채택했던방법중의하나 - JIT(Just In Time) - Lean Production - Kanban 시스템 카드만큼생산할분량을결정 - 카드인출을통해생산을시작 칸반체계를 JIRA 에구현한애자일보드의하나 Kanban Board: 지속적으로이루어지는유지보수업무에적합 27
12. Agile 보드 Scrum 보드 전체프로젝트기간을 Sprint 라는정해진기간 (Time-Box) 로분리 프로젝트전체적으로해야할작업 ( 이슈 ) 내용을백로그에저장 / 생성 Sprint 별로할수있는분량만큼의작업 ( 백로그 ) 를선택해서 Sprint 에넣고작업 Scrum Board: 신규개발프로젝트처럼단계별로일정기간 (Time-box) 단위로태스크 ( 이슈또는업무 ) 들을분산해서관리하고자하는경우 Sprint 기간동안처리불가능한작업들은리뷰를거쳐다음 Sprint 로이관 백로그를관리하고 Sprint 기간의통제, 리뷰를주도할스크럼마스터역할의필요성 28
12. Agile 보드 보드 Configuration 보드에대한각종구성관리 보드로표시할프로젝트나쿼리 표시할컬럼 퀵필터 보드일반구성 보드의표시방법 ( 컬러, 레이아웃 ) 작업요일 (Working days) 이슈상세보기 (Issue Detail View) 표시할컬럼설정 29
관리자세션 30
13. User/Group 관리 사용자추가방법 Invite User 이메일을통해사용자를초대하면, 사용자가각자계정생성 Create User 관리자가직접계정을등록해주는방식 LDAP, Active Directory 연동 IT 팀 매니저 IT 담당자 Inbox Project Role Default Permission Scheme 팀장 고객지원팀 Members Default Software Scheme 개발팀 Membership VOC 고객담당자 Project Role Shopping Mall 개발자 디자이너 Members Project Role - Members 31
14. Reporting JIRA Reporting 프로젝트개요 - Activity View - Statistics View 프로젝트리포트 - Average Age Report - Created vs. Resolved Issues Report - Pie Chart Report - Resolution Time Report - Time Since Issues Report - Time Tracking Report 32
14. Reporting Agile Reporting Burndown Chart - 스프린트내, 예상작업량대비완료된분량표시 - 앞으로남아있는작업분량, 예상종료일추정 - 예상작업시간, 이슈개수, Story Point 등다양은기준으로작업분량산정 Velocity Chart - 스트린트동안예상된작업량대비얼마나수행 ( 완료 ) 했는지표시 - 스프린트별통계 - 팀이스프린트마다어느정도의작업을수행할수있는지측정 33
14. Reporting Agile Reporting Control Report - 이슈들이각워크플로우상태에머문시간 - 전체평균 (Rolling Average) 의모양을통해서프로세스가개선중인지알수있음 ( 우하향 단계별처리시간단축 ) - 평균과이슈들의편차를통해서워크플로우상 bottle-neck 이되는지점파악가능 기타 - Sprint Report - Cumulative Flow Diagram - Version Report - Epic Report - Epic Burndown - Release Burndown 34
15. Project Customization JIRA Project Customization JIRA 의프로젝트를조직과업무환경에맞게구성을관리하는것 이슈유형 (Issue Type) 워크플로우 (Workflow) 필드 (Field) 화면 (Screen) 권한 (Permission), 알림 (Notification) 스킴 (Scheme) 을통해구성 (Configuration) 을프로젝트들간에공유 Issue Type Scheme Workflow Scheme Field Configuration Scheme Screen Scheme Issue Type Screen Scheme 35
15. Project Customization 동작 워크플로우전환화면 Issue Security 이슈유형 이슈유형 이슈유형 Scheme Notification Scheme Issue Type Scheme Permission Scheme 36
16. Issue Type 구성 Issue Type 정의 새로운이슈유형이필요할경우추가하고아이콘선택 일반이슈와 Sub-Task 유형구분 Issue Type Scheme 정의 전체이슈유형중에서사용할유형들만선택 프로젝트와바인딩 37
17. Field 구성 Custom Field 추가 새로운필드유형이필요할경우추가 Field Configuration 정의 Default Field Configuration 사용가능여부검토 - 숨김 (Hide), 필수 (Required), 렌더러 (Renderer) 등을다르게설정할경우신규생성 - 기존 Configuration 복사하여생성가능 필드설정 - 숨김, 필수여부, 렌더러등을변경 Field Configuration Scheme 정의 Default Field Configuration을사용하지않으면새로운 Scheme 생성 새로추가된 Scheme에사용할 Field Configuration 연결 - 이슈유형연결 프로젝트와바인딩 38
18. Workflow 구성 기존 Workflow 수정 프로젝트와이슈유형에연결된 Workflow 변경 프로젝트별로유형템플릿에따라생성 - Workflow Configuration 의예 - Workflow Scheme 의예 주의사항 - 동일한 Workflow 를공유하는프로젝트 - Agile 프로젝트의 Workflow 변경후보드구성 39
18. Workflow 구성 신규 Workflow 추가 새로운 Workflow 를추가해서프로젝트에할당 - Agile 보드의경우구성변경 완전히새로운 Workflow 추가보다는 Copy 기능활용 Import를통해사전에작성된 Workflow 가져오기 Workflow Scheme 정의 기존프로젝트에서사용중인 Scheme 을변경하는방법 - 이슈유형연결 새로운 Scheme 을작성해서프로젝트에바인딩하는방법 - 새로운 Scheme 에 Workflow 연결 ( 이슈유형별 ) - 프로젝트와바인딩 40
19. Screen 구성 기존 Screen 변경 프로젝트와이슈유형및동작별로생성된 Screen 변경 - 동작 : Create/Edit/View 표시할필드와화면상의순서정의 - 프로젝트종류 (Agile vs Core) 와관련 - 필드구성과연결 Screen Scheme - 동작별로화면구성수정 41
19. Screen 구성 신규 Screen 추가 새로운 Screen 을추가해서프로젝트에할당 완전히새로운 Screen 추가보다는 Copy 기능활용 - Default Screen Scheme, Resolve Issue Screen, Workflow Screen 등 Screen Scheme 정의 기존프로젝트의이슈동작에연결된 Screen 을변경또는추가하는경우 새로운이슈동작을정의하는경우 42
20. Screen 과이슈유형연결 Issue Type Screen Scheme 정의 기존프로젝트의이슈에연결된 Screen Scheme 을변경또는추가하는경우 새로운 Scheme 을생성해서프로젝트와바인딩하는방법 - 새로운 Scheme 에 Screen Scheme 연결 ( 이슈유형별 ) - 프로젝트와바인딩 43
21. Screen 과 Workflow 연결 Workflow 의전환 (transition) 과정에 Screen 표시 Workflow 편집화면에서 Screen 지정 프로젝트, 이슈유형과상관없이 Workflow 상태전환과정에표시됨 44
22. Workflow Post Function Post Function 이란? Workflow 상태전환후특정동작수행 - 특정인에게이슈할당 - HipChat 알림 - Web Hook 실행 - 이슈필드변경 사전에정의된기본동작들이있음 - 커맨트추가, 이슈상태변경등 - Event 발생 ScriptRunner Add-on 을이용한스크립트 (groovy) 실행 - 예 : Main Task 종료시 Sub Task 자동종료 45