구글시트만으로 Jira 일정을 보기 쉽게 만들기
간략하게 Jira 목록을 보여주는 구글시트를 만들어서 사업부에 제공하고 있었는데요, 이를 좀 더 개선해서 Jira WBS 뷰어 형태로 만들어 봤습니다.
WBS라고 말은 했지만 사실 날짜 정보를 쉽게 볼 수 있게 만든 것인데요, 언제나 그렇듯이 어느 수준 이상의 동작을 희망하면 좋은 제품이나 플러그인을 구매하시는 것이 정신 건강에 좋습니다 :)
기존에도 Jira를 활용한 시트들을 만들었는데요, 예를 들면 사업부에서 전체 업무 목록과 '진행중'인 내용 및 '완료'된 내용을 기준으로 전반적인 업무에 대한 파악을 하는 것에 초점이 맞춰진 시트가 있었습니다. Jira 세부 기능들을 잘 활용하기 힘든 담당자가 주간보고용 통계를 취합하는데 도움을 주고자 한 결과였죠.
그런데 얼마전에 새로 팀을 맡아서 여러가지 업무들을 정리하고 있던 Jake가 일정을 쉽게 볼 수 있는 형태가 있을지 문의를 했고, 특히 Jira 자체에서 제공하는 기능으로는 sub-task까지 한번에 일정을 확인하기 어려운 점을 해결할 방법에 대해 논의를 했습니다.
여러가지 내용을 얘기했었는데요, 결과적으로 '시작'과 '예상 완료'의 일정을 논의하는데 도움이 되는 도구를 만들어 보기로 했습니다. 사실 개인적인 재미(?)로 부가적인 기능을 만들어서 테스트를 해보던 것을 더 구체화할 수 있게 되었는데요, 실제 활용을 위해서는 몇가지 규칙(준비물)이 필요했습니다.
구글시트 & 확장프로그램(Jira Cloud for Sheets)
Jira의 업무 단위 구분 정책 & 정책에 맞는 이슈 관리
각 이슈에 대한 일정 정보 입력
시작하기에 앞서 이번 글과는 상관은 없지만 팁을 하나 적어봅니다.
개인적인 취향일 수 있는데요, 저는 여러사람이 오랜기간 사용하게 될 시트는 첫화면에 큰 글씨로 이름을 적어두고 간략한 메모를 남기는 것을 선호합니다.
이렇게 하면 구글시트를 사용하면서 자주 만나는 "최근 스프레드시트" 목록에서 빠르게 문서를 찾을 수 있는 장점이 있고, 그 밑에 있는 설명들도 읽어보게 되는 부가적인 효과가 있기 때문입니다.
만약 글자만 보이는 "목록 보기" 상태라면 "바둑판 보기" 아이콘을 눌러서 위와 같이 시트 화면을 보는 형태로 변경이 가능합니다.
간략하게만 정리를 했지만 그래도 내용이 꽤 긴데요, 대략적인 순서는 다음과 같습니다.
Jira 내용 가져오기
가져온 이슈를 원하는 순서로 정리하기 (전처리)
이슈의 일정을 달력 형태로 표시하기
예전에는 App Script 기반으로 Jira 내용을 가져오도록 만든적도 있었는데, 기본 인증 방식을 이용한 스크립트 사용은 이제 활용할 수 없는 상태였습니다.
사실 이미 Jira Cloud for Sheets로 연결을 해서 사용하고 있었지만, 최근에 구글시트 기능이 업데이트가 된 것 때문인지 자주 연결 정보가 사라지는 경험이 있어서, 과거의 코드를 꺼내서 적용을 해보려고 했다가 발견한 내용이기는 합니다.
더 안전한 인증 방식을 사용한 App Script 활용 방법도 있겠지만, 일단은 패스.
구글시트의 "확장 프로그램"을 사용하는 방법은 간략하게만 소개합니다.
최초 한번은 설치 과정이 필요합니다.
한번 설치가 된 이후에는 메뉴에 추가된 내용에서 "Open"을 사용할 수 있습니다.
최초 연결시에 CONNECT가 필요합니다.
연결이 되고 나면 이슈를 가져올 수 있습니다.
JQL 이나 Filter 등을 활용해서 가져올 이슈를 정할 수 있습니다.
사용된 필드를 참고하세요. 여기에서 사용한 프로젝트는 Start date, Target end를 기준으로 운영이 되고 있습니다.
자동으로 데이터가 갱신되기 위해서는 스케줄을 설정해야 합니다. 최소 단위가 Hourly로 한시간 단위인 것은 아쉽지만 그럭저럭 쓸만합니다.
스케줄이 정상 동작을 하면 데이터가 변경이 되면서 시트의 버전 기록도 갱신이 됩니다. "파일 > 버전 기록 > 버전 기록 보기"에서 확인이 가능합니다.
제대로 동작했다면 아래와 같은 형태로 시트에 정보가 나타납니다.
현재 시트의 최종 버전은 상당히 복잡한 구조를 가지고 있는데, 상황에 따라 모두 필요한 것은 아니겠지만 중간에 생략되는 부분을 대략 이해할 수 있도록 규칙 몇가지를 적어봅니다. (좋은 규칙이라기보다 현황을 정리한 것에 가깝습니다. 더 정리가 필요하겠죠.)
- 에픽 > 작업 > 하위 작업 순으로 표시가 되어야 한다.
- 에픽이 없는 작업이 있다. 하위 작업이 없는 작업이 있다.
- 작업과 다른 릴리즈인 하위 작업이 있을 수 있다. 해당 하위작업은 보이지 않도록 한다.
상태값이 Jira의 기본값과 다른 부분이 있는데, 배포 및 QA 과정까지 자동화 부분을 늘리는 것과 일정 커뮤니케이션의 편의를 위해 '개발 완료'/'개발 병합' 등의 상태를 추가하여서 운영을 해보고 있습니다.
Jira 프로젝트 설정의 Automation 부분은 운영하면서 수정이 되어야 할 부분들도 있습니다. (made by Jake)
가져온 데이터를 가공해서 예쁜 뷰어로 만들어야 하기 때문에 시트는 아래와 같은 구조로 구성을 했습니다.
Source : 1단계에서 데이터를 가져온 시트
Changed : 해당 시트에서 필요한 정보들을 조합할 시트
Viewer : 사용자가 활용할 실제 시트
ReleaseCondition : Viewer에서 사용자에게 선택을 제공할 Release 정보
Viewer에서 Release를 고르는 기능이 추가되면서 Source에서 Viewer 정보를 참고하는 연결고리도 존재합니다.
ReleaseCondition에 대한 구성은 캡처 하나로 설명이 되겠네요.
Viewer의 Release 정보가 보여지는 셀에서 "데이터 > 데이터 확인"을 통해 활용합니다.
Changed 부분은 짧은 글로 다 설명하기는 어려운데요, query를 활용하여 하위작업이 연결된 상위 작업 바로 아래 표시가 되도록 하기 위해서 "ordering을 위한 값을 만든다"가 핵심이라고 할 수 있습니다.
(방문자도 얼마 없지만 ㅜㅜ) 전체적인 내용들을 이해하면서 테스트를 해보실 몇몇 분들을 위해 제가 사용한 수식들을 남겨둡니다. 참고로 중간에 요구 사항이 바뀌었지만 기존 수식을 남겨둔 부분들도 있을 수 있어서 좀 더 복잡하게 느껴질 수도 있습니다.
노란색으로 된 부분들이 수식이 있는 곳입니다.
보통은 한줄로 작성을 하는데 캡처로 보기에는 힘들 것 같아 어느 정도 줄바꿈을 한 상태인데요, 특정 들여쓰기에 대해서 구글시트가 자동으로 간격을 조절하는 경우가 있어서 일관성이 좀 떨어지는 부분이 있다는 점을 감안해 주세요 :)
달력을 표시하기전에 일단 이슈의 기본 정보를 보여주는 것이 필요하겠죠.
분홍색으로 표시한 부분의 수식은 아래와 같습니다.
이제 설명할 부분은 달력 영역의 자료 구성을 위한 부분인데요, 이 부분은 사실 수작업으로 입력하는 것과 동일합니다. 날짜가 지남에 따라서 화면이 알아서 변경이 되면 좋겠지만, 이런저런 복잡한 조건들보다 적당히 한달마다 3개월치의 달력 범위를 손으로 만드는 것이 낫다는 판단을 했습니다. (오래된 기간은 지우고 현재 기준 앞뒤로 일정들이 표시될 기간의 달력만 부분만 남기면서 사용을 해보고 있습니다)
그럼에도 불구하고 일일이 손으로 입력하는 것보다는 대부분의 값을 복사하는 것으로 해결하기 위해 일부 수식을 사용했는데요, 이 부분은 Jira와 상관없이 순수하게 달력에 대한 내용입니다.
(숫자를 잘보이게 하려고 날짜 처음 앞 두칸을 늘려서 캡처했습니다)
✔ 첫번째 줄의 수식입니다.
네번째 줄의 날짜에 주말 색칠을 위한 준비 작업입니다.
나머지는 쭉 복사하면 되겠죠.
✔ 두번째 줄은 수작업 입력입니다.
손으로 2021-11-01, 2021-11-02 까지 입력하고, 두 셀을 선택한 다음 쭉 당기면 완성입니다.
✔ 3번째 줄은 수식이지만 그냥 손으로 치는 것과 동일합니다.
손으로 치는 것을 잊을까봐 수식으로 해봤습니다.
K3의 "월" 역시 손으로 입력한 값입니다. 3번째 줄은 복사없이 두칸만 값이 있습니다.
✔ 4번째 줄은 두번째 줄의 날짜값입니다.
셀 폭을 좁게 해야하기 때문에 년/월은 제외하고 날짜만 볼 수 있게 구성했습니다.
달력의 마지막 작업으로 주말에 대한 색깔 표시는 "조건부 서식"을 활용합니다.
조건부 서식에 대한 활용은 https://brunch.co.kr/@muyeolhong/7 를 참고하세요~
달력 날짜를 구성했으니, 이제는 이슈별 일정을 날짜칸에 표시하는 작업이 남았습니다.
나중에 조건부 서식을 활용해서 색깔도 구분해서 칠하기 위해 이슈별 상태값을 한글자 알파벳으로 표시를 했습니다. 해당값을 I5셀에 구성했는데, 혼동을 피하기 위해 글자색을 하얀색으로 해서 눈에 보이지 않게 해두었습니다. (개인 취향)
J5부터 우측은 수식을 복사하면 됩니다.
조건부 서식은 우측의 내용을 참고하세요
마지막으로 어떤 형태로 보이는지 살짝 보여드립니다.
(이슈 내용과 담당자는 숨긴 상태로 바꿔서 캡처를 했습니다^^)