Scrum과 SAFe 맥락에서 각 팀원의 개인 평점을 사용하는 실천 사례
이 글에서는 우리가 실제로 SAFe 프레임워크로 작업하는 과정에서 Scrum 내 각 팀원의 개인 평점을 어떻게 계산하고 적용하는지 이야기하려 합니다. 개인 블로그.
이미지를 불러올 수 없습니다.이 글에서는 우리가 실제로 Scrum에서 각 팀원의 개인 평점을 어떻게 적용하는지, SAFe
아마 많은 분이 동의하실 겁니다. 특히 러시아에서는 사람들이 자신의 역량 범위 내에서 최종 제품을 전달하거나 새로운 역량을 습득하는 방식으로 일을 적게 하고 돈은 더 많이 받으려는 경향이 꽤 자주 있습니다. 회사 규모가 커질수록 이런 가능성도 비례해서 커지는 것처럼 보입니다. 보통 이 문제는 올바른 동기부여 시스템을 구축하려 애쓰는 여러 HR 담당자들이 다룹니다. OKR 등도 여기에 포함됩니다. 전반적으로 이 모든 것은 기업 내 각자의 업무 부하 균형과 모든 이해관계자 그룹/팀의 편안함을 목표로 하는 것처럼 보입니다. 이 글에서는 제가 직접 고안하고 팀에서 적용하고 있는 지표를 공유하겠습니다. 제 생각에 이 지표는 특정 팀 내 업무 부하 균형에 대한 HR과 OKR의 노력을 보완하거나, 반대로 불균형을 확인할 수 있게 해줍니다. 또한 팀의 팀으로 확장하는 것도 충분히 가능하며, 특별한 문제는 없다고 봅니다.
따라서 Scrum Master로서 저는 팀 내 업무 부하가 균형 잡히지 않았다는 점, 누군가는 두 사람 몫을 하고 누군가는 아무것도 하지 않는다는 점(이는 극단적인 형태이며 물론 심각한 문제이지만, 이 지표는 극단적인 형태만 보여주는 것은 아닙니다)이 때때로 꽤 명백하다고 느낍니다. 저에게도 그런 상황이 있었고, 이 문제를 선명하게 드러낼 수 있는 지표가 무엇일지 고민했습니다. 그 결과 각 팀원의 개인 평점으로 이어졌습니다.
지표 자체를 설명하기 전에, 제 생각에 매우 중요한 한 가지 아이디어를 언급하고 싶습니다. 현재 저는 그것을 절대적으로 확신합니다.
지표는 여러분이 이미 얻고 있는 데이터를 기반으로 구축되어야 합니다. 어떤 지표를 얻기 위해 팀이 체계적으로 더 많은 시간을 쓰거나 가치 전달 프로세스를 그 지표에 맞춰 조정하도록 강요해서는 안 됩니다. 이에 대해서는 다음 글 중 하나에서 더 자세히 이야기하려고 합니다.
자, 구체적인 사례를 들어보겠습니다. 물론 우리는 User Story를 DOR(Definition Of Ready)부터 DOD(Definition Of Done)까지 상태별로 이동시키기 위해 보드를 사용합니다. 이 보드는 가상 보드입니다(즉, 인터넷 링크에 위치해 있습니다). 우리 팀은 분산 팀이고 스탠드업은 기업용 스카이프를 통해 보드를 중계하면서 진행됩니다.
팀원은 자신을 User Story의 참여자로 지정해 두는 것이 편리합니다. 그래야 자신으로 필터링할 때 현재 자신이 참여하고 있는 스토리만 빠르게 남길 수 있기 때문입니다(대부분 스탠드업에서 이 필터를 사용합니다).
여기서 한 가지 설명을 덧붙이고 싶습니다. 이것은 해당 팀원이 다른 스토리에 참여할 수 없다는 뜻이 아닙니다(예를 들어 스탠드업에서 다른 팀원이 도움을 요청하면 얼마든지 새 스토리의 참여자가 될 수 있고, 반대로 자신의 참여가 필요 없다고 느끼면 어떤 스토리의 참여자에서 빠질 수도 있습니다).
따라서 각 팀원의 평점을 계산하려면 각 팀원이 몇 SP에 영향을 미치는지 살펴봐야 합니다. 우리의 경우 아르카디는 29 SP(스토리 1, 2, 5, 6)에 영향을 미치고, 타티야나는 33 SP(모든 스토리에 참여)에, 바실리는 23 SP(스토리 1, 3, 5, 6)에 영향을 미칩니다.
종료(DOD 완료)된 것은 아르카디가 29 SP 중 5 SP, 타티야나가 32 SP 중 6 SP, 바실리가 23 SP 중 5 SP입니다. 정렬 문제로 꽤 오래 고민한 끝에 두 팀원을 비교하는 다음과 같은 공식에 도달했습니다 (team[i] - 한 팀원, team[j] - 다른 팀원):

이 정렬에 따르면 팀원들의 현재 평점은 다음과 같습니다.
- 1위. 바실리 (23 중 5 완료)
- 2위. 아르카디 (29 중 5 완료)
- 3위. 타티야나 (32 중 6 완료)
이제 스프린트에 대한 모든 데이터를 생성해 봅시다. 스프린트가 5영업일 동안 지속된다고 가정합니다.
- 1일차

1위: 바실리 (23 중 0 소진)
2위: 아르카디 (29 중 0 소진)
3위: 타티야나 (32 중 0 소진) - 2일차

1위: 바실리 (23 중 0 소진) 동향(1->1)
2위: 아르카디 (29 중 0 소진) 동향(2->2)
3위: 타티야나 (32 중 0 소진) 동향(3->3) - 3일차

1위: 바실리 (23개 중 5개 소진) 추세(1->1->1)
2위: 아르카디 (29개 중 5개 소진) 추세(2->2->2)
3위: 타티야나 (32개 중 5개 소진) 추세(3->3->3) - 4일차

1위: 바실리 (23개 중 8개 소진) 추세(1->1->1->1)
2위: 아르카디 (29개 중 8개 소진) 추세(2->2->2->2)
3위: 타티야나 (32개 중 9개 소진) 추세(3->3->3->3) - 5일차

1위: 바실리 (23개 중 23개 소진) 추세(1->1->1->1->1)
2위: 타티야나 (32개 중 24개 소진) 추세(3->3->3->3->2)
3위: 아르카디 (29개 중 21개 소진) 추세(2->2->2->2->3)
따라서 이 지표를 사용하면 팀원 각자의 개인 통계를 누적하고 그가 올바른 결론을 내리도록 도울 수 있습니다. 예를 들어, 여기서 우리는 바실리가 처음부터 자신의 시간을 매우 합리적으로 계획했음을 알 수 있습니다 (즉, 스프린트 계획 시 팀과 합의한 작업량을 실제로 수행했습니다.) 그러나 동시에, 그가 다른 팀원들을 어떻게든 도울 수 있었을까요? 아마 아닐 수도 있지만, 회고 전에 이 문제를 고민해 볼 가치가 있습니다.
타티야나와 아르카디의 문제는 더 심각합니다. 분명히 처음부터 스프린트 계획 시 그들은 모든 스토리에 참여하기로 팀과 합의했지만 실제로는 의무를 이행하지 못했습니다. 그 원인 역시 회고 전에 고민해 볼 가치가 있습니다. 자신에게 할당하는 계획을 줄이거나, 계획한 모든 것을 해내기 위해 역량을 확장하거나, 다른 해결책도 가능할 것입니다.
따라서 우리는 전체 팀에 대해서만, 그리고 하나의 스프린트에 대해서만이 아니라 DEV TEAM의 특정 참여자들에 대해서도 전체 기간에 걸쳐 통계를 누적하고 이 정보를 팀의 지속적인 개선에 활용할 수 있습니다.
끝으로, 이 지표를 팀에서 사용하기 전에 팀 대부분이 이미 충분히 높은 신뢰 수준을 갖추고 있어야 한다는 점에 특히 주목하고 싶습니다. 또한 초과근무가 없고 편안하게 일하는 것이 우선이라는 점을 크게 강조할 것을 권장합니다.
우리는 1위를 차지하기 위해 초과근무하도록 동기를 부여하는 것이 아니라 올바른 결과 예측에 초점을 맞춥니다. 궁극적으로 이 지표는 팀원 각자의 계획 능력 향상을 목표로 합니다.
