불확실성과 화해하는 프로젝트 추정과 계획, "4장: 스토리 점수를 이용한 규모 추정"을 정리해본다.
스토리 점수는 상대적이다
스토리 점수: 사용자 스토리나, 기능, 작업의 규모를 표현하기 위해 사용하는 단위
- 값의 상대성에 의미가 있다.
- 방식
- 작업의 규모를 판단할 때, 가장 간단할 것이라 예상되는 스토리를 1점이라 두고 책정
- 중간 정도 크기로 예상되는 스토리를 중간 값에 할당
속도
속도: 이터레이션 동안 구현을 끝낸 스토리들의 점수를 전부 합한 값
- 사실 위의 스토리 점수는 명확하기보다는 모호한 개념이다. 얼추 추정한 것에 불과하기 때문이다.
- 그럼에도 이 스토리 점수는 사용될 여지가 있다. 바로 속도에 대한 측정을 할 때 사용된다.
- 특정 이터레이션에 5점 스토리를 3개 끝냈다면, 이 팀의 속도는 15이다.
- 그렇다면, 앞으로 계획된 스토리를 다음 이터레이션에 몇개 끝냈을 수 있을지에 대한 추정이 가능해진다.
- 뿐만 아니라, 모든 기능에 대한 스토리 점수가 나왔다면, 이 점수를 모두 더한 것이 프로젝트의 규모가 된다.
- 속도를 알고 있다면 몇번의 이터레이션이 필요할지도 대략적으로 계산할 수 있다.
- 이를 기반으로 기간을 산정할 수 있고, 결과적으로 일정까지 나오게 된다.
- 애자일적 추정/계획 과정에서는 규모는 추정하나 기간은 이끌어낸다는 원칙을 기억해야 한다.
추정치의 오류는 속도로 보정한다
- 이터레이션을 돌면서, 팀이 가진 속도는 점점 분명해진다.
- 그렇기에, 잘못잡은 계획이 올바르게 고쳐진다.
- 200스토리 포인트, 이터레이션 당 25 스토리포인트 구현이라 생각했지만, 20밖에 못한다는 사실을 알았다.
- 8번의 이터레이션은 곧 10번으로 늘어나야 한다.
- 특정 집의 페인트를 칠해야 한다고 하자.
- 침실에 5라는 스토리포인트를 주고, 약 넓이가 두배 차이나는 안방에는 10점을 주었다.
- 해당 평면도에 정확한 방의 크기가 주어지지 않았다고 이 스토리 포인트가 쓸모 없어지는 것은 아니다.
- 실제로 작업에 들어갔다. 막상 침실에 들어가니 생각했던 것보다 방이 두배나 컸다.
- 그럼에도 불구하고 스토리 포인트는 여전히 유용하다. 상대적인 값으로 책정했기 때문이다.
- 즉, 스토리 점수로 추정할 경우 노력(스토리 포인트 점수)을 추정하는 것과 기간(이터레이션을 통한 횟수)을 추정하는 것을 별개의 일로 만들 수 있다.
- 이렇게 되면, 프로젝트의 소요기간은 규모를 기반으로 계산하기만 하면 되는 것으로 바뀐다.
요약
- 스토리 점수는 사용자 스토리 규모를 상대적으로 측정하는 단위이다. 이 모두를 더하면 수행될 일에 대한 총 규모에 대한 추정치를 파악할 수 있다.
- 속도는 이터레이션 동안 팀이 한 일의 진도를 측정하는 단위다.
- 프로젝트의 기간은 추정이 아니라 스토리 점수의 총 합을 팀의 속도로 나누어 산정한다.
- 일의 규모를 기반으로 일정을 산정하고, 이를 이터레이션 마다 보정한다는 점에서 좀더 현실적인 계획 방법이라 생각했다.
토론거리
- 내 프로젝트의 기능들에는 몇 점의 스토리 점수를 줄 수 있을까?
- 스토리 포인트 추정치의 범위는 어느정도가 되어야 하는가? 최대값/최소값 은 어느정도의 숫자가 적당할까? 5, 10, 100?
Reference