Scrum Helper: SlackBot으로 Daily Scrum에 Jira 티켓 연동하기
안녕하세요! 스퀴즈비츠의 새내기 PM 김사랑입니다. Product Manager를 줄여서 말하는 PM은 제품을 기획하고 스프린트를 관리할 뿐만 아니라, 좋은 제품이 나올 수 있도록 일하기 좋은 환경을 만드는 역할도 합니다. 이번 글에서는 후자의 역할로서, 데일리스크럼을 돕는 슬랙 봇을 제작했던 과정을 소개해드리려고 합니다.
데일리스크럼, 어떤 개선점이 있을까?
프로젝트는 지난 9월 30일, 3분기를 마무리하는 타운홀 미팅을 계기로 시작되었습니다. 팀원들을 대상으로 한 설문조사에서 데일리스크럼에 대한 의견이 공유되었고, 이어서 데일리스크럼을 어떻게 더 효율적으로 할 수 있을까 다함께 논의해보는 시간을 가졌습니다.
타운홀이 끝나고, 저는 기억에 남는 한 가지 문제를 풀어보기로 했습니다.
“데일리스크럼과 Jira 보드를 함께 관리할 수 있으면 좋겠어요”
스퀴즈비츠의 개발팀은 Atlassian의 Jira 서비스를 사용하여 작업을 할당하고 스프린트를 진행하며, 격주로 이루어지는 스프린트 미팅 때 Jira 보드를 함께 리뷰합니다. 현재 데일리스크럼을 수기로 작성하고 있기 때문에 Jira 보드는 따로 관리가 필요했고, 의식적으로 Jira 보드를 업데이트하지 않으면 실제 작업과 Jira 보드 간의 연속성이 부족하다는 문제가 있었습니다. 바쁜 업무를 진행하다 보면, 업데이트가 쉬운 데일리 스크럼만 작성하고 Jira 업데이트는 누락하는 경우가 자주 발생했습니다.
스퀴즈비츠의 데일리스크럼 현황 파악하기
데일리스크럼은 팀 초기부터 이어져 온 스퀴즈비츠의 문화이자 약속으로, 출퇴근 시간이 자유로운 환경에서 구성원들이 자신의 업무를 효율적으로 관리하고 다른 동료들의 업무 진행 상황과 회사 전체의 방향성을 공유하기 위해 시작되었습니다.
스퀴즈비츠 구성원들은 매일 데일리스크럼을 작성하고 공유합니다. 기존 데일리스크럼 작성 과정은 다음과 같은 단계로 이루어졌습니다.
기존 데일리스크럼 User Flow
슬랙의 #0-daily-scrum 채널에 들어갑니다.
ScrumBOT이 게시한 오늘의 Daily Scrum 🌱 메시지의 스레드에 댓글을 남깁니다.
작성한 내용을 정해진 시간에 모여 구두로 브리핑합니다.

이렇게 진행되는 스크럼은 업무 시작 전 자신의 업무 상황을 점검하고 계획을 선언함으로써 계획을 지키고 마무리할 수 있고, 서로의 진행 상황을 공유해 상호 업무를 파악하고 필요 시 도움을 주고받을 수 있다는 의의가 있습니다.
하지만 앞서 소개한 타운홀 미팅에서의 의견처럼, 데일리스크럼이 스프린트 단위로 티켓을 관리하는 Jira 보드와 따로 구분되어 있는 불편함이 있었습니다. 그래서 Slack 메시지를 따로 작성하지 않고 Jira 보드를 통해 티켓을 관리하며, 스크럼 미팅 때는 해당 보드를 함께 보며 구두로 브리핑하는 방식이 제안되었습니다.
일차적으로 Jira 보드를 통한 데일리스크럼을 고려해보았지만, 단순히 Jira 보드를 함께 보며 구두로 데일리스크럼을 진행하기에는 할 일 선언을 통한 효과가 줄어들 것이라 예상했습니다. 또한, Jira를 사용하지 않는 팀과는 공유가 어려울 것 같았습니다. 이후 Atlassian Marketplace에서 티켓 단위의 데일리 미팅 기능이 있는 앱을 검토해 보았지만, 두 앱(NASA, AgileBox) 모두 지금의 데일리스크럼을 완전히 대체하기엔 부족함이 있었습니다.
따라서 무작정 해결 방안을 내놓기 보다 데일리스크럼의 목적과 의의를 유지하면서 문제를 해결할 수 있는 방법을 찾아보기로 하였습니다.
문제의 원인을 파고들기
먼저 문제의 원인을 추적하는 5 Whys 분석을 통해 ‘스프린트 미팅에서 생성한 Jira 보드가 미팅 외의 시간 동안 업데이트/관리되지 않는’ 문제의 근본적인 원인을 탐구했습니다.
WHY 1: 왜 Jira 이슈가 미팅 외의 시간에 업데이트 되지 않는가?
WHY 2: 왜 팀원들은 Jira 보드를 자주 확인하거나 업데이트하지 않는가?
WHY 3: 왜 업무 현황을 Slack에서 공유하는가?
WHY 4: 왜 Slack에서 수기로 작성하는 것이 가장 접근성 좋은 방법인가?
WHY 5: 왜 Jira보다 Slack이 익숙하고 빠른가?
이 과정을 통해 Jira 보드가 지속적으로 관리되려면, Slack이라는 채널을 사용하면서 간편해야한다는 인사이트를 얻었습니다. 따라서 팀원 모두에게 가장 접근성 좋은 툴인 Slack을 활용하는 방향으로 flow를 개편했습니다.
Scrum Helper의 기능 기획하기
위에서 얻은 해결책에 따라, Slack에서 Jira 티켓의 상태를 확인하고 업데이트를 도울 수 있는 슬랙봇을 제작했습니다. 데일리스크럼을 돕는다는 의미에서 슬랙봇의 명칭을 ‘Scrum Helper’로 정하고 다음과 같은 목표를 세웠습니다.
Jira 보드를 자주 보고 자주 업데이트 할 수 있게 돕는다.
Jira 티켓 내역을 데일리스크럼에 공유하기 쉽게 한다.
이를 위해 Jira 보드에 있는 티켓 목록을 조회하고, 하이퍼링크를 통해 보드로 이동하는 기능을 기획했고, 새로운 User flow를 구상했습니다.
바뀐 데일리스크럼 User Flow
슬랙의 #0-daily-scrum 채널에 들어가서 티켓 확인하기 버튼을 클릭합니다.
Scrum Helper와의 DM 창에서 현재 보드의 티켓 상태를 확인합니다.
(optional) 보드로 이동 버튼을 눌러 직접 보드를 업데이트합니다.
최종 티켓 상태를 확인한 후, 확정 버튼을 클릭합니다.
티켓 외에 기록할 내용이 있다면 작성한 후, 제출 버튼을 클릭합니다.
제출한 내용이 ScrumBOT이 게시한 오늘의 Daily Scrum 🌱 메시지의 스레드에 작성됩니다.
작성한 내용을 정해진 시간에 모여 구두로 브리핑합니다.
기존 User Flow와의 비교

기존의 데일리스크럼 작성 과정에서는 스크럼 내용 작성과 Jira 보드/티켓 관리가 분리되어 있어, 보드 관리가 팀원들의 자율에 맡겨진 상태였습니다. 이로 인해 팀원들이 스크럼을 통해 업무를 파악하고 공유하는 과정은 원활했지만, 이와 별도로 Jira 티켓 상태가 항상 최신으로 유지되기는 쉽지 않았습니다. 이를 개선하기 위해 Scrum Helper를 도입하여 Jira 티켓 확인과 업데이트 과정을 자동화함으로써 팀원들이 Jira 보드를 더욱 쉽게 관리하고, 데일리 스크럼에 효율적으로 반영할 수 있도록 기획했습니다.
Scrum Helper 개발하기
문제 정의와 User Flow 기획을 마친 후, 본격적으로 슬랙봇 개발을 시작했습니다. Slack에서 제공하는 API로 슬랙 앱을 생성하고 작동시킬 수 있고, Jira API를 활용해 보드의 상태를 불러오거나 계정과 티켓을 관리할 수 있었습니다.
물론 여러 API를 직접 이용해 코드를 작성해 슬랙봇을 만들 수도 있지만, 서버 구축 등으로 인해 개발 시간이 길어질 것을 고려해 빠른 개발이 가능한 Low code 서비스를 활용하기로 했습니다. 여러 서비스 중 API 확장성이 뛰어나고 각 단계별 워크플로우 디버깅이 편리한 Make라는 툴을 선택했습니다.

먼저 Slack에서의 사용자 동작을 감지하는 Webhook 블록을 설정하고, Jira와 Slack 블록으로 티켓 정보를 조회하고 메시지를 전송하는 기능을 구현했습니다. Router를 사용해 입력에 따른 시나리오를 구분하고, Json 블록으로 조회된 데이터를 처리할 수 있도록 설계했습니다.이렇게 만들어진 Scrum Helper의 주요 기능은 다음과 같습니다.
사용자가 티켓 조회 버튼을 클릭하면, 해당 사용자의 스프린트에 있는 Jira 티켓을 조회해 목록을 DM으로 전송합니다.
사용자가 티켓 상태를 업데이트하기 위해 Jira 보드로 이동하면, 티켓 내역을 새로고침하도록 유도합니다.
사용자가 티켓 확정 버튼을 누르면 데일리 스크럼 채널에 업데이트 내용을 자동으로 업로드합니다.
자체 QA 및 기능 개선
Scrum Helper를 팀원들에게 공개하기 전에 자체적으로 앱을 테스트하며 QA를 진행했습니다. 데일리스크럼은 팀 내에서 중요한 워크플로우로 자리 잡고 있고 기존 방식이 오랫동안 정착되어왔기 때문에, 새로운 과정을 습관화하는 데에 어려움이 있을 수 있음을 예상했습니다. 특히, 앱이 복잡하게 작동하거나 오류가 발생하면 새로운 방식에 적응하기 어려울 수 있어, 이를 최대한 방지하기 위해 노력했습니다.


이 과정에서 Make의 디버깅 기능을 적극적으로 활용했습니다. 블록 단위의 API 호출 결과를 확인하며 다양한 예외 사항을 고려할 수 있었고, flow를 점검하면서 발생하는 오류를 수정했습니다.
또한, 티켓으로만 전달할 수 없는 내용을 추가할 수 있도록 데일리스크럼 공유 전에 사용자가 직접 입력할 수 있는 텍스트 박스를 추가하는 등 팀원들이 Scrum Helper를 더 쉽게 사용할 수 있도록 개선했습니다.
Scrum Helper, 공개되다
지난 월요일, Scrum Helper를 팀에 공개했습니다. 슬랙 워크스페이스의 공지 채널에 사용법을 안내하고 사용자 의견을 받았습니다.

Scrum Helper를 직접 사용해 본 팀원들이 많은 의견을 보내주셨고, 덕분에 개선 사항을 빠르게 반영하여 업데이트를 진행할 수 있었습니다.

특히, 몇몇 팀원들은 Jira를 사용하지 않기 때문에 Scrum Helper를 사용이 어렵다는 의견이 있었습니다. 이를 반영하여, Jira를 사용하지 않는 팀원들도 동일한 워크플로우를 경험할 수 있도록 ‘티켓 없이 바로 작성하기’ 버튼을 추가했습니다.

업데이트가 완료된 후, 업데이트 노트도 슬랙을 통해 팀원들과 공유했습니다.

이처럼 팀원들의 실제 피드백을 빠르게 반영함으로써 Scrum Helper를 점점 더 나은 방향으로 발전시킬 수 있었습니다. 사용자들의 다양한 의견을 듣고 그들이 원하는 기능을 구현해 나가며, Scrum Helper의 활용도 또한 더욱 높아졌습니다.
팀을 위한 제품 만들기
PM은 보통 외부 고객을 위한 제품을 기획하는 경우가 많은데, 이번 Scrum Helper는 내부 사용자를 대상으로 한 제품이라 더욱 특별했습니다. 특히, 팀원들이 겪고 있던 불편함을 해결해 줄 수 있었다는 점이 가장 기뻤습니다. 매일 새로운 스크럼 메시지가 올라올 때마다 작은 성취감과 뿌듯함을 느끼고 있습니다.
이번 프로젝트를 통해 사용자의 입장에서 문제를 해결하고, 제품 공개 후에도 유저들의 피드백을 빠르게 반영하는 것이 중요하다는 걸 깨달았습니다. 저 또한 기획자이자 개발자일 뿐만 아니라 사용자였기 때문에, 유저 입장에서 더 깊이 고민할 수 있었습니다. 앞으로 제품을 만들 때에도 고객의 입장에서 더 많이 고민하고, 그들이 필요로 하는 것을 정확히 해결해줄 수 있는 PM이 되어야겠다는 다짐을 했습니다.
—
이렇게 우리는 일하기 좋은 환경을 만들기 위해 노력하고 있습니다. 스퀴즈비츠에서는 모두가 함께 팀의 문화를 직접 만들어 나가며, 서로 배우고 성장하기도 합니다. 저희와 함께 팀 문화를 만들어갈 분들은 언제든 함께해 주세요!