1. 시작하며
이슈(Issue)를 추적관리하는 업무는 QA 직군이 반드시 해야 하는 필수 업무 중 하나입니다. 탄생(생성)부터 죽음(완료)까지 이슈의 생애를 각종 정보들을 통해 지켜봄으로서 이들의 처리가 원활하도록 관리해야 합니다. 이슈는 또 일종의 일감으로, 전체 프로젝트 마일스톤(Milestone) 안에 있는 또 하나의 미시적 마일스톤으로도 볼 수 있습니다.
활발하게 개발이 이루어지는 기간에는 이러한 일감들이 끊임없이 쏟아져 나옵니다. 그럼 수많은 일감을 어떻게 전달해야 효과적일까요? 귀로 듣는 것이 확실하니까 직접 말로 설명할까요? 아니면 담당자 모니터에 포스트잇으로 붙여둘까요? 그것도 아니면 메신저로 전달할까요?
여러 가지가 있겠지만, 가장 보편적인 방법으로 대부분 **'BTS(Bug Tracking System)'**라는 도구를 사용하여 이슈와 일감들을 관리합니다. (요즘 방탄소년단 덕분에 BTS라는 단어가 국위선양의 콘텐츠로 자리매김했지만 어쨌든...) BTS를 사용하여 팀원들은 수많은 일감을 시각적으로 확인하고, 현재 상태를 직관적으로 알 수 있어서 업무 효율성이 비약적으로 상승합니다. 구두 또는 문서전달의 방식 보다 훨씬 더 효과적이죠.
그러나 당장 'BTS를 사용하자!'라고 결정해도 한 가지가 논의가 더 필요합니다.
그럼 어떤 BTS 서비스를 사용해야 할까?
BTS로 사용할 수 있는 프로그램이나 서비스들은 매우 많지만, 아무렇게나 사용하면 원하는 만큼의 효율성을 이끌어내지 못할 확률이 큽니다. 이는 개발 프로세스, 팀 성향, 무료 / 유료 툴 여부, 원하는 기능을 제공하는지 등 세부적으로 커스터마이징이 필요한 부분들이 많기 때문이죠. 어떤 툴을 어떤 방식으로 사용하느냐는 역시나 사람에게 달려 있기 때문에, 우리는 좋은 툴을 효과적으로 사용하기 위한 방법을 마련해야 합니다. 그렇지 않다면 일감 관리 업무는 Bug Tracking System이 아닌 **Burn The Stage(하얗게 불태웠어...)**가 될 테니까요.
2. JIRA 이전의 BTS
이 포스트에서는 쿠키런 오븐브레이크 팀에서 JIRA를 도입하는 과정과, 이를 효과적으로 사용하기 위해 노력했던 것들에 대해 서술합니다. 그럼 우리가 왜 JIRA를 사용했는지를 알기 위해서는 그 이전에 사용했었던 BTS에 대해서 한번 되짚어보아야 할 것 같습니다.
1) 구글 스프레드시트 (Feat. Excel)
협업을 하는 회사라면 적어도 한 번씩 사용해보았을 구글 스프레드시트입니다. 구글 계정만 있다면 기본적으로 웹페이지에서 접근이 가능하기 때문에 따로 요금을 지불하거나 복잡하게 계정을 생성해야 하는 등의 프로세스는 필요하지 않습니다. 또한 Microsoft의 Excel과 유사하여 사용성 측면에서도 비교적 간단합니다. 구글 스프레드 시트는 쿠키런 for KAKAO 서비스 초반과 쿠키런 오븐브레이크 일부 이슈관리에 사용했습니다.
구글 스프레드시트의 장단점은 다음과 같습니다.
장점:
- 접근성과 사용성이 좋습니다.
- 다양한 양식으로 템플릿을 제작할 수 있습니다.
- 메일이나 링크 전달만으로도 손쉽게 다른 사람에게 공유가 가능합니다.
- 무료입니다.
단점:
- 처음에는 가벼우나, 데이터가 쌓이면 그 데이터를 관리하는 리소스가 매우 많이 듭니다.
- 이슈 상태를 직관적으로 파악하기 어렵습니다.
- 상용 BTS 서비스 만큼의 검색, 자동 분류 기능을 기본적으로 제공하지 않습니다.
- 스크린샷, 동영상 등의 첨부파일을 업로드하는 것이 매우 제한적입니다.
- 보안이 취약합니다.
- 무엇보다도 툴이 멋지지가 않습니다. (사실 제일 중요함)
장점도 있긴 한데, 단점이 매우 치명적이어서 이슈를 추적관리하는데 부적합한 툴이었습니다. 이슈를 추적관리하는 것보다 시트의 내용을 정리하고 수동으로 최적화 작업을 해야 했기 때문에 작업자의 신경이 이슈의 관리보다는 '시트 정리'에 초점이 맞추어져 있어서 일을 위한 일이 되어버리는 결과를 낳았습니다.
2) 트렐로(Trello)
그다음으로 사용했던 트렐로는 전형적인 프로젝트 관리용 서비스입니다. 애자일 프로세스에서 흔히 볼 수 있는 칸반(Kanban), 즉 열(List) 단위 연속 처리 방식에 따라 이슈가 시각화되는 것이 특징입니다. 이 서비스는 쿠키런 for KAKAO와 더불어 쿠키런 오븐브레이크 서비스 중반, 그 외 다양한 내부 프로젝트에서 범용적으로 사용하였습니다. 불과 작년 3월까지 사용했던 툴이라 아직도 기억이 생생하네요.
트렐로의 장단점은 다음과 같습니다.
장점:
- 직관적으로 이슈의 상태를 확인할 수 있습니다.
- 각 열 상태를 마음대로 지정할 수 있습니다.
- 열 이외에 레이블(Label)을 사용하여 추가적으로 이슈의 상태를 표시할 수 있습니다.
- 담당자 지정이 가능합니다.
- (제한적이지만) 첨부파일 업로드가 가능합니다.
- 상대적으로 다른 서비스에 비해 가볍습니다.
- 필터링을 통해 원하는 이슈만 볼 수 있습니다.
- 무료로 사용 가능합니다.
- 승인된 계정만 접속 가능하므로 일정 수준의 보안이 확보됩니다.
단점:
- 이슈 검색 기능이 원하는 만큼 정확하지 않았습니다.
- 생성된 이슈 카드 수가 많으면 엄청나게 느려집니다.
- 워크플로(Workflow) 기능이 없어서, 잘못된 상태에 있는 이슈를 확인하기 쉽지 않습니다.
- 무료 버전의 경우 첨부파일 용량 및 생성 가능한 보드의 수에 제한이 있습니다.
- 이슈들의 히스토리 관리가 어렵습니다.
- 통계 기능이 없습니다.
트렐로는 많은 장점을 가진 도구입니다. 팀의 규모가 작았을 때 가볍게 사용할 수 있으면서 이슈들의 상태를 관리할 수 있었기 때문에, 꽤나 오랫동안 사용했던 서비스입니다. 무엇보다도 무료였기 때문에 비용의 부담 없이 쓸 수 있어서 더 좋았었네요.
그러나 무료 버전은 첨부파일 용량 제한으로 항상 동영상이나 스크린샷을 올릴 때 용량을 확인해야 했고, 경우에 따라 용량을 줄이기 위한 인코딩까지 필요했습니다. 이러한 작업을 거치면 첨부파일의 품질이 낮아져, 막상 파일을 실행해도 화면이 나오지 않거나 저화질로 보아야 하는 경우가 비일비재했습니다. 무엇보다도 이슈 검색 기능이 생각보다 좋지 않았기에, 이전에 등록했었던 특정 이슈 카드를 찾기 힘들었습니다. 검색 결과 화면에서 일일이 카드를 눌러보며 찾아야 했던 아픔이 떠오르네요.
또한 버전 단위로 이슈를 확인하기 어려웠습니다. 저희는 이를 개선하고자 버전별로 보드를 계속 생성해서 관리하였으나, 2019년 5월을 기점으로 무료 사용자의 보드 생성 개수가 제한되면서 이 방법도 결국은 한계에 다다르고 말았습니다.
좋은 서비스였습니다만, 여러 가지 한계점으로 인해 이별을 하게 되었다는것이 참 마음이 아픕니다. 하지만 이걸 기점으로 전사 QA 직군에서는 BTS 서비스를 바꿔보는 게 어떨까 하는 의견을 낼 수 있었습니다.
3. BTS 춘추 전국 시대
트렐로 다음으로 어떤 서비스를 이용해야 하지?
트렐로와 이별하기 전, 저희 QA 엔지니어들은 BTS로 사용할 수 있는 서비스들을 주욱 나열해보았습니다. Redmine, Mantis, Asana, Wrike, Monday, JIRA 등 정말 많은 서비스들이 목록화되었고, 이들 중 몇몇은 실제로 초기 설정까지 마치고 시험적으로 사용도 해보았으나, 만족할 만큼의 효율성을 산출해내지는 못하였습니다. 이는 각 툴별로 QA 엔지니어들의 숙련도와 각자가 추구하는 BTS 최소 기능의 수준이 달랐기 때문이었습니다.
그래서 그다음으로 나왔던 의견은, 그냥 각 프로젝트에서 사용하는 BTS는 해당 프로젝트 소속 QA가 결정하여 독자적으로 운용하자는 것이었습니다. 예를 들어 A 프로젝트는 Redmine을, B 프로젝트는 Mantis를, C 프로젝트는 Wrike를 쓰는 식입니다. 이는 각 프로젝트의 업무 프로세스와 QA 엔지니어의 툴 숙련도에 최적화하여 사용할 수 있어서 업무 효율성을 극대화하는 장점이 있습니다.
그러나 위 방식은 각 서비스마다 계정을 각각 따로 관리했어야 했기 때문에, 전사적으로 계정을 관리하는 입장에서 리소스가 너무 많이 들게 되고, 입사자나 퇴사자 처리 등 계정의 생성/제거 절차가 매우 복잡해지는 단점이 있었습니다. 또한, A 프로젝트에서 B 프로젝트의 BTS를 보려고만 해도 (View) 새로 계정을 생성해야 했기 때문에, 이게 만약 유료툴이라면 1계정 비용이 추가로 지불됩니다. 프로젝트 단위 업무 효율성은 상승할지는 몰라도 관리/비용 측면에서는 비효율적이기 때문에 이 방안은 실행하기 어려웠습니다.
그래서 우리는 다시 처음으로 되돌아왔습니다만, 여전히 어떤 툴을 사용해야 하는가에 대해서는 의견이 분분했습니다. 사실 JIRA가 다른 모든 서비스의 기능을 대체적으로 포함하고 있어서 가장 최적의 선택이었지만, 유료 서비스였기 때문에 쉽사리 결정하기 어려웠습니다. 그러나 우리의 업무 효율성을 높이는 방법이라면 유료 서비스라도 사용해야 한다는 쪽으로 의견이 모아졌고, 최종적으로 전사 모든 프로젝트가 JIRA를 사용하는 것으로 결정하였습니다.
4. 괴수 길들이기 : 초기 환경설정
우여곡절 끝에 이제 저희는 JIRA라는 아주 거대하고 복잡한 서비스를 사용하게 되었습니다. 처음에는 마치 새로운 전자기기를 산 것처럼 신나게 이것저것 뜯어보고 만져보고 했지만, 나중에는 **'이 복잡하고 어려운 서비스를 우리가 과연 효율적으로 잘 사용할 수 있을 것인가..?'**에 대해서 심각하게 고민하게 되었습니다. 저를 포함한 3명의 QA 엔지니어들은, **'2019년 4월 업데이트에 실사용'**이라는 목표를 세우고 이 무시무시한 괴수를 어떻게 길들일지 논의하였습니다.
1) 운용 방식 (Board Template)
기존처럼 칸반(Kanban) 방식을 유지할 것인가, 아니면 새로운 방식을 사용할 것인가에 대해서 논의한 사항입니다. 결과적으로 저희는 칸반 방식을 유지하기로 하였습니다. 우선 QA 팀을 포함한 프로젝트 내 모든 인원들이 트렐로에 매우 익숙해져 있고, 새로운 툴에 적응하는 데에도 스트레스가 있을 텐데 BTS의 처리 방식과 UI가 기존과 다르다면 익숙해지는데 더 많은 시간이 들 것이라 예상했습니다. 또한 칸반 자체가 직관적이고 리드미컬한 이슈 처리가 가능했기 때문에 협업에 더 유리할 것이라는 판단을 하였습니다.
2) 워크플로 (Workflow)
트렐로를 사용할 때에 저희는 '등록이슈' → '수정완료' → 'QA완료' 라는 매우 단순한 이슈 상태만 각 열에 지정해두고, '수 정 중', **'QA 확인 중'**과 같은 상태는 레이블로 대체하여 운용하였습니다. 그러나 칸반은 카드를 드래그 & 드롭하여 신속하게 이슈를 처리하는 데에 목적이 있는데, 카드에 일일이 레이블을 달거나 변경하는 작업은 비효율적입니다. 따라서 저희는 기존에 레이블로 처리하던 방식까지 모두 열(List) 단위로 세분화하여 워크플로를 설계하기로 하였습니다. 이렇게 하면 굳이 카드를 팝업 하여 레이블을 입력하는 것 대신 마우스로 카드를 끌어다 놓기만 하면 되어서 신속하게 이슈의 상태를 변경할 수 있습니다.
추가로 쿠키런 오븐브레이크 개발 프로세스 내 특수한 상황들을 워크플로에 반영하기로 하였습니다. 이슈인 줄 알고 등록하였으나 기획서에 해당 내용이 명시된 경우(이슈아님), 이슈로 등록했으나 담당자들의 합의를 통해 이를 **사양(Spec)**으로 변경하는 경우(사양으로 변경), 중복으로 등록된 이슈인 경우입니다(중복이슈). QA 완료 외 3가지의 '처리 완료(Close)' 상태를 추가함으로써, 좀 더 저희 팀에 최적화된 처리 절차를 구축할 수 있었습니다.
마지막으로 '보류' 상태를 추가하여 현재 업데이트에서 수정하기에는 시간적 / 인적 리소스가 부족하거나 생각하지 못한 엣지케이스 같은, 스펙 확정의 시간이 걸리는 이슈의 경우 보류 처리하여 장기적으로 관리해야 할 이슈의 상태를 따로 만들어 두었습니다. 이들은 30일 스프린트마다 수정 가능한지 확인하면서 처리하기로 하였습니다.
최종적으로 쿠키런 오븐브레이크의 워크플로를 다이어그램으로 나타내면 다음과 같습니다.