스크럼 팀을 위한 벨로시티의 정확한 의미
by Mike Cohn
본문(Know Exactly What Velocity Means to Your Scrum Team)은 본래 Mike Cohn의 월간 뉴스레터에 실렸던 글입니다. 만약 이 글이 마음에 든다면, 이곳에서 메일링에 가입해주세요. 블로그에 포스팅 되기 전에 글을 전달 받을 수 있습니다.
비공식적으로 벨로시티에 대해 이야기 할 때, 나는 단순히 팀이 얼마나 빨리 움직이는지에 대한 척도로 정의합니다. 대부분의 경우에 이 정의는 잘 적용 되지만, 벨로시티를 어떻게 계산하는지에 대한 미묘한 차이에 따라 혼란이 생깁니다. 이 혼란은 벨로시티를 정의하는 둘 이상의 명확한 방법이 있기 때문에 발생합니다. 그들이 무엇인지 살펴 봅시다.
- 벨로시티는 팀이 한 스프린트에 얼마나 많은 기능을 제공 할 수 있는지에 대한 척도입니다.
- 벨로시티는 팀이 한 스프린트에 아이디어들을 새로운 기능으로 만들어 낼 수 있는 능력에 대한 척도입니다.
이들은 비슷하게 들릴 지 모르지만, 미묘한 차이가 있습니다. 예를 들면, 당신이 강에서 수영을 하고 있다고 가정합시다. 한 시간 후, 당신이 얼마나 이동했는지 측정했고, 시작 지점으로부터 2km 떨어져있었습니다. 애자일적인 측면에서 당신의 속도는 시간당, 혹은 수영의 스프린트가 한시간이라고 가정 할 경우 스프린트 당 2km라고 말할 수 있습니다.
그러나 강물이 당신이 수영하는 방향과 반대로 시속 1km로 흐르고 있었다면 어떨까요? 이 경우, 당신은 실제로 3km를 수영했습니다. 강 밖에서 보면 물리적으로 2km만을 이동했지만, 당신이 2km만큼 수영하는 동안 1km 뒤로 밀려났기 때문입니다.
그럼 이 경우에 벨로시티는 2일까요 3일까요? 우리가 첫번째 정의를 사용한다면 스프린트당 벨로시티는 2입니다. 이 수영하는 사람은 2km만을 이동했습니다.
만약 우리가 두번째 정의를 사용한다면 3입니다. 당신이 흐름이 없는 호수에서 수영을 했다면 스프린트당 3km를 이동할 수 있었기 때문입니다.
이 차이는 애자일 프로젝트에서 스프린트 동안 버그 수정과 리팩토링에 비용을 어떻게 할당하는지에 대한 문제에 빗대어 생각해볼 수 있습니다. 첫번째 정의를 사용하는 팀이라면 버그 수정과 리팩토링에 따로 비용을 할당하지 않습니다. 새로운 기능을 개발하지 않는다면 비용이 할당되지 않습니다.
반면, 두번째 정의를 사용하는 팀은 버그 수정과 리팩토링에 위해 비용을 할당합니다. 그들의 논리는 버그 수정과 리팩토링이 Product Owner(PO)가 우선시하는 작업을 제외한 다른 새로운 기능을 개발하는 것과 같이 생각할 수 있다는 것입니다.
많은 팀들의 경우 두 정의는 같은 결과를 낼 것입니다. 하지만 큰 버그 수정이나 많은 량의 리팩토링을 수행하면서 벨로시티 비용을 할당하지 않는 팀들에게서는 큰 차이가 발생합니다.
이 두 가지 정의는 그 차이가 미묘하기 때문에 어느 쪽을 선택해도 좋습니다. 당신은 그 중에서 당신이 추정을 통해 배우길 바라고 앞으로 기대하는 것이 따라 선택해야 합니다.
당신이 변화를 바라지 않는다면, 팀은 버그 수정과 리팩토링 하는데 지금과 같은 시간을 사용할 것입니다. 그럼 벨로시티는 앞으로 얼마나 진행할 수 있는지에 대한 올바른 결과를 줄 것입니다.
하지만 당신이 앞으로 무언가 바뀌길 원한다면, 대규모 리팩토링과 버그 수정은 곧 없어질 것이고, 당신은 두번째 정의를 선택하고 싶을 것입니다. 그리고 그 활동들에 별도의 비용을 할당 할 것입니다.
가장 중요한 것은 Product Owner와 Scrum Master를 포함한 팀의 모든 구성원들이 ‘벨로시티’ 라는 용어를 정확히 어떤 의미로 사용할 것인지 명확히 하는 것입니다. 명확한 정의는 벨로시티 측정해야 할 때마다 돌아오는 질문들에게 해답을 줄 수 있습니다.
###저자에 관하여
Mike Cohn은 애자일 컨설팅 업체 Mountain Goat Software의 설립자입니다. 그는 사용자 스토리, 불확실성과 화해하는 프로젝트 추정과 계획, 경험과 사례로 풀어낸 성공하는 애자일의 저자입니다. Mike는 애자일 연합의 공동 설립자이며, 또한 스크럼 연합의 공동 설립자이자 현 이사회의 구성원입니다. 메일(info@mountaingoatsoftware.com) 또는 Google+을 통해 Mike에게 연락 할 수 있습니다.