Post

슬랙 워크플로(workflow)로 팀 생산성 높이기

슬랙의 워크플로 기능을 사용해서 팀 데일리 스크럼과 1:1 리뷰 요청 기능 만들어 본 후기

슬랙 워크플로란?

워크플로 는 슬랙 유료 플랜에서 제공하는 자동화 기능이다. 일상적이고 반복적인 작업을 코딩 없이 여러 가지 방식으로 자동화할 수 있으며, 다른 외부 생산성 툴(줌, 아사나, 지라, 자피어, 구글 스프레드시트 등)과의 커넥터도 제공한다.

슬랙의 공식 워크플로 소개

최근에 팀 슬랙 채널에서 이 워크플로우 기능을 사용해서 이것저것 시도해보고 있는데, 이 중 2가지를 소개해보려고 한다.


데일리 스크럼을 해봤다

데일리 스크럼이란?

데일리 스크럼이란 꽤 오래된 애자일 방법론 중 하나로, 매일 팀이 (보통 업무 시작할 때) 같은 장소에 모여 그날의 업무 상황을 공유하는 미팅을 하는 것을 의미한다. 이때 들고 온 안건에 대해 각 잡고 토론을 하는 것이 아니라, 보통 다음과 같은 내용을 돌아가면서 짧게 순서대로 이야기한 다음 마친다.

  1. 어제 무엇을 했는지
  2. 오늘 무엇을 할 건지
  3. (있다면) 어려움이나 막히는 부분이 있는지
  4. (있다면) 다른 사람과 협업이 필요한 주제가 있는지

간단한 공유를 목적으로 하는 데일리 베이스의 미팅인 만큼, 매번 이야기가 길어지거나 불필요하게 깊은 논의를 하게 되면 모든 구성원에게 매우 큰 피로감을 주게 된다. 그래서 보통 이 미팅의 핵심은 필요한 수준의 업데이트만 빠르게 마무리하는 것! 그렇기 때문에 서서 진행하는 경우가 많고, 그래서 데일리 스탠드업이라고 하기도 한다.

말이 그렇다는 거지 시간만 지킨다면 앉아도 상관없겠지

일반적으로 데일리 스크럼의 기대효과는 이렇다.

  • 각 구성원의 상태를 일 단위로 업데이트하여 원활한 협업을 할 수 있음
    • 둘 이상이 협업하거나 논의해야 하는 일이 있을 때 서로의 상황과 일정을 참고하기
    • 어려움을 겪고 있는 동료에게 도움을 제안하거나 피드백을 주기
    • 빠른 템포로 진행 상황을 확인하여 목표와 방향이 틀어지지 않도록 싱크를 맞추기
  • 매일 최소한의 정서적 스킨십을 유지할 수 있음
    • 서로 얼굴을 보고 목표와 상태를 공유함으로써 같은 팀이라는 인식과 친밀함을 느끼기

이걸 왜 슬랙으로?

데일리 스크럼을 슬랙으로 하려고 했던 가장 큰 이유는 우리가 유연근무를 하고 있기 때문이다. 우리 팀의 근무정책은 원활한 협업(+회의)을 위해 정해진 시간대(11시-16시)에는 다 같이 자리를 지켜야 하지만, 그 시간 외에는 자유롭게 출퇴근을 하여 월 근로시간을 채우는 방식이다. 즉 누군가는 8시에 오고 누군가는 11시에 온다.

늦은 출근을 선호하는 사람에게 스크럼을 위해서 일찍 출근하자고 할 수는 없으니, 스크럼을 하려면 11시에 하는 게 맞겠다. 다만 이럴 경우 8시에 출근한 사람 입장에서는 한창 집중해서 일하다 말고 일어나서 스크럼에 참여해야 하니 업무의 흐름이 깨진다. “전 오늘은 OO 할 거고.. (이미 한 3시간 하긴 했지만요)” 이렇게 되는 것이다.

따라서 각자 출근해서 원하는 시간에(일을 시작하기 전에) 현재 상태와 하루의 계획을 공유하고, 각자 원할 때 확인할 수 있게 하고 싶어서 슬랙을 사용하는 방식을 선택했다. 대면으로 하는 것이 아니니 기대효과 중 두번째 이점은 누리지 못할 수 있는데, 우리 팀은 평소에 점심 시간이나 쉬는 시간에 충분히 대화를 하는 편이라고 판단했기에 그런 효과는 굳이 데일리 스크럼을 통해 획득해야 하는 부분은 아니었다.

데일리 스크럼 워크플로 만들기

우선 자동화 탭에서 다음과 같이 현재 사용 중인 워크플로를 볼 수 있고, 워크플로 빌더로 들어가면 새로운 워크플로를 생성할 수 있다.

워크플로는 트리거(워크플로를 시작하는 방식)과 단계(워크플로 내의 작업)라는 2가지 요소로 이루어져 있다.

  • 트리거
    • 링크 클릭 (워크플로의 링크를 클릭하면 시작)
    • 이모지 (메시지에 특정 이모지로 반응하면 시작)
    • 일정 (특정 일자 특정 시간에 시작)
    • 채널 참여 (누군가가 채널에 들어오면 시작)
  • 단계
    • 메시지 전송
    • 정보를 수집하는 양식

단계와 단계 사이는 버튼 누르기 등으로 이동할 수 있고, 양식을 통해 수집한 정보를 다음 단계에서 활용할 수 있다. 이렇게 말로 하면 무슨 말인지 모르겠지만 예시를 보면 바로 이해가 갈 것이다.

데일리 스크럼을 위해서 2개의 워크플로를 생성했다.

  1. 데일리 스크럼 알림 워크플로
    • 매일(평일) 8시에 팀 채널에 등장해서 데일리 스크럼에 참여하라고 알려주는 기능이다. reminder 기능과 크게 다르지 않다.
  2. 데일리 스크럼 참여 워크플로
    • 위 알림 워크플로가 보낸 메시지에 누군가가 특정 이모지를 누르면, 그 사람에게 DM으로 스크럼 질문 양식을 보내준다.
    • 양식에 맞춰 답변을 하면, 알림 워크플로가 보낸 메시지의 스레드로 그 답변의 내용을 다 같이 볼 수 있도록 달아준다.

데일리 스크럼 알림 워크플로

  • 트리거
    • 모든 워크플로의 첫번째 블록은 트리거 조건이다. 이 워크플로의 경우, 트리거는 시간이다. (= 평일마다 아침 8시)
  • 단계
    • 이 워크플로는 단계가 1개밖에 없다. = 팀 채널에 메시지 보내기.
    • 메시지의 내용을 자유롭게 입력할 수 있다. 이 경우, 다음 워크플로를 실행하기 위해 이모지를 누르라고 안내하는 내용이다.
    • 위 스샷에서 워크플로가 시작된 시간은 변수다. 실제 메시지에는 2023년 12월 21일 처럼 노출된다.


데일리 스크럼 참여 워크플로

  • 트리거
    • 이 워크플로의 트리거는 어떤 메시지에 특정 이모지를 누르는 것이다.
    • 꼭 알림 워크플로의 메시지가 아니라 이 채널에서 다른 어떤 메시지에도 이 이모지를 누르면 이 다음 단계가 동작하므로 사람들이 잘 사용하지 않는 이모지를 고르는 것이 중요하다. (👍 이런 거 안 됨!)
    • 팀원 분이 이런 이모지를 등록해주셨다. 검색하다 실수로도 누를 수 없을 것 같다.
  • 단계
    • 1단계: 이모지를 누른 사람에게 DM으로 메시지를 보낸다. 버튼 누르기 옵션을 준다. 버튼 이름은 참여하기 이며, 이모지 누른 사람이 이 버튼을 클릭하면 다음 단계로 넘어간다.
    • 2단계: 다음과 같은 양식으로 스크럼 응답을 수집한다. 응답을 제출하면, 다음 단계로 넘어간다.
    • 3단계: 제출된 응답을 스레드로 달아준다. 여기서도 위의 양식에서 제출한 응답 (예 - Answer to: 오늘 할일 )을 변수로 사용했다. 실제는 내가 입력한 응답 그대로 다음과 같은 메시지가 달린다.

1개로 해결할 수 있으면 베스트일 텐데 왜 2개로 나눠서 만들었나요? 라고 물으신다면 1개로 만드는 게 불가능했기 때문이다. 각자 버튼을 눌러서 각자 양식 수집 창이 뜬다면 1개로 만들 수 있었을 텐데, 불행히도 현재는 버튼 누르기 기능은 메시지당 한 사람밖에 버튼을 누르지 못한다. 누가 버튼을 누르면 버튼이 다시 활성화되지 않는다… (참고한 글)


1:1 코드 리뷰를 해봤다

잠깐 배경설명 (변명일지도)

우리 팀은 지금까지 코드 리뷰를 해본 적이 없다. 전원 분석가로 이루어진 팀이고, 일반적인 개발자들의 코드 리뷰 프로세스에 대해서는 잘 아는 사람이 없었다. 형상관리 툴을 사용할 수 있는 환경도 아니다. 보통 각자 혼자 작업하는 환경이며, 여러 외부 요청이 많아서 항상 바쁜 상황이다. 이런 상황이 예전부터 지속되다가 어느 순간 보니 레거시가 너무 쌓여서 진짜 눈물 없이 볼 수 없는 광경이 펼쳐져 있었다.

사실 돼지는 매우 깨끗한 동물이라고 합니다

최근 그 레거시 코드 뭉치를 크게 보수 작업할 일이 있었는데 그야말로 개고생이었다. 자연스럽게 우리가 만드는 데이터 프로덕트의 프로덕션 코드에 한해서는 1:1 리뷰 프로세스를 도입하자는 얘기가 나왔다. 그래 봤자 뭐 거창한 것은 아니고, 내부적으로 코드 작업 시 지켜야 할 체크리스트에 대한 합의를 하고 그게 잘 지켜지고 있는지 작업자 외의 최소 다른 한 명이 봐주자 정도에 가깝다.

리뷰 요청 워크플로 만들기

리뷰 가이드(체크리스트)도 정했고 리뷰어-리뷰이도 지정했으니 이제 각자 작업을 할 때마다 리뷰어에게 요청을 하면 된다. 그냥 마음대로 태그해서 요청해도 되지만, 어느 정도 양식이 정해져 있다면 요청하는 사람과 받는 사람이 모두 편할 것이라고 생각했다.

그래서 리뷰 요청 워크플로를 만들어봤다. 꼭 리뷰 요청이 아니더라도 정해진 양식에 따라 정보를 수집할 일이 있다면 활용 가능한 워크플로다.

리뷰 요청 워크플로

  • 트리거
    • 이 워크플로는 링크를 누르면 시작한다. (링크를 팀 채널에 책갈피로 달아놓으면 언제든 편하게 눌러서 시작할 수 있다.)
  • 단계
    • 1단계: 링크를 누른 사람에게 다음과 같은 양식이 뜬다.
    • 2단계: 양식에서 수집한 응답을 바탕으로 채널에 메시지를 보낸다.
    • 3단계: 리뷰어의 피드백이 반영되고 난 다음에 메시지의 버튼을 누르면, 스레드에 리뷰가 완료되었다는 메시지를 달아주고 리뷰를 종료한다.


할 수 있는 다른 것들

워크플로가 더 궁금한 분들을 위해 다양한 템플릿과 사용 예시가 있는 문서를 첨부한다.

This post is licensed under CC BY 4.0 by the author.