JIRA의 워크플로우 기능 잘 활용하고 계십니까?


아래의 1분짜리 영상은 JIRA에서 기존에 사용하던 워크플로우를 다른 새로운 워크플로우로 변경하는 과정을 간단히 보여줍니다.


(주) 골드피처

워크플로우에 대해서는 아마도 JIRA 관리자에게 있어 가장 어려운 설정이라고 할 수 있습니다.
물론 워크플로우가 반드시 복잡해야 하는가에 대한 논의가 먼저 되어야 할 것입니다. 그럼 잠깐 이 이야기부터 간단히 하겠습니다.

회사에서의 워크플로우는 회사가 커지고 자율성보다는 제어와 통제가 필요해 질수록 복잡해 지는 경향이 있습니다. 반대로 회사가 작고 자율성이 많아질 수록 워크플로우는 단순해 집니다.
어떻게 보면 자연스러운 현상 같지만, 최근의 트랜드는 회사가 커져도 개인의 창의성을 극대화하기 위해 최소한의 제어와 통제를 해 자율성을 극대화 시키는 방향으로 가는것 같습니다. 구글과 같은 기업문화가 그 예라고 할 수 있을 것입니다. (하지만 자율성 속에 내부의 경쟁은 매우 심하다고 합니다)

마찬가지로 JIRA를 예로 들면 작은 회사일 수록 JIRA의 기본 워크플로우 (이슈오픈 -> 이슈 작업시작 -> 이슈 해결 -> 이슈 종료) 를 그래로 사용하는 비율이 높은 것이 사실입니다. 반면 회사가 큰 경우는 워크플로우 또한 복잡하게 가져가는 경우가 많습니다.
JIRA의 경우도 최근의 트랜드를 반영한다면 회사가 커져도 워크플로우는 단순하게 가져가는 것이 맞겠지만 회사마다의 문화라는 것이 그리 쉽게 변하지는 않는 것 같습니다.

이제 본론으로 들어가 JIRA에서의 워크플로우 설정에 대해 이야기 해 보겠습니다.
이전의 4.x 초반의 버전에서는 모든 워크플로우를 텍스트 기반으로 작성하였었습니다. 그런데 4.x. 후반에 새롭게 다이어그램을 이용하는 그래픽방식으로 워크플로우를 설정할 수 있도록 하는 기능이 추가되었습니다.
초창기에는 한글문제가 있었지만 지금 5.x 버전 이후로는 한글문제도 없어져 많은 관리자분들이 잘 사용하고 계실 것입니다. 

이미 잘 아시는 관리자 분들이 많겠지만 그래도 여전히 어렵고 쉽게 변경하기 어려운 부분이 이 워크플로우 설정이고 이것이 어렵고 복잡한 이유는 다음과 같습니다.

  1. 워크플로우의 작성
  2. 이슈 타입별 다른 워크플로우의 적용 (워크플로우 설정)
  3. 프로젝트별로 사용할 이슈타입 설정 (이슈타입 정책)
결론적으로는 JIRA에서는 각각의 프로젝트들이 서로 다른 이슈타입 (버그, 신규기능, 개선사항 등)을 가지면서 또한 각 이슈타입들은 동일한 하나의 워크플로우로 상태가 움직일 수도 있지만 서로 다른 워크플로우로도 상태가 움직일 수 있기 때문에 복잡해 지는 것입니다.
다행스러운 것은 예전 JIRA 버전에 비해서는 4.x 버전 이후의 신규 UI 는 이 설정을 좀 더 쉽게 할 수 있도록 상당히 개선된 점입니다.
이 설정은 위의 내용을 숙지하고 여러번 테스트 해 보면 어느정도 감을 잡으실 수 있을 것입니다.

워크플로우 관련해서 추가로 2가지 더 이야기 할 내용은 첫번째는 워크플로우의 작성에 대한 것입니다.
워크플로우라는 것은 이슈의 상태가 전환되는 단계 (사이클)를 정의하는 것인데 여기에 상태가 전환될 때 서로다른 사용자 화면을 사용할 수도 있으며 또 상태가 전환된 후 임의의 작업을 수행하는 Post Function 과 특정 상태조건일 때만 상태가 전환가능한 Condition 그리고 특정 필드의 값이 올바른지를 체크하는 Validator 등을 활용할 수도 있습니다. (이 부분에 대한 자세한 사항은 Configuring Workflow 문서를 참조해 보십시요)

다른 하나는 위의 동영상에도 끝에 나온 것처럼 Draft와 Publication 개념입니다. 
이미 이슈들이 등록되어 있는 프로젝트의 워크플로우를 변경하는 것은 기존 등록된 이슈의 상태들이 바뀔 수도 있다는 것을 의미합니다. 그러므로 실시간으로 바로 변경할 수 없는 것입니다.
일단 워크플로우에 대한 설정을 Draft로 모두 완성한 후 이것을 실제로 Publication 하게 되면 위의 동영상에는 안나오지만 만약 새로 등록되는 워크플로우와 기존에 사용하던 워크플로우의 단계(이슈상태와 매핑) 가 서로 다르다면 매핑 과정이 필요하게 됩니다.
예를들면 기존의 워크플로우가 4단계 ((오픈, 작업시작, 해결, 종료)를 가지고 있는데 이것을 5단계 (오픈, 작업시작, 처리, 검증, 종료) 로 변경하려고 하면 기존에 등록된 이슈들 중에 '해결' 상태에 있던 이슈들은 변경 시 '처리' 상태로 할 지 '검증' 상태로 할 지를 지정해야 합니다.
이를 위해 JIRA에서는 워크플로우 Publication 시에 마법사 형태의 매핑 설정을 하기위한 GUI를 사용합니다.

복잡한 이야기를 간단한 동영상을 시작으로 간단히 정리해 보았는데 한가지 중요한 사실은 워크플로우를 처음부터 복잡하게 가져가지 말라는 점입니다.
워크플로우는 반드시 처음은 심플하게 그리고 사용하면서 꼭 필요한 내용을 반영해 수정해 나가시기 바랍니다.

댓글

이 블로그의 인기 게시물

Confluence 내의 스프레드 시트 기능이 필요하시다면 애드온을 활용해 보십시요

시스템에 숨어있는 "윤초" 버그에 대해 준비하십시요

Confluence 페이지의 분류와 관련된 잘 몰랐던 기능 3가지를 확인해 보십시요