Scrum은 그 자체로 하나의 방법론
이자, Agile의 실천 도구
중 하나이다.
이 말은, Agile로부터 Scrum이 등장한 것이 아니라는 이야기이다.
다른 실천 도구들(칸반, XP - extreme programming, 린SW개발)등은 Agile이라는 용어 정의 전에 이미 여러 형태로 존재하였다.
이후 Agile 선언문이 발표되며 이러한 방법들이 Agile
이라는 깃발 아래 모여들었고, 그 중 우리에게 익숙한 것이 Scrum이다.
결국 스크럼은
작은
개발팀,짧은
개발 주기 및 팀원들의생산성
을 유지시켜 SW개발을 하는 대표적인 Agile 방법론이다.
다음 특징들로 Scrum을 정의할 수 있다.
역할
, 정의에 중점15분
의 Daily Meeting, 1~4주 정도의 개발주기요구사항(BackLog)
관리, 업무 진행 가시화5~9명
으로 팀 구성, 본인 task보다 급한 task를 우선
시이러한 특성은
유연하게
개발하기에 최적화 되어있는데, 특히 팀원의 수는 피자 한 판을 시켰을 때 나눠먹기 좋은 인원이라고 한다.
항상 이러한 가치를 볼 때 손과 발이 없어지는 경험을 하지만, 그래도 정의해 보도록 한다.
갈등
과 도전
을 통해 일을 할 수 있는 용기같은
목표를 향해 나아가는 것실행
하는 것존중
하는 것공개
하고, 일의 효율성을 높이는 것일할 때 기본적으로 너무 당연한 자세 아닌가 싶지만, 실제로 스크럼을 해보면…
특히 한국인의 수직적인 정서상, 팀원 간의존중
이 가장 어려운부분인것 같다.
Scrum 진행은 Broduct Backlog에서 한 Sprint에 수행할 작업들을 도출
한 뒤,
매일 이루어지는 Daily scrum
을 통해 팀원들의 업무 진척 상황을 공유하고 필요시 지원
을 하는 방식으로 이루어진다.
해당 Sprint가 끝나면 Sprint 리뷰
를 통해 다음 Sprint의 완급을 조절하며 이 과정을 반복
한다.
각 단계별 구성요소
는 다음과 같다.
전체
기간동안 개발해야하는 기능, 특성 및 기술에 대한 나열. 요구사항의 우선순위
나열 필수계획
수립Task 목록
. Product Backlog에서 우선순위순으로 선택Scrum에서는 각 구성원이 주어진 역할을 잘 해내는것이 중요한데, 구성원들은 다음의 역할 중 하나를 따르게 된다.
목표
설정우선순위
조정업데이트
수행직접
하거나, 비지니스 요구사항을 정의
할 수 있는 사람가이드
하는 역할객관적인
시각에서 Scrum의 원칙이 잘 적용될 수 있도록 도움해결
하는 역할상관없이
수행 가능Cross-functional
한 롤을 가진 팀원들로 구성(개발자, 디자이너, 설계자 등)그 외 산출물로써는 Burn Down Chart
가 존재하며, 각 Task별로 작업량을 측정한 뒤 작업량의 총 합에서 완료한 Task들의 작업량을 빼가며
그래프의 하강 기울기를 통해 다음 Sprint의 진행을 조절한다.
기존의
Top-Down
방식과는 달리 Scrum에는 PM과 같은 직책이 존재하지 않는다.
그저 서로간의존중
을 바탕으로 팀원간의 소통과 협업을 최대로 이끌어내며 일하는 것이 목표이며,
Scrum Master는 권력자나 리더가 아니라 그저조력자
에 불과한 직책으로 늘 팀원들에게 귀기울이며 의견을 들어야 한다.
또한, 실제로 Scrum을 하다보면 Daily meeting이 서로 간의 감시와 업무 보고의 연장선이라고 느낄 수 있다.
하지만 Scrum Master가 팀원들을 강압적으로 압박하지 않고, Daily meeting의 목적이우선순위
에 따라 Task를 수행하며 우선순위가 높은 Task에도움
이 필요하다면, 자발적으로 팀원들이 본인의 Task를 제쳐두고 도움을 주는 것임을 팀원들이 숙지하도록도와주는
것이 중요하다.