[실행하기-팀빌딩] 액션#3: 잡플래닛 백엔드팀이 일하는 방식
이 글은 잡플래닛 백엔드팀이 어떻게 스크럼문화를 만들어나가고 있는지 에 대한 내용을 다룹니다.
스크럼에 대해 더 자세히 알고 싶으시다면 [실행하기-팀빌딩] 액션#2: 스크럼(Scrum)문화 의 글을 참고해주시기 바랍니다.
1. 스프린트 플래닝(Sprint Planning)
유저와 밀접하게 붙어있는 서비스를 운영하는 잡플래닛의 특성상, 무조건 ‘신규 서비스 개발’에 대해서만 몰입할 수 있는 상황은 아닙니다.
- 아무리 개발을 탄탄하게 잘 했다고 하더라도 시간이 지나면 지날수록 성능이 느려지기 때문에 서비스품질의 유지를 위한 대응 상황
- 예상하지 못한 사이드이펙트로 인해 버그와 맞서야 하는 긴박한 핫픽스 상황
- 린(Lean)하게 개발 산출물을 만들어나가야 하는 상황에서 예상치 못한 회의 요청으로 계획 되지 않은 시간을 활용해야 하는 상황
- 서비스를 사용하는 유저또한 고객이지만, 내부 고객인 유관부서에서 문의들어오는 서프라이즈건에 대해서도 대응을 해야 하는 상황
위와 같은 상황들이 언제든지 발생할 수 있기 때문에 백엔드팀은 어느정도의 플래닝 버퍼(Planning Buffer)를 두고 스크럼을 이끌어나가고 있습니다.
백엔드팀의 플래닝 규칙은 다음과 같습니다.
- 스프린트 싸이클은 2주 단위로 업데이트가 됩니다.
- 하루 워킹 시간 8시간중에 6시간 을 확정된 계획 시간으로 계획을 세웁니다.
- 스토리포인트는 본인의 개발 계획을 큰 단위로 묶지 않고, 모듈 단위로 쪼개서 산정합니다.
- 스토리포인트의 1포인트는 1시간을 뜻합니다.
- 스토리포인트는 짧은 작업(예를 들면 정기회의와 같은) 기준 1포인트를 시작으로, 2포인트 / 4포인트 / 8포인트 로 산정합니다. 이는 하루 기준의 업무속도를 측정하기 위한 용도이며, 만약 하루 안에 끝날 수 없는 작업의 경우 2일,3일,4일,5일을 뜻하는 16/24/32/40 포인트로 표현을 하도록 합니다.
- 즉, 최대한 하루 안에 끝낼 수 있는 테스크들의 집합으로 만드는 것을 지향하는 규칙으로 합니다.
- 새로운 스프린트가 시작되는 월요일(공휴일인 경우 그 다음날)에 백엔드팀은 위 규칙을 기본으로 각자 계획을 세우는 시간을 가지며, 만약 해당일에 연차계획으로 부재중인 팀원은 미리 작성을 마쳐놓는 것을 원칙으로 합니다.
- 자율출퇴근 근무형태(7시에서 10시사이)이기 때문에, 스프린트 플래닝은 10시30분에 완료짓고 11시에 실제 스프린트가 시작됩니다.
▶ 스프린트 플래닝 공지는 구글캘린더를 통해 노티가 갈 수 있도록 격주로 스케쥴링을 하고 있습니다.
▶ 스프린트 스토리포인트 산정은 휴무일을 제외 하고, “워킹데이 * 6시간” 을 권장 / “워킹데이 * 8시간”을 최대 시간으로 가이드합니다. 매일 2시간씩의 버퍼(buffer)는 업무 도중에 긴박하게 처리해야할 CS대응 및 계획되지 않은 스쿼드 회의에 대한 부분을 커버하기 위한 용도입니다.
▶ 스프린트 플래닝의 결과물 일부 입니다. 각 플래닝 테스크마다 에픽(대주제) 태그와 지정한 스토리포인트가 명시되어 있습니다. 팀원분들 모두 관심사가 다양해서 개성있는 프로필사진으로 채워져 있는 것 또한 흥미롭습니다
2. 데일리 스크럼(Daily Scrum)
잡플래닛은 재택근무와 사무실근무를 본인이 자유롭게 맞춰 진행할 수 있는 하이브리드 근무형태로 일을 하고 있습니다. 이러한 근무형태에서 데일리스크럼을 매일 얼굴 보면서 하기에는 제약사항이 많이 있습니다.
물론 사무실에 출근한 동료들이 회의실에서 구글밋을 공유하며 재택근무동료들과 공유를 할 수는 있지만, 저는 데일리스크럼만큼은 캐주얼함 을 강조하고 싶기 때문에 별도의 미팅은 하지 않습니다. (여기서 캐주얼함이란, 회의실에서 틀에 박힌 공유보다는 실리콘밸리에서의 씬과 같이 본인의 자리에서 매우 간단하게 일상을 공유하는 것을 말하는 것입니다.)
하이브리드 근무에서 서로가 업무의 시작과 끝을 공유하는 방법으로 체택한 것은 JIRA 와 SLACK 연동 이었습니다.
- 출근을 하면 팀 슬랙에 가벼운 인사로 본인이 출근 한 것을 알립니다.
- 금일 진행할 업무를 JIRA 스크럼보드의
할일(TODO)
에서진행중(DOING)
으로 카드를 이동합니다. (JIRA와 슬랙이 연동 되어 있어, 자동으로 해당 채널에 노티로 남겨집니다.) - 퇴근 시간에 맞춰 마무리 된 작업은 JIRA 스크럼보드의
진행중(DOING)
에서완료(DONE)
로 카드를 이동합니다. (이 부분 또한 JIRA와 슬랙이 연동 되어 있어, 자동으로 해당 채널에 노티로 남겨집니다.)- 해당 액션은 번다운차트의 기민한 변화를 체크하기 위해서, 퇴근시간이 아닌 본인이 계획한 업무가 마무리되는 순간 리얼타임으로 변경하는 것을 더 권장을 하고 있습니다만 강제는 아닙니다.
▶ 출근을 하면, 백엔드팀 슬랙채널에 출석체크를 합니다. 각자 편한 시간대에 분단위로 출근을 하는 부분과, 역시나 다들 개성있는 프로필 사진이 인상적입니다.
▶ 스크럼보드의 일부 화면입니다. 각자의 테스크를 신경 써서 관리를 하고 있습니다. ‘자율과 책임’의 밸런스가 잘 맞춰져 있어야 하는 개발 문화입니다.
▶ 스크럼보드의 테스크를 이동시키면 슬랙과 연동이 되어 해당 채널에 메시지가 공유됩니다. 팀원들은 모두 해당 메시지를 확인하면서 동료가 어떤 업무를 진행하고 있는지 인지 할 수 있습니다.
▶ 바쁜 현대사회인들을 위해, 깜빡했을수도 있을 스크럼공유를 알려주는 슬랙알림메시지도 10:00와 16:00에 팀채널에 노티를 해주고 있습니다.
3. 회고(Retrospective)
백엔드팀은 개개인의 업무몰입 을 위해 스프린트 과정중에 무분별한 회의는 지양하고 있습니다. 대신 2주 스프린트 기간중 하루일과의 절반을 몰아서 팀 회의와 스프린트회고를 하는 시간으로 정리하고 있습니다.
회고를 진행하면서 가장 중요한 부분은 투명성 입니다.
본인이 진행하지 못한 부분을 숨기지 않으며, 업무외에 어떠한 일들로 인해 어려움을 겪었는지 투명하게 회고를 통해서 이야기를 합니다. 팀장인 저 또한 현재 제가 고민하고 있는 사항에 대해서 투명하게 공유를 드리며 팀원분들의 많은 의견들을 수렴하여 더 좋은 방향성을 그릴 수 있도록 노력하고 있습니다.
회고에서 이루어지는 아젠다는 다음과 같습니다.
- 2주동안 진행 완료한 테스크(필요에 따라 화면시연을 통해 기능 공유를 디테일하게 하기도 합니다.)
- 진행하지 못한 테스크에 대한 원인 공유 및 다음 스프린트에 이어서 진행할 부분 언급
- 현재 고민 사항 혹은 업무에 걸림돌이 되는 환경 건의 사항 전달
올해부터 회고문화를 도입하면서 제일 좋다고 생각하는 점은, 동료간의 업무공유가 더 활발해졌으며 이 과정을 통해 잘못된 아키텍쳐방향이나 잘못된 협의사항에 대해서 즉각적으로 바로잡을수 있다는 점이 더욱더 탄탄한 백엔드 구조를 잡는데에 많은 도움을 주고 있습니다.
특히, 스쿼드 체제에서는 1인 개발이 주를 이루고 있어 자칫 잘못하다간 ‘외로운 개발을 하고 있다’는 생각에 팀원분들의 매너리즘이 생길수 있는데 이 부분을 공유와 토론문화로 커버하면서 조금이라도 힘이 되어줄수 있다고 생각합니다.
백엔드팀은 “지속적으로 성장할 수 있는 건강한 회고문화” 를 실행하고 있는 멋진 팀이라고 자랑스럽게 어필하고 싶습니다.
▶ 스프린트가 종료되는 날에, 팀미팅을 통해 공지사항을 전달하고 2주동안 대응했던 이슈사항들을 공유하는 문화를 만들어가고 있으며 회의의 마무리 아젠다로 ‘스프린트 회고’를 통해 본인이 진행했던 업무내용의 디테일한 전달 및 현재 겪고 있는 어려운상황에 대해 공유하며 해결책을 다같이 고민하는 시간을 가집니다.