로키와 실비의 마음으로 일정 가시화를 시켜보자 ⏰

어떰·2024년 1월 25일
0
post-thumbnail

문제: 한계에 다다른 시간선 직조기

우리 팀의 개발자들은 모두 손가락 열 개씩을 가지고 있고, 하루를 24시간으로 살아갑니다. 개개인의 역량에 따라 할 수 있는 일의 양은 모두 다르겠지만, 그보다 더 많은 일을 하면 퀄리티가 떨어질 수도 있고 혹은 삶의 질이 떨어질 수도 있습니다. 처음에는 모든 것을 다 만들어 버릴 것 같은 열정과 패기를 가지고 시작하겠지만 지속될수록 알게 모르게 사람들이 지쳐갑니다. 그러면 처음에는 (❤️❤️❤️❤️❤️) 이만큼 할 수 있었던 일도 첨차 줄어서 (❤️❤️❤️❤️) 이만큼밖에 못하게 될 수 있습니다.


(이미지: 드라마 로키의 시간선 직조기)

하지만 일은 더 많아지면 많아졌지 줄어들진 않습니다. 왜 그런걸 알고 있냐구요?

저도 알고 싶지 않았습니다 (😭)

일을 하고, 개인적인 노력을 더 들여서 성장을 하고, 그러다보면 점점 더 많은 일을 처리할 수 있게 되는 것은 맞습니다. 회사에서 연봉을 때에 맞춰서 인상을 해주는 것도, 그간의 기여도와 앞으로의 성장 가능성을 함께 평가해서 인상해주는 것일 테니까요. 더 많은 일을 하게 되는 것은 맞다고 생각합니다. 돈을 더 줬으니 일을 더 많이 해줬으면 좋겠다는 것도(물론 이 마음이 진짜라고 해도 이렇게 직접적으로 말하시지는 않겠지만 😉) 당연히 이해됩니다.

하지만 망가진 직조기에 일을 쏟아 붓기만 한다고 직조기가 알아서 일을 일렬로 잘 펴서 처리할 수는 없습니다. 처리량이 한계에 다다르면 결국 그거은 펑. 💥


(이미지: 드라마 로키의 로키)

해결책 1: 시간선에서 벗어난 일은 지워볼까?

그렇다면, 신성한 시간선에서 벗어난 일은 지워볼까요? 그게 정답일까요?

사실 우리 팀에게 닥친 문제는 단순히 일의 절대적인 양이 많아서만은 아니었습니다. 그 일이 대책없이 사이즈도 측정이 안된 상태로 무작정 여러 개가 날라왔기 때문에 더 혼란스러웠습니다. 한 스프린트 내에서 한명이 맡고 있는 일이 3, 4개가 되고 우선순위 파악도 안되며(보통 다 중요하다고 함) 개개인의 개인기에만 의존하고 있는 상태였습니다. 이런 일이 지속되다보니 다른 일 때문에 어떤 일이 누락되기도 하는 문제도 발생했습니다.


(이미지: 드라마 로키의 터지기 시작한 시간 직조기)

예를 들어, 프론트엔드 팀에서는 API가 없는 상태로 일을 하더라도 결국 이 작업이 완성되려면 API가 나와야 하는데, 백엔드 팀 일 과부화로 작업 시작도 못한 경우도 있었습니다.
보통 PM분들께서 최종적으로 작업의 완료로 보는 것은 프론트엔드 팀의 작업까지 다 되었느냐 였기 때문에, 작업이 밀리면 프론트엔드 팀을 찾아오셨습니다. 그러면 저희는 항상 슬픈 얼굴로 고개를 저어야 했죠.

API가 아직 안나왔어요. 연동해서 로컬에서 확인해보고 PR 올리고, QA 할 수 있게 개발 서버 배포해야 하는데, 아직 API를 못 받았어요 😭

저희는 더이상 이렇게 일할 수는 없다고 생각했습니다.


(이미지: 드라마 로키의 시간선 그래프)

그렇다고 이렇게 신성한 시간선 바깥으로 나가버린 것들을 다 잘라낼 수는 없었습니다. 저게 다 약속이고, 우리 회사는 돈을 벌어야 하니까요. 물론 우리 개개인도 그렇습니다.

해결책 2: 시간선 직조기에 확대기를 달아볼까?

자, 그럼 어쩔 수 없네요. 야근을 하고 주말 출근을 하며 약속을 지켜야죠. (😭) 확대기를 달면 어느 정도는 해결이 되는 것처럼 보입니다. 정말 그렇게 보입니다. 그렇지만 폭발이 빨라집니다.

10일 째 출근 중인 당신, 미안하지만 이거 이번주까지 해줘야 하는데 어떻게 이번 주말에도 안될까? (응, 살려줘)


(이미지: 드라마 로키의 확대기 연결하려다 실패하는 빅터)

해결책 3: 일정을 잘 모아서 잘펴서 관리하자

해결에 실패한 우리 팀은 대체 왜 이런 일이 발생하고 있는지를 찾게 됩니다. 우리 팀이 지금 이렇게 일이 마구잡이로 들어와서 서로가 서로를 고문하고 있는데, 제일 위에서 일을 이렇게 넣는 분은 뭘 하고 계신걸까?


(이미지: 드라마 로키의 남아있는 자 벽화)

역시 대화가 가장 중요합니다. 대체 왜 이런 일이 발생하는지 그 원인을 대화로 잘 풀면 해결책이 빠르게 나옵니다.

현재 팀원들이 언제 어떤 일을 하고 있는지 정확히 일정 가시화가 안되서, 이 일이 왜 이때까지 못 끝내는지 왜 못하는지 알 수 없다.

예를 들어서, 프론트엔드 팀에서 현재 A, B, C를 나눠서 하고 있었습니다.(프로덕트 팀 내에서는 지라를 사용하고 있으니 당연히 이걸로 일정 파악이 잘 될 것이라고 생각했습니다.) 그런데 이제 새로운 일 D를 받아왔습니다. 받았으니 해야 일정 조율을 해야 하는데, 이걸 언제까지 할 수 있을지 위쪽에서 조율이 안되는 일이 발생한 것입니다.

이번 스프린트 때 A, B, C를 한꺼번에 하고 있으니 당연히 못한다고 하거나 일정 조율을 해서 지금 하고 있는 일 중 일부의 일정을 조금 미루거나 해야 하는데 PM분들도 과부화가 걸려서 파악이 안되고 있었습니다.

이것 또한 당연한 일이었습니다. 프론트엔드 팀에서 A, B, C, 백엔드 팀에서 B, C, D, 블록체인 팀에서 B, C, D, E 앱에서 F, G 이런 식으로 일을 하고 있다면 PM분들도 결국 A, B, C, D, E, F, G에 대한 일정 관리도 하고 있어야 하기 때문입니다. 개발 팀이 뚜들겨 맞을 때 PM, PD도 함께 뚜들겨 맞으며 영문을 모른 채 서로의 멱살을 잡았습니다. (😭)

문제상황 요약

  • 팀 내에 한꺼번에 진행되는 에픽이 많음
  • 한 팀원이 이 에픽에의 작업도 하고 있고, 다른 것도 하고 있음
  • 사실상 개개인의 일정 가시화는 안되어있고 에픽 단위로만 되어있음
  • 지라를 통해 작성되는 작업이 각자 "자기의 언어로 작성되어 같은 페이지에 없다면 알기 어려움"
  • 지라의 신이 없어서 모두가 한눈에 일정을 알아보기 어려움


(이미지: 드라마 로키의 시간선 관리하러 떠나는 로키)

😈로키: "ㅎㅎ큰일났넹...ㅎㅎㅎㅎㅎ"

물론, 팀이 당장 소화할 수 있는 만큼만 일이 발생한다면 가장 좋겠지만 그것은 불가능한 일이었고, 이 상황에서 저희는 조금이라도 팀원들의 숨통을 틔워주고 싶었습니다.

해결! 해결?


(이미지: 드라마 로키의 실비)

🌳🌳: "우리는 지라를 쓸 자격도 없어요. 노션 한 페이지에다가 스프린트 별로 일정 가시화 하는거 만들어서 주별로 우리가 뭘하고 있는지 정확히 작성할까요?"
🤖: "좋아요, 제가 문서 파고, 템플릿 만들어서 공유할게요!"

기존에 팀에서는 지라를 사용하고 있었습니다. 큰 단위는 에픽으로 시작일 종료일을 관리했고, 그 내부에 스토리, 스토리 하위에 작업으로 관리되었습니다. 이렇게 하면 당연히 우리가 뭐 때문에 이렇게 바쁜지, 현재 어떤 일을 하고 있는지, 이 새로운 일을 하려면 어떤게 미뤄질 가능성이 있는지 당연히 알거라고 생각했습니다. 그런데 다시 보니, 제가 봐도 어려울 것 같습니다.

그래서 노션에 문서를 "전체 스프린트" 라는 이름으로 만들었습니다. 그리고 그 문서에는 각 스프린트와 그 스프린트가 언제부터 언제까지인지 휴가자가 있는지, 각 팀원들은 그 스프린트 때 영업일 기준 얼마나 일할 수 있는지 등등을 상세하게 작성했습니다.

22 스프린트 (*월 **일 ~ *월 **일)
- 휴가 및 행사 정보
  - 꿀벌 A: *월 **일 연차
- 마일스톤
  - 주요 일정
  	- 일 B
    - 일 C
    - 일 D
  - 배포 일정
    - 정기 배포일
- 전체 목표
  - 웹 프론트엔드
  - 앱 프론트앤드
  - 블록체인
  - DevOps
  - 백엔드
- 22 스프린트 A (*월 **일 ~ *월 **일)
- 22 스프린트 B (*월 **일 ~ *월 **일)

이런 식으로 정말 지독하게 우리 스스로를 일정 가시화를 시켰습니다. 이렇게 문서를 만들고 나니, 프로덕트 팀 내에서 서로에 대한 신뢰가 향상되었고 누가 이 스프린트에서 무엇을 하고 있는지를 모두가 알게 되었습니다.

솔직히 그 전에는 아침 데일리를 해도, 제가 그 일에 껴있지 않는다면 모르는 경우가 많았는데 이제는 모르기가 쉽지 않더라구요.


(이미지: 드라마 로키의 시간을 지키는 로키)

그리고 솔직히 이 문서를 전파하고 쓰기를 독려하고 모두가 약속을 지킬 때까지 고집하는 것도 쉽지 않았습니다. 한명이라도 약속과 다르게 "에이 이정도는 안써도 되지 않을까?" 하는 순간 와르르 무너지기 마련이거든요.

그래도 드라마 로키의 시간선은 로키가 외로이 지켰지만, 우리 팀의 시간선은 모두가 함께 지켰습니다.

이 문서의 사용 방법

그래서 이 일정 가시화 문서가 어떻게 사용되었을까요? 그래서 이걸 써서 얻은 것은 우리가 뭘하고 있는지 알게 되었다는 것 하나일까요? 아니었습니다. 이 문서의 쓰임은 스프린트를 뚫고 들어오는 새로운 일에서 효과를 보였습니다.

기존에는 팀원 B에게 갑작스러운 일 C를 요청해야 한다고 했을 때, 무작정 물어보는 경우가 많았습니다.

🐝: 이거 이번주까지 해야 합니다! 😭
🤖: 저 지금 이번 스프린트까지 A, B, C, D 하고 있어서 그것까지 못하는데...꼭...해야 해요?
🐝: 안될까요? 무슨 일 때문에 안되는걸까요? (팀에 너무 많은 일들이 있어서 파악 안되서 진짜 궁금해서 물어봄)
🤖: (그 무슨 일이 너무 많아서 안되는건데 왜 모르지)...해볼게요......

이렇게 무작정 일을 받으면 일이 터질 가능성이 커집니다. 그리고 이미 팀원에게까지 도달했다는 것은 위쪽 어디선가에선 이미 일정이 픽스가 되었을 가능성이 큽니다. 큰 일의 일정은 앞에서 조율되어야 합니다.

그래서 이제 저 문서를 활용할 때 입니다. 개발팀의 리더들과 PM분들은 매 스프린트 시작 전 저 문서를 가지고 미팅을 합니다. 현재 스프린트는 어떻게 진행되고 있고, 다음 스프린트에서는 어떤 일을 할까 결정합니다. 다음 스프린트에서 중요한 일정이 어떤 것이 있고 어떤 기능이 출시되어야 하며 어떤 프로젝트가 오픈되는지 등등에 대해서 논의합니다.

이렇게 스프린트 시작 전에 확실하게 합의를 보고, 개발팀 리더들은 각 파트의 전체 목표를 작성합니다. 그리고 팀원분들이 스프린트를 A, B 로 나눠서 앞 일정에는 어떤 일을 하고 B에서는 어떤 것을 할지 세세하게 작성합니다. 그리고 스프린트가 시작됩니다.

스프린트가 시작되고 나서는, 끼어드는 일에서 대해서는 팀원분들과 PM분들이 문서를 통해 댓글로 직접 소통합니다.

🐝: A를 이번 주까지 급하게 해야 되는 일정이 생겼는데, 제가 확인해보니 지금 하고 계신 B의 일정을 조율할 수 있을 것 같더라구요! 혹시 그렇게 한다면, A를 이번 주까지 할 수 있을까요?
🤖: 네 알겠습니다

일정 가시화가 된 이후로는 조율이 매우 간단해집니다. 물론, 이렇게 잘 펴놔도 우선순위 조정이 어렵게 비등비등한 일이 들어온다면 그때는 어쩔 수 없이 추가 업무가 발생할 수도 있습니다. 그래도 빈도수가 확 줄고, 마음부터 달라집니다.


(이미지: 드라마 로키의 미스 미닛)

그래서 이 신성한 시간선 안에 존재하는 우리 개발자들은 모두 행복하게 살았을까요?

그건 저도 잘 모르겠습니다. (😉)

이런 경험을 해본 저와 커피챗 어떠신가요? ☕️

profile
요즘 보기 드문, 자세가 올바른 프론트엔드 개발자

0개의 댓글