📂 케이스 수집하기/프로덕트 수집

스크럼과 스프린트 개념 잡기

yuuuuuun 2022. 6. 30. 23:11

 어제는 애자일 제품 개발 방법론에 대해 배웠습니다. 그리고 오늘은 애자일 방법론에서 대표적으로 쓰이는 프레임워크, 스크럼(Scrum)의 개념을 잡고 넘어갑니다🔥 이 글의 대부분은 스크럼을 개발한 켄 슈와버(Ken Schwaber)와 제프 서덜랜드(Jeff Sutherland)의 스크럼 가이드를 참고합니다.

💡 이 글은 다음과 같이 진행됩니다.
1. 애자일하게 일하고 싶은 우리, 무엇을 해야할까?
2. 스크럼 팀은 어떻게 구성할까?
3. 스크럼 팀 내 프로덕트 오너의 역할은?
4. 스크럼은 어떤 프로세스로 이루어질까?

 스크럼(Scrum)이란 사람과 팀, 조직이 복잡한 문제에 적합한 솔루션을 활용해서 가치를 창출하도록 도와주는 경량 프레임워크다.

 애자일하게 일하고 싶은 우리, 무엇을 해야할까?

 어떤 한 기업이 애자일하게 일하고 싶어 합니다. 그런데 어떻게 일을 진행해야 할까요? 가이드라인이 필요한 이들은 '스크럼(Scrum)' 프레임워크를 활용하기로 합니다. 스크럼 프레임워크는 팀이 반복∙지속적인 개선에 집중할 수 있도록 가치, 역할, 지침의 청사진을 제공합니다. 스크럼은 '경험과 관찰을 기반으로 의사결정을 내리는 경험주의(Empiricism)'와 '낭비를 줄이고 본질에 집중하는 린 사고(Lean thinking)'를 기초로 합니다. 스크럼을 성공적으로 잘 활용하려면, 아래 보이는 다섯 가지의 가치를 잘 지켜야 합니다.

스크럼의 가치 (출처: Scrum.org)

  1. 스크럼 팀의 팀원들은 목표를 달성하고 서로 협력할 것을 약속(Commitment)한다.
  2. 팀원들은 목표를 최선으로 진행하기 위해 스프린트를 가장 우선으로 두고 집중(Focus)한다.
  3. 스크럼 팀과 이해당사자들은 일과 도전에 열린 마음(Openess)을 가져야 한다.
  4. 스크럼 팀원들은 팀원 개개인이 능력을 갖춘 독립적인 존재임을 서로 존중(Respect)해야 한다.
  5. 스크럼 팀은 힘든 문제를 해결할 때 올바른 일을 하는 용기(Courage)를 가져야 한다.

스크럼 팀은 어떻게 구성할까?

 우리는 애자일하게 일하고 싶고, 스크럼 프레임워크를 적용해서 작업을 진행하기로 했습니다. 그렇다면 이제 이를 함께할 팀을 구성하기로 합니다. 스크럼 조직의 기본이 되는 단위인 스크럼 팀은 적은 수의 인원으로 구성됩니다. 따라서 스크럼 팀은 한 명의 스크럼 마스터, 한 명의 프로덕트 오너, 그리고 개발자들로 구성합니다. 스크럼 팀에는 상하관계가 없고, 하나의 프로덕트 목표에 동시에 집중하는 전문가들로 구성됩니다. 스크럼 팀은 민첩할 수 있도록 작지만, 한 스프린트 내에 의미 있는 일을 완료할 수 있을 만큼 충분한 크기여야 합니다. 일반적으로 10 명 또는 그보다 적은 수의 인원으로 구성됩니다.

  • 스크럼 팀의 스크럼 마스터는 팀과 조직의 모든 구성원이 스크럼 이론과 실천법을 이해하도록 돕는다. 즉, 스크럼 마스터의 역할은 팀이 스크럼 프레임워크 안에서 최적으로 일을 진행할 수 있도록 만드는 것이다.
  • 스크럼 팀의 개발자들은 스프린트마다 사용 가능한 증가분의 모든 부분을 만드는 것에 전념하는 사람들이다. 즉, 이들의 역할은 전문가로서 스크럼 완료(Done)의 정의를 준수하여 프로덕트의 품질을 높여가는 것이다.
    (*증가분은 스크럼 팀이 스프린트 동안 완료한 업무로서 기존 프로덕트에 새로 더해지는 프로덕트의 새로운 부분을 의미)
  • 스크럼 팀의 프로덕트 오너의 역할은 아래에서 더 자세히 설명합니다.

스크럼 팀 내 프로덕트 오너의 역할은?

 스크럼 팀 내에서 프로덕트 오너는 크게 두 가지 역할을 수행합니다.

  • 첫 번째, 프로덕트의 가치를 극대화하는 것
  • 두 번째, 프로덕트 백로그를 효과적으로 관리하는 것

여기서 프로덕트의 백로그를 효과적으로 관리한다는 것은 다음 사항들을 포함합니다.

  • 프로덕트 목표를 세우고 명쾌하게 소통하는 것
  • 프로덕트 백로그 항목을 생성하고 분명하게 소통하는 것
  • 프로덕트 백로그 항목을 우선순위에 따라 정렬하는 것
  • 프로덕트 백로그를 반드시 투명하고 가시적이며 이해가 잘 되도록 만드는 것.

 프로덕트 오너는 위에 나온 일을 직접 하거나 혹은 팀원들에게 역할을 배분합니다. 하지만 어떤 식으로 하든지 최종 책임은 프로덕트 오너가 가지며, 프로덕트 오너가 성공적으로 일을 하기 위해서는 조직 전체가 반드시 그의 결정을 존중해야 합니다. 프로덕트 오너가 내린 결정들은 프로덕트 백로그의 내용과 이를 우선순위에 따라 정렬한 것에서 볼 수 있으며, 스프린트 리뷰 때에 점검 가능한 증가분을 통해서도 볼 수 있습니다. 프로덕트 오너는 프로덕트 백로그와 연관된 많은 이해관계자들의 요구를 대표합니다. 프로덕트 백로그를 변경하고 싶은 사람들은 프로덕트 오너를 설득 해야합니다.

(*프로덕트 백로그는 프로덕트를 개선하기 위해 필요한 항목들을 우선순위에 따라 정렬한 목록)

스크럼은 어떤 프로세스로 진행될까?

 스크럼 팀을 구성했습니다. 그렇다면 이제, 스크럼은 어떤 프로세스로 진행될까요? 자세한 내용을 진행하기 전에 먼저 '스프린트(Sprint)'에 대해서 알아야 합니다. 스프린트는 아이디어가 가치로 바뀌는, 스크럼의 심장과 같은 역할을 합니다. 스프린트는 일관성을 유지하기위해 한달 또는 그보다 더 적은 기간으로 고정된 이벤트입니다. 스프린트가 하나 끝나면 즉시 새로운 스프린트가 시작됩니다.

 앞으로 설명할 스프린트 계획, 데일리 스크럼, 스프린트 리뷰, 스프린트 회고를 포함하여 프로덕트 목표를 달성하기 위해 필요한 모든 업무는 하나의 스프린트에 포함됩니다. 스프린트 기간 동안에는

  • 스프린트 목표 달성을 위태롭게하는 변경은 하지 않습니다.
  • 품질을 떨어뜨려서는 안됩니다.
  • 프로덕트 백로그는 필요에 따라 개선합니다.
  • 범위를 명확하게 하고 필요한 경우 프로덕트 오너와 다시 협상할 수 있습니다.

 스프린트를 진행하게 되면 적어도 한달에 한 번은 프로덕트 목표 대비 진척도을 점검할 수 있습니다. 이렇게 반복적이고 짧은 주기의 점검으로 점차 프로젝트 진척에 대한 예측 정확도를 높이고 더 효율적으로 리스크를 관리할 수 있게 됩니다. 다음은 스프린트 기간동안 어떤 프로세스가 진행되는지 설명합니다.

스크럼 이벤트의 사이클 (출처: Visual Paradigm)

1. 스프린트 계획(Sprint Planning)

: 스프린트 계획의 목적은 스프린트 기간동안 수행할 업무를 선정하는 것입니다. 스크럼 팀 전체가 미팅에 참여해서 계획을 수립합니다. 프로덕트 오너는 참여자들이 프로덕트 목표 달성을 위해서 가장 중요한 백로그가 무엇인지, 왜 중요한지 의논할 준비가 되어있는지 확인합니다. 이 과정에서는 다음과 같은 주제를 다룹니다.

- WHY: 이 스프린트는 왜 가치있는가?

- WHAT:  이 스프린트의 완료(Done)는 무엇인가?

- HOW: 선택한 작업은 어떻게 완료할 것인가?

 스프린트 계획은 가장 많은 시간이 할당된 이벤트로 한달 기간의 스프린트인 경우 회의 시간은 8시간이 넘지 않도록 합니다. 스프린트 기간이 짧을수록 계획 시간도 더 짧아집니다.

2. 데일리 스크럼(Daily Scrum)

: 데일리 스크럼의 목적은 스프린트 목표 대비 진척도를 검사하고, 필요하면 다음 업무 진행 계획을 변경하여 스프린트 백로그를 조정하는 것입니다. 데일리 스크럼은 스크럼 팀의 개발자들만 참여하는 15분 길이의 이벤트입니다. 복잡하지 않도록 같은 시각에, 같은 장소에서, 매일(모든 근무일) 진행합니다. 백로그 항목 작업에 적극적으로 개입하는 프로덕트 오너 또는 스크럼 마스터라면 데일리 스크럼에 참여합니다. 데일리 스크럼은 팀의 소통을 향상시키고 팀이 가지고 있는 장애물을 식별하며 신속한 의사결정을 촉진하고 결과적으로 별도의 다른 미팅을 할 필요성을 줄입니다.

3. 스프린트 리뷰(Sprint Review)

: 스프린트 리뷰의 목적은 스프린트의 결과물을 점검하고 향후에 적응(adapt)할 것들을 결정하는 것입니다. 스크럼 팀은 주요 이해관계자들에게 작업의 결과물과 논의된 프로덕트 목표 대비 진척도를 보여줍니다. 스프린트 리뷰 동안 스크럼 팀과 이해관계자는 이번 스프린트에 성취한 것과 그동안 비즈니스 환경에서 무엇이 변했는지 검토합니다. 이 정보를 기반으로 참여자들은 다음으로 무엇을 할지 협력하여 논의합니다. 여기서 새로운 기회를 창출하기 위해 프로덕트 백로그를 수정할 수 있습니다. 한달 기간의 스프린트인 경우 리뷰는 4시간이 넘지 않도록 합니다. 스프린트 기간이 짧아질수록, 리뷰 시간도 보통 더 짧아집니다.

4. 스프린트 회고(Sprint Retrospective)

: 스프린트 회고의 목적은 품질과 효율을 높이기 위한 방법들을 계획하는 것입니다. 스크럼 팀은 개인, 상호작용, 프로세스, 툴 그리고 완료(Done)의 정의에 대해 지난 스프린트가 어떻게 진행되었는지 점검합니다. 그들을 잘못된 방향으로 가게 만든 가정들을 확인하고, 그것들의 근본적인 원인을 파악합니다. 또한 스크럼 팀은 스프린트 동안 무엇이 잘 진행되었는지도 확인합니다. 어떤 문제를 맞닥뜨렸고 어떻게 해결했는지(또는 해결 못했는지)에 대해 의견을 나눕니다. 스크럼 팀은 더 높은 효율을 위해 무엇이 가장 도움이 되는 변화인지 찾습니다. 가장 영향력 있는 개선책은 다음 스프린트에 수행하도록 스프린트 백로그에 추가할 수도 있습니다. 

 스프린트 회고를 마지막으로 스프린트가 종료됩니다. 한달 기간의 스프린트 기준으로 최대 3시간을 잡고, 스프린트의 기간이 짧아질수록, 보통은 이벤트도 같이 짧아집니다.

5. 스프린트(Sprint)

: 스프린트가 하나 끝나면, 즉시 새로운 스프린트가 시작됩니다. 앞의 모든 과정을 반복하면서 새로운 스프린트를 시작합니다.

 


마무리

 이렇게 애자일한 환경을 만들기 위한 스크럼(Scrum) 프레임워크와 이를 이루는 스프린트(Sprint)라는 작업 단위를 살펴봤습니다. 이번 주 코드스테이츠 토론 세션을 진행하면서 "어떤 기업이 애자일 방법론으로 잘 일하고 있는가"에 대해 이야기해봤는데요. 생각보다 애자일하게 '잘' 일하는 것은 어렵다는 의견이 많이 나왔습니다. 개개인이 각자의 책임을 다해서 일해야 하며, 모두가 같은 목표를 공유하고 있음을 확실히해야 그다음을 바라볼 수 있다는 생각이 들었어요. 이 행위를 '왜' 하는지 이해하지 못한 채 나와 있는 행동이나 프로세스만 따라 한다면 오히려 리소스 낭비가 많은 과정이 될 것 같습니다. 

 그럼에도 스타트업 기업에서 애자일 방법론을 많이 사용하는 이유는, 미래를 예측하기 어렵기 때문인 것 같습니다. '이럴 것이다'가 명확하다면 거기까지 가기 위한 계획을 순서대로 진행하면 될 텐데(워터폴) 어떤 일이 어떻게 벌어져서, 또는 발견돼서 목표가 어떻게 바뀔지 명확하지 않으니 빠른 주기로 여러 번의 검증을 거쳐 최대한 예측 가능하게 만드는 게 애자일이라고 생각합니다. 그리고 이를 수행하는 팀에서 가장 큰 그림을 보고, 상호 간의 커뮤니케이션을 도와 가는 방향을 일치시키는 것이 PM의 역할인 것 같습니다. 좋은 PM이 되려면 더 많은 공부가 필요하겠다는 생각이 또 한 번 듭니다!


참고

https://scrumguides.org/docs/scrumguid%E3%85%87e/v2020/2020-Scrum-Guide-Korean.pdf

https://asana.com/ko/resources/what-is-scrum

https://medium.com/hgmin/scrum-guide-2020-2ab65414005a