플래닝 포커(Planning Poker)로 공수 산정하기
회사에서 플래닝 포커에 대한 내용을 공유한 적이 있었는데, 기대했던 것 보다 개발자들의 관심이 높았다. 아마도 지루하고 피곤한 일정 산출 작업을 포커를 통해 한다는 것이 나름 신선했었나 보다.
플래닝 포커란 무엇인가. 간단히 요약하면, 소프트웨어 개발에서 공수 산정을 위한 방법 중 하나로 그룹의 구성원이 숫자로 된 카드를 테이블에 엎어 놓고 동시에 카드를 뒤집어 공수를 산정하는 방식으로 이루어 진다. 제임스 그레닝(James Grenning)에 의해 만들어지고 애자일 개발론에서 사용하고 있다.
피보나치 숫자로 이루어진 카드로 공수가 커질 수록 불확실성이 커진다는 의미를 가진다.
그럼 공수 산정을 왜 이런 방식으로 할까. 공수는 각 개인의 경험과 능력에 따라 모두 다를 수 있다. 하지만 막상 일정을 산출할 때면 주변의 시선과 프로젝트 상황, 리더의 요구등에 따라 객관적인 일정 산출이 어려울 때가 있다. 그러한 영향들을 최소화하고 합리적인 토론을 통해 정확한 일정 산출을 하는 것이 플래닝 포커의 목적이다.
플래닝 포커를 진행하는 데 형식이 반드시 중요한 것은 아니다. 하지만 아래와 같은 틀을 가지고 각 프로젝트에 따라 유연하게 적용하면 좋을 것 같다.
- 팀 구성원이 작업 안건에 대해 토론을 하고, 작업을 세분화하거나 애매한 사항에 대해 명확하게 이해한다.
- 진행자는 공수 산정을 위한 안건을 이야기하고, 각 구성원들은 테이블 위에 자신이 생각한 공수의 카드를 뒤집어서 제시한다.
- 동시에 카드를 뒤집고, 가장 높은 숫자와 가장 낮은 숫자를 제시한 구성원이 서로 토론하는 시간을 갖는다.
- 각자의 생각을 확인한 후, 합의에 도달하면 그 날짜를 공수로 반영한다.
- 타이머를 사용할 수도 있는데, 지정한 시간이 소요됐는데도 토론이 끝나지 않을 경우 다시 포커를 한다.
위의 그림 같은 상황을 예로 들어 보자.
- 2를 낸 사람과 5를 낸 사람이 각자 공수 산정 이유를 말하고 토론을 한다.
- 2를 낸 사람: “‘이런’ UI만 조금 작업을 해주면 될 것 같습니다”
- 5를 낸 사람: “‘이런’ UI를 구성하기 위해서는 ‘저런’ 시스템이 필요한데, 시스템 개발을 하고 UI를 개발하기 위해서는 2일로는 부족합니다.”
- 2를 낸 사람: “‘저런’ 시스템은 없지만 ‘요런’ 시스템이 있어서 이걸 조금만 고치면 쓸 수 있기 때문에 처음부터 다시 개발할 필요는 없을 것 같습니다.”
- 5를 낸 사람: “틀린 말은 아니지만, 시스템을 고쳐서 쓸 수 있는지 확인이 필요합니다.”
- 2를 낸 사람: “얘기를 하다보니 2일은 좀 부족할 수 있다는 생각이 드네요.”
- 5를 낸 사람: “저도 생각해보니 5일은 좀 많을 수 있겠네요. 3일로 하는게 어떨까요?”
- 2를 낸 사람: “네, 3일로 하시죠.”
카드 중에 물음표와 커피가 있는데, 물음표는 정말 모르겠다는 생각이 들 때 낼 수 있다. 하지만 물음표 카드가 많이 제시된다면, 작업 안건에 대해 구성원들의 이해가 부족하다는 의미로도 볼 수 있으므로, 진행자는 안건에 대해 다시 설명하고 구성원들의 이해도를 높이는 과정을 거칠 필요가 있다. 커피 카드는 휴식을 요청하는 카드이다. 공수 산정은 여러 토론 과정을 거치며 긴 시간이 소요되고, 구성원들의 에너지는 많이 소비된다. 이 때 토론에 참여한 누군가가 커피 카드를 제시하면, 휴식 시간을 통해 생각을 정리하는 시간을 갖도록 한다.