[DevOps] Scrum? Agile?

DevOps Full Chain - 3

Posted by owin2828 on 2020-01-07 16:03 · 4 mins read

Scrum이란


Scrum은 그 자체로 하나의 방법론이자, Agile의 실천 도구 중 하나이다.
이 말은, Agile로부터 Scrum이 등장한 것이 아니라는 이야기이다.
다른 실천 도구들(칸반, XP - extreme programming, 린SW개발)등은 Agile이라는 용어 정의 전에 이미 여러 형태로 존재하였다.
이후 Agile 선언문이 발표되며 이러한 방법들이 Agile 이라는 깃발 아래 모여들었고, 그 중 우리에게 익숙한 것이 Scrum이다.

결국 스크럼은 작은 개발팀, 짧은 개발 주기 및 팀원들의 생산성을 유지시켜 SW개발을 하는 대표적인 Agile 방법론이다.

Scrum의 특징


다음 특징들로 Scrum을 정의할 수 있다.

  • 프로젝트 관리: 역할, 정의에 중점
  • 시간 설정: 15분의 Daily Meeting, 1~4주 정도의 개발주기
  • 관리체계: 요구사항(BackLog)관리, 업무 진행 가시화
  • 팀 중심: 5~9명으로 팀 구성, 본인 task보다 급한 task를 우선

이러한 특성은 유연하게 개발하기에 최적화 되어있는데, 특히 팀원의 수는 피자 한 판을 시켰을 때 나눠먹기 좋은 인원이라고 한다.

스크럼의 5가지 가치


출처: https://www.scrum.org/resources/blog/5-scrum-values-take-center-stage

항상 이러한 가치를 볼 때 손과 발이 없어지는 경험을 하지만, 그래도 정의해 보도록 한다.

  1. Courage(용기): 갈등도전을 통해 일을 할 수 있는 용기
  2. Focus(집중): 모두가 스프린트동안 같은 목표를 향해 나아가는 것
  3. Commitment(확약): 세운 목표를 실행하는 것
  4. Respect(존중): 팀원간 다른 객체임을 인정하고, 존중하는 것
  5. Openess(정직): 업무상태를 공개하고, 일의 효율성을 높이는 것

일할 때 기본적으로 너무 당연한 자세 아닌가 싶지만, 실제로 스크럼을 해보면…
특히 한국인의 수직적인 정서상, 팀원 간의 존중이 가장 어려운부분인것 같다.

Scrum Process


출처: https://brainhub.eu/blog/differences-lean-agile-scrum/

Scrum 진행은 Broduct Backlog에서 한 Sprint에 수행할 작업들을 도출한 뒤, 매일 이루어지는 Daily scrum을 통해 팀원들의 업무 진척 상황을 공유하고 필요시 지원을 하는 방식으로 이루어진다.
해당 Sprint가 끝나면 Sprint 리뷰를 통해 다음 Sprint의 완급을 조절하며 이 과정을 반복한다.

각 단계별 구성요소는 다음과 같다.

  • Product Backlog: 전체 기간동안 개발해야하는 기능, 특성 및 기술에 대한 나열. 요구사항의 우선순위 나열 필수
  • Sprint Planning Meeting: 해당 스프린트의 기간, 수행해야할 목록등 해당 스프린트 계획 수립
  • Sprint Backlog: 해당 Sprint 기간 동안 수행하는 Task 목록. Product Backlog에서 우선순위순으로 선택

Scrum에서는 각 구성원이 주어진 역할을 잘 해내는것이 중요한데, 구성원들은 다음의 역할 중 하나를 따르게 된다.

  • Product Owner(PO):
    • 고객, 관리자 및 팀원 간의 합의를 도출해 목표 설정
    • 요구사항 정의, Product Backlog 간의 우선순위 조정
    • Product Backlog 업데이트 수행
    • 제품을 사용할 고객이 직접 하거나, 비지니스 요구사항을 정의할 수 있는 사람
  • Scrum Master(SM):
    • 팀원들이 Scrum을 올바르게 할 수 있도록 가이드하는 역할
    • 최대한 객관적인 시각에서 Scrum의 원칙이 잘 적용될 수 있도록 도움
    • 문제 발생시, 해결하는 역할
    • 일이 끝났을 때, 잘 끝났는지 확인
    • 직책에 상관없이 수행 가능
  • Scrum Team:
    • Backlog에 따라 Sprint 동안 개발하는 팀원
    • Cross-functional한 롤을 가진 팀원들로 구성(개발자, 디자이너, 설계자 등)

그 외 산출물로써는 Burn Down Chart가 존재하며, 각 Task별로 작업량을 측정한 뒤 작업량의 총 합에서 완료한 Task들의 작업량을 빼가며 그래프의 하강 기울기를 통해 다음 Sprint의 진행을 조절한다.

기존의 Top-Down방식과는 달리 Scrum에는 PM과 같은 직책이 존재하지 않는다.
그저 서로간의 존중을 바탕으로 팀원간의 소통과 협업을 최대로 이끌어내며 일하는 것이 목표이며,
Scrum Master는 권력자나 리더가 아니라 그저 조력자에 불과한 직책으로 늘 팀원들에게 귀기울이며 의견을 들어야 한다.

또한, 실제로 Scrum을 하다보면 Daily meeting이 서로 간의 감시와 업무 보고의 연장선이라고 느낄 수 있다.
하지만 Scrum Master가 팀원들을 강압적으로 압박하지 않고, Daily meeting의 목적이 우선순위에 따라 Task를 수행하며 우선순위가 높은 Task에 도움이 필요하다면, 자발적으로 팀원들이 본인의 Task를 제쳐두고 도움을 주는 것임을 팀원들이 숙지하도록 도와주는 것이 중요하다.

Reference