Culture

카드놀이 하듯 개발 리소스 예측하기 - 스토리 포인트

[숨고 테크/프로덕트 팀] 스프린트 Estimation 하는 법

2019-01-29 숨고 Soomgo

개발 스토리란?

숨고의 애자일 프로세스는 1주일 동안 스프린트를 통해 진행하고 있습니다. 그리고 업무는 '스토리'로 정리하고 있습니다. 서비스 제공자 혹은 개발자 입장으로 정리하는 것이 아닌 고객이 이해할 수 있는 바로 정리합니다. 프로덕트 개발의 본질은 이용자 경험을 위해서이기 때문입니다.

image

또한, 스토리마다 포인트가 있습니다. 이 포인트는 예상 업무 리소스의 크기를 나타낸 것이죠. 스프린트를 시작하기 전 처리할 스토리를 선정하고, 스토리마다 예상 리소스를 매겨 포인트를 예측합니다. 지난 스프린트에는 41점을 진행했네요. 숨고에서는 보통 40점 내외로 진행하고 있어요.

포인트는 절댓값으로 정하지 않습니다. 예를 들어, '1포인트는 1일 걸리는 업무' 이런 식이 아닌 다른 업무들과 비교했을 때 상대적으로 얼마나 필요할지를 예측하여 매기고 있습니다. 절댓값이 아닌 상대값이라는 점이 애자일 프로세스의 유동성을 유지하기 위해 아주 중요합니다.

보통 계획된 포인트는 40 내외입니다
보통 계획된 포인트는 40 내외입니다

성공적으로 스프린트를 완수하기 위해 가장 중요한 단계는 예측(Estimation)입니다. 스토리마다 적절한 포인트를 매겨는 것이 스프린트 완수 유무를 결정짓기 때문입니다. 이에 숨고는 스토리 포인트를 더욱 정확하게 예측하기 위해 재밌는 예측방법을 도입하여 실행하고 있습니다.

카드놀이? No! 다 같이 예측하는 시간

image

숨고의 Estimation Meeting 과정

  1. 각 챕터별 담당자 1명이 대표로 참가한다.(프론트엔드, 백엔드, 모바일, UX/UI 디자이너) 이때 대표는 임의나 자원해서 고른다. 다른 팀원은 참관할 수 있다.
  2. PO(Product Owner)는 이번 스프린트에 진행할 스토리를 정리하고, 턴마다 설명한다.
  3. 스토리 한 개가 나올 때마다 예상하는 포인트 숫자가 적힌 카드를 낸다.
  4. 카드 값은 ?, 1, 2, 3, 5, 8, 13, 21, 40으로 구성되어 있다.
  5. 총 2번에 걸쳐서 카드를 낸다. 스토리 소개 후 1차로 낼 때는 아무 말하지 않고 바로 낸다.
  6. 각자가 낸 포인트를 확인하고, 왜 이 숫자인지 이야기 나눈다.
  7. 그리고 다시 해당 스토리에 맞는 포인트 크기가 적힌 숫자 카드를 낸다.
  8. 낸 카드 값에 따라 해당 스토리의 포인트를 측정한다.

숨고의 에스티메이션(Estimation) 미팅에서 중요한 점은 3가지가 있습니다. 첫 번째는 처음 카드를 내기 전 해당 스토리에 관해 이야기하지 않는다는 점입니다. 각자 생각하는 값을 공유하기도 전에 해당 스토리에 대한 이야기를 논의하면 회의 시간도 길어지고 정확한 포인트를 예측하기 어렵기 때문입니다. 스토리를 확인하고 일단 자기가 생각하는 값을 냅니다. 모르면 물음표를 낼 수도 있습니다.

두 번째는 스토리 포인트 결정 방식입니다. 카드값은 ?부터 1, 2, 3, 5, 8, 13, 21, 40으로 구성되어 있습니다. 해당 스토리에 최종 결과 한 단계 차이로 결과가 나오면 큰 값을 따릅니다. 예를 들어, 어느 스토리에 대한 포인트로 3, 3, 3, 5가 나왔다고 한다면 해당 스토리의 포인트는 5로 결정됩니다.

하지만 두 번째 턴에도 카드 값의 차이가 두 단계 이상 차이가 나는 경우가 있습니다. 예를 들어 3, 3, 5, 8이 나올 수도 있죠. 이때는 가장 큰 값을 낸 사람과 가장 작은 값을 낸 사람들이 의견을 말할 수 있습니다. 왜 이 포인트가 맞는지를 말이죠. 그런 다음 다시 한 단계 차이까지 좁히도록 카드를 새로 내고 있습니다.

마지막으로 물음표 카드의 존재입니다. '?'라고 적힌 카드는 담당자가 해당 스토리에 소요될 포인트의 크기를 예측하지 못할 때 냅니다. 물음표 카드를 낸 사람은 무조건 발언권이 있어 할 말이 있을 때 내기도 합니다. 애자일에 참가하는 모든 구성원이 이해할 수 있도록 배려한 카드죠.

카드로 Estimation 하면 뭐가 다를까?

image

사실 스토리마다 챕터별 예상되는 리소스가 다를 수 있습니다. 프론트엔드가 해야 할 업무가 크고, 백엔드에서는 쉽게 처리할 수도 있습니다. 하지만 모두가 동의하고, 이해한 포인트로 매기는 과정이 중요합니다. 아무리 백엔드 혼자 빨리 완성했다고 하지만, 프론트엔드나 다른 단계에서 늦어진다면 해당 스토리의 구현은 늦어질 수밖에 없죠.

숨고 Estimation 미팅의 장점

  • 각 스토리에 대한 팀원들의 이해도를 높일 수 있다.
  • 예상되는 리소스에 대해 서로 파악할 수 있다.
  • 자신이 담당하지 않을 스토리라도 함께 리소스를 예측하면서 다른 팀원의 업무 속도와 방식을 이해할 수 있다.
  • 정해진 카드 값과 룰로 효율적으로 커뮤니케이션을 할 수 있다.

한 개의 스토리를 빠르고 효율적으로 처리하기 위한 애자일 프로세스의 본래 목적을 달성하기 위한 미팅이라고 볼 수 있습니다. 동일 스토리에 대해 각 담당자의 이야기를 들어보고 서로가 어느 정도의 시간과 노동이 투여될지 파악할 수 있습니다. 함께 스프린트를 진행하는 운명 공동체인만큼 2인 3각처럼 같이 맞춰나가야 스토리 완성이 가능합니다. 큰 그림을 함께 살펴보는 시간이라고 할 수 있습니다.

서로의 직무에 대해 배우고, 함께 성장할 기회를 제공하는 애자일 프로세스를 최대한 활용하고자 하는 숨고 Tech/Product 팀의 일하는 방식이었습니다. 첫 글인 고객과 팀원을 위한 애자일 스크럼 개발 프로세스에서 밝혔듯 애자일 방법론은 종류도 다양하고, 적용하는 기업마다 조금씩 다릅니다. 정해진 룰이 아닌 방향이라고 볼 수 있죠. 더 빠르고 효율적으로 그리고 유동적으로 진행하는 개발 프로세스를 위해서 말이죠.

숨고 Soomgo People
숨고는 고수와 고객 간의 연결을 넘어, 유의미한 삶의 변화를 만들어 갑니다