애자일 제대로 알기 2편: Scrum — 경험적 프로세스 제어와 3-5-3

애자일 제대로 알기 2편: Scrum — 경험적 프로세스 제어와 3-5-3


서론

이전 글에서 애자일의 네 가치를 관통하는 정서가 “불확실성을 인정한다”는 것이라고 했다. 무엇을 만들지 처음부터 다 알 수 없으니, 한 번에 끝내려 하지 말고 자주 확인하고 자주 고치자는 태도다.

Scrum은 그 태도를 가장 널리 쓰이는 구체적 뼈대로 만든 프레임워크다. 그런데 현장에서 Scrum은 종종 “회의만 많은 프로세스”로 오해받는다. 데일리·계획·리뷰·회고를 왜 하는지는 빠지고, “원래 그렇게 하는 거니까” 이벤트만 돌아간다.

2편은 그 를 먼저 잡는다. 핵심은 하나다 — Scrum의 모든 역할·이벤트·산출물은 경험적 프로세스 제어라는 한 가지 발상에서 파생된다. 이걸 잡으면 3-5-3(3역할·5이벤트·3산출물)이 외울 목록이 아니라 “검사하고 적응하기 위한 장치”로 읽힌다.

대상 독자는 Scrum을 돌리고는 있는데 각 이벤트가 왜 있는지 설명하기 어려운 사람, 데일리가 보고 시간이 되어 버린 팀이다. 1편을 안 봐도 되지만, 보면 더 자연스럽다.


TL;DR

  • Scrum의 뿌리는 경험적 프로세스 제어다 — 불확실성이 높아 미리 다 정의할 수 없을 때, 자주 들여다보고(검사) 그때그때 고치는(적응) 방식. 모든 이벤트·역할·산출물이 여기서 나온다.
  • 3기둥 = 투명성 · 검사 · 적응 — 현실을 있는 그대로 보이게 하고(투명성), 자주 점검하고(검사), 벗어났으면 바로 고친다(적응). 셋 중 하나만 빠져도 Scrum은 헛돈다.
  • 3-5-3 = 3역할 · 5이벤트 · 3산출물 — 역할은 “누가 책임지나”, 이벤트는 “검사·적응이 일어나는 정해진 자리”, 산출물은 “투명하게 들여다볼 대상”이다.
  • 각 산출물엔 약속이 붙는다 — 제품 백로그→제품 목표, 스프린트 백로그→스프린트 목표, 증분→Definition of Done(완료 기준). 약속이 없으면 산출물은 그냥 목록일 뿐이다.
  • 데일리=상태 보고, 스프린트=미니 폭포수는 변질 신호다 — 형식은 Scrum인데 검사·적응이 빠진 상태. 이게 5편 가짜 애자일의 핵심 증상이다.

1. 경험적 프로세스 제어 — Scrum이 이 모양인 이유

1.1 정의된 프로세스 vs 경험적 프로세스

제조업에서는 입력과 공정이 명확하면 결과를 예측할 수 있다. 같은 재료를 같은 공정에 넣으면 같은 제품이 나온다. 이걸 정의된 프로세스 제어(defined process control)라 한다. 계획을 정밀하게 세우고 그대로 실행하는 게 최선인 세계다.

소프트웨어는 다르다. 요구는 만들어 봐야 드러나고, 기술은 해 봐야 알고, 사람은 매번 다르게 움직인다. 입력이 불확실하니 결과도 예측이 안 된다. 이런 세계에서는 정밀한 계획이 오히려 독이 된다 — 1편에서 본 폭포수의 실패가 정확히 이것이다.

구분정의된 프로세스 제어경험적 프로세스 제어
전제입력·공정이 명확 → 결과 예측 가능불확실 → 결과 예측 불가
방식미리 정밀하게 계획하고 그대로 실행자주 들여다보고 그때그때 조정
적합반복·표준화된 제조소프트웨어처럼 불확실성 높은 일
1편 대응폭포수애자일(짧은 반복 루프)

경험적 프로세스 제어(empirical process control)는 “예측 대신 경험으로 제어한다”는 뜻이다. 실제로 만들어 본 결과를 보고(경험), 그에 맞춰 다음을 정한다. Scrum은 이 경험적 제어를 팀 단위로 돌리기 위한 장치 모음이다.

1.2 세 기둥 — 투명성 · 검사 · 적응

경험적 제어가 작동하려면 세 가지가 받쳐 줘야 한다. Scrum은 이를 세 기둥(three pillars)이라 부른다.

  • 투명성(transparency) — 일의 진짜 상태가 모두에게 있는 그대로 보여야 한다. 진척을 부풀리거나 문제를 숨기면 다음 두 기둥이 무너진다.
  • 검사(inspection) — 산출물과 진척을 자주 들여다본다. 단, 일하는 흐름을 방해하지 않을 만큼만.
  • 적응(adaptation) — 검사 결과 벗어났으면 지금 바로 고친다. 다음 분기, 다음 릴리스가 아니라 곧장.
flowchart LR
    T["투명성<br/>(현실을 있는 그대로)"] --> I["검사<br/>(자주 들여다본다)"]
    I --> A["적응<br/>(벗어났으면 바로 고친다)"]
    A -->|"다음 주기"| T

이 셋은 따로 놀지 않는다. 투명성이 없으면 검사가 헛것을 보고, 검사가 없으면 적응할 근거가 없고, 적응이 없으면 검사는 그냥 보고가 된다. 뒤에서 볼 모든 이벤트는 이 셋 중 하나 이상을 일으키기 위해 존재한다. Scrum이 헛도는 거의 모든 경우는 이 셋 중 무엇이 빠졌는지로 진단된다(6절).

Scrum Guide는 세 기둥을 떠받치는 다섯 가치를 든다. 기둥이 “무엇을 하느냐”라면, 다섯 가치는 그걸 가능하게 하는 “팀의 태도”다.

가치세 기둥과의 연결
확약(commitment)목표와 서로에게 최선을 다하기로 약속한다확약이 있어야 검사·적응이 의미를 가진다
집중(focus)스프린트 목표와 지금 할 일에 집중한다검사할 대상이 흐려지지 않게 한다
개방(openness)일과 문제를 있는 그대로 솔직히 드러낸다투명성의 직접적 전제
존중(respect)서로를 유능하고 독립적인 동료로 존중한다자기관리 팀이 작동하는 토대
용기(courage)어려운 문제를 직면하고 옳은 일을 한다문제를 드러내고(개방) 바꾸는(적응) 데 필요

특히 개방과 용기가 투명성의 전제다 — 문제를 솔직히 드러낼 용기가 없으면 투명성은 구호로 끝나고, 그러면 검사도 헛것을 보고 적응도 못 한다.


2. 3-5-3 한눈에

Scrum의 구성요소는 3-5-3으로 외운다 — 3역할 · 5이벤트 · 3산출물. 다만 외우기 전에 각 묶음이 세 기둥 중 무엇을 담당하는지로 보면 구조가 잡힌다.

묶음항목세 기둥에서의 역할
3 역할(책무)PO · 스크럼 마스터 · 개발자무엇을·어떻게 잘 돌게·어떻게 만드나를 나눠 책임
5 이벤트스프린트 · 계획 · 데일리 · 리뷰 · 회고검사·적응이 일어나는 정해진 자리
3 산출물(+약속)제품 백로그 · 스프린트 백로그 · 증분투명하게 들여다볼 대상

한 스프린트가 도는 모습을 그리면 다음과 같다.

flowchart LR
    PB["제품 백로그"] --> SP["스프린트 계획"]
    SP --> S["스프린트<br/>(1–4주 타임박스)"]
    S --> SR["스프린트 리뷰"]
    SR --> RE["회고"]
    RE -->|"다음 스프린트"| SP
    S -.->|"매일 15분"| D["데일리 스크럼"]
    D -.-> S

스프린트라는 큰 상자 안에서 계획으로 시작해, 매일 데일리로 점검하고, 끝에서 리뷰(만든 것 검사)와 회고(일하는 방식 검사)를 한 뒤 다음 스프린트로 넘어간다. 이 루프가 1편에서 본 “짧은 반복 피드백 루프”의 Scrum 버전이다.


3. 3 역할 — 누가 무엇을 책임지나

Scrum Guide 2020은 이를 역할이 아니라 책무(accountability)라 부른다. 직책이 아니라 “이 결과는 이 사람이 책임진다”는 뜻이다. 하나의 스크럼 팀(Scrum Team) 안에 셋이 있고, 팀 위에 하위 팀은 없다.

  • 제품 책임자(Product Owner, PO)무엇을 만들지에 책임진다. 제품 백로그를 관리하고 우선순위를 정해 제품의 가치를 극대화한다. PO는 한 사람이며, 위원회가 아니다.
  • 스크럼 마스터(Scrum Master, SM) — Scrum이 잘 돌아가게 하는 데 책임진다. 일정 관리자가 아니라, 팀이 경험적 제어를 제대로 하도록 돕고 방해 요소를 제거하는 코치다.
  • 개발자(Developers)어떻게 만들지에 책임진다. 스프린트마다 쓸 만한 증분을 만든다. 개발자는 “코더”가 아니라 증분을 만드는 데 필요한 모든 작업(설계·개발·테스트 등)을 하는 사람들이다.

세 책무를 관통하는 원칙이 자기관리(self-managing)다. 누가 무엇을, 언제, 어떻게 할지를 외부 지시가 아니라 팀 스스로 정한다. 이는 1편 11원칙(자기조직 팀에서 최선의 설계가 나온다)의 직접적 구현이다.

주의: 스크럼 마스터를 “스프린트 일정을 관리하고 진척을 윗선에 보고하는 사람”으로 두는 순간, 그건 PM이지 스크럼 마스터가 아니다. 이 변질은 데일리를 보고 시간으로 만드는 첫 단추다(6절).


4. 5 이벤트 — 검사·적응이 일어나는 자리

다섯 이벤트의 공통점은 전부 타임박스(timebox)라는 것이다. 타임박스는 정해진 시간만큼만 쓰고 끝내는 규칙이다(1편 부록). 시간을 못 박아 두면 “결론 없이 늘어지는 회의”를 구조적으로 막는다.

이벤트타임박스(1개월 스프린트 기준)무엇을 검사·적응하나
스프린트(Sprint)≤ 1개월나머지 모든 이벤트를 담는 컨테이너
스프린트 계획≤ 8시간이번 스프린트에 무엇을·왜·어떻게 할지
데일리 스크럼15분스프린트 목표를 향한 진척, 오늘의 계획
스프린트 리뷰≤ 4시간만든 증분을 이해관계자와 함께, 제품 백로그
회고(Retrospective)≤ 3시간지난 스프린트의 일하는 방식 자체

각 이벤트의 본질을 한 줄씩 짚으면:

  • 스프린트 — 1개월 이하의 고정 길이 주기. 목표가 흐려지면 PO가 취소할 수 있지만, 길이는 도중에 늘리지 않는다. 길이를 고정해야 리듬과 예측 가능성이 생긴다.
  • 스프린트 계획 — 세 가지를 정한다. (스프린트 목표) · 무엇을(이번에 다룰 백로그 항목) · 어떻게(작업 계획). 2020 이전엔 ‘왜’가 약했는데, 스프린트 목표가 명시되며 강화됐다.
  • 데일리 스크럼 — 개발자들이 스프린트 목표 대비 진척을 검사하고 오늘 계획을 적응하는 15분. 매니저에게 하는 보고가 아니다. 형식(어제/오늘/장애물 3질문)은 2020에서 사라졌다 — 목적만 달성하면 형식은 자유다.
  • 스프린트 리뷰 — 만든 증분을 이해관계자와 함께 살펴보고 제품 백로그를 조정하는 작업 세션이다. 승인받는 발표회나 데모쇼가 아니다.
  • 회고 — 일하는 방식(사람·관계·프로세스·도구·DoD)을 돌아보고 개선책을 정한다. 1편 12원칙(정기적으로 돌아보고 조정한다)의 자리이자, 애자일의 학습 엔진이다.

참고 — 데일리의 “3질문”이란: 2017년판까지 Scrum Guide는 데일리 형식으로 각자 “①어제 한 일 ②오늘 할 일 ③장애물”에 답하는 3질문을 권장했다. 그런데 이게 기계적으로 굳어 데일리를 매니저 대상 상태 보고로 만들곤 했다. 그래서 2020 개정은 3질문을 삭제하고 목적(스프린트 목표 대비 검사·적응)만 남겼다 — 3질문을 써도 되지만, 이제 의무가 아니다.

참고 — 스프린트 리뷰는 왜 “발표회”가 아닌가: 흔한 오해는 리뷰를 “팀이 만든 걸 보여 주고 이해관계자가 승인하는 데모쇼”로 여기는 것이다. 그러면 팀→이해관계자 한 방향이 되고, 검사는 그저 구경거리가 된다. 본래 리뷰는 양방향 작업 세션이다. 이미 DoD를 충족한(즉 쓸 수 있는) 증분을 함께 보고, 시장·환경 변화까지 얹어 “다음에 뭐가 가장 가치 있나”를 논의하며, 그 자리에서 제품 백로그를 고친다. 그래서 증분은 리뷰에서 승인받는 게 아니다 — 이미 Done이라 승인 도장이 필요 없고, 리뷰의 산출물은 조정된 제품 백로그다. 정리하면 리뷰 = 증분 검사 + 제품 백로그 적응이고, 발표회로 굳으면 적응이 빠진 변질 신호가 된다(6.2절).


5. 3 산출물과 그 약속

산출물(artifact)은 “투명하게 들여다볼 대상”이다. Scrum Guide 2020은 각 산출물에 약속(commitment)을 하나씩 붙였다. 약속이 없으면 산출물은 방향 없는 목록일 뿐이다.

산출물무엇인가약속(commitment)
제품 백로그(Product Backlog)제품에 필요한 모든 것의 우선순위 목록제품 목표(Product Goal) — 팀이 향하는 장기 목표
스프린트 백로그(Sprint Backlog)이번 스프린트에 다룰 항목 + 계획스프린트 목표(Sprint Goal) — 이번 스프린트의 단일 목적
증분(Increment)이번에 만든, 쓸 수 있는 결과물Definition of Done(완료 기준) — “끝났다”의 공통 기준

5.1 증분(Increment)이란 — “늘어난 기능”이 아니다

“증분”이라는 번역어 탓에 “이번에 늘어난 기능 = 새로 짠 코드 덩어리”로 읽기 쉽다. 절반만 맞다. 증분의 핵심은 양(delta)이 아니라 상태다.

증분은 이전까지의 결과에 더해져 하나로 작동하는, 쓸 수 있는 상태의 결과물이다. 세 가지가 한꺼번에 성립해야 증분이다.

  • 가산적(누적) — 이번 증분은 이전 모든 증분 위에 더해지고, 전체가 함께 검증되어 같이 작동한다. 새 기능을 더했는데 기존 기능이 깨지면 그건 증분이 아니다.
  • 사용 가능한 상태 — 통합·테스트가 끝나 지금 바로 쓸(릴리스할) 수 있는 상태다(DoD 충족). 실제 릴리스 여부는 PO의 별개 결정이지만, 상태만큼은 “쓸 수 있음”이어야 한다.
  • 목표를 향한 한 걸음 — 증분은 제품 목표로 가는 디딤돌이다. “코드가 늘었다”가 아니라 “쓸 수 있는 가치가 한 걸음 늘었다”.

그래서 “기능은 다 짰는데 통합·테스트가 안 됐다”는 증분이 아니라 미완 작업이다. 한 스프린트에 증분은 여러 개 나올 수 있고, 스프린트 리뷰에는 그 합(지금까지 쓸 수 있는 전체)을 올린다.

핵심: 증분 = 새로 짠 코드의 양이 아니라, 그 코드까지 더해져 “지금 통째로 쓸 수 있는” 제품의 상태다. 이 “상태”를 보장하는 기준이 바로 다음에 볼 Definition of Done이다.

5.2 Definition of Done이 핵심인 이유

Definition of Done(DoD)은 “이 일이 끝났다”고 부르기 위해 갖춰야 할 공통 기준이다. 코드 작성뿐 아니라 테스트·리뷰·문서·배포 가능 상태 등 팀이 합의한 품질 조건을 모두 포함한다.

DoD가 없으면 무슨 일이 벌어지는가. 각자 다른 기준으로 “끝났다”고 말하고, 실제로는 테스트·통합이 안 된 미완 작업(undone work)이 쌓인다. 증분은 “쓸 수 있다”고 했지만 정작 못 쓰는 상태가 된다. 이게 스프린트가 미니 폭포수로 변질되는 통로다 — 검사할 진짜 증분이 없으니 리뷰가 형식이 된다.

핵심: 증분은 “DoD를 만족한 것”만 인정된다. DoD를 만족하지 못한 작업은 스프린트 리뷰에 올리지 않는다. 이 규율이 투명성(증분이 진짜 쓸 수 있는 상태임을 보장)을 떠받친다.


6. Scrum Guide 2020의 변화와 변질 신호

6.1 2020에서 무엇이 바뀌었나

Scrum Guide는 2020년 개정으로 더 가벼워지고 덜 규범적이 됐다. 주요 변경은 다음과 같다.

항목2017까지2020
팀 구조개발팀이 스크럼팀 안의 별도 하위팀하나의 스크럼팀(하위팀 없음), 구성원은 개발자
제품 목표개념 없음제품 목표(Product Goal) 도입
약속명시 안 됨산출물마다 약속(제품 목표·스프린트 목표·DoD)
데일리 3질문권장(어제·오늘·장애물)삭제 — 목적만 맞으면 형식 자유
자기조직self-organizingself-managing(무엇을·언제·어떻게까지 스스로)
분량19쪽13쪽으로 축소

큰 방향은 “규칙을 줄이고 목적을 남겼다”는 것이다. 데일리 3질문을 없앤 게 상징적이다 — 형식을 따라 하느라 목적(진척 검사·계획 적응)을 잊는 일을 막으려는 의도다.

6.2 변질 신호 — 형식은 Scrum, 알맹이는 없음

Scrum이 헛도는 팀의 증상은 1절의 세 기둥으로 정확히 진단된다. 무엇이 빠졌는지 보면 된다.

변질 신호빠진 기둥본래 모습
데일리가 매니저 대상 상태 보고가 됨검사·적응개발자들이 스프린트 목표 대비 스스로 점검·조정
스프린트가 미니 폭포수(계획대로만, 중간 피드백 없음)검사·적응매일·매 스프린트 검사하고 그때그때 적응
회고가 형식(액션 없음/매번 같은 얘기)적응일하는 방식을 실제로 바꾸는 학습 엔진
DoD 없이 “끝났다” 주장투명성진짜 쓸 수 있는 증분만 완료로 인정
스크럼 마스터가 일정 관리·보고 취합적응(코칭 부재)경험적 제어를 돕고 장애를 제거하는 코치

공통점은 분명하다. 이벤트라는 형식은 그대로인데, 투명성·검사·적응이라는 알맹이가 빠졌다. 이렇게 형식만 남은 상태가 1편에서 예고한 가짜 애자일이고, 그 해부와 회복은 5편에서 본격적으로 다룬다.


정리

2편의 핵심을 한 줄씩 정리하면 다음과 같다.

  • Scrum의 모든 것은 경험적 프로세스 제어에서 나온다 — 불확실성이 높을 때 예측 대신 경험으로 제어한다. 이 발상을 잡으면 3-5-3은 외울 목록이 아니라 검사·적응 장치로 읽힌다.
  • 세 기둥(투명성·검사·적응)이 진단 도구다 — Scrum이 헛도는 거의 모든 경우는 이 셋 중 무엇이 빠졌는지로 설명된다.
  • 3역할은 책무, 5이벤트는 검사·적응의 자리, 3산출물은 투명성의 대상 — 그리고 각 산출물엔 약속(제품 목표·스프린트 목표·DoD)이 붙어야 방향이 생긴다.
  • Definition of Done이 증분의 진실성을 지킨다 — DoD 없이 “끝났다”가 쌓이면 미완 작업이 누적되고 리뷰가 형식이 된다.
  • 데일리=보고, 스프린트=미니 폭포수는 변질 신호다 — 형식은 Scrum인데 알맹이가 빠진 가짜 애자일의 전형으로, 5편의 주제다.

다음 편은 Kanban과 흐름(Flow)이다. Scrum이 “고정 길이 스프린트로 리듬을 만드는” 접근이라면, Kanban은 “흐름을 끊지 않고 진행 중 작업(WIP)을 제한하는” 접근이다. Lean(도요타 생산 방식)의 유산, WIP 제한이 왜 처리량을 높이는지(Little’s Law), 그리고 Scrum과 Kanban을 언제 무엇으로 골라야 하는지를 다룬다.


부록

A. 용어 정리

용어한 줄 정의
경험적 프로세스 제어(empirical process control)불확실해 예측이 안 될 때, 미리 정의 대신 자주 검사하고 적응해 제어하는 방식
정의된 프로세스 제어(defined process control)입력·공정이 명확해 결과를 예측할 수 있을 때, 미리 계획하고 그대로 실행하는 방식
세 기둥(three pillars)경험적 제어를 떠받치는 투명성·검사·적응
책무(accountability)직책이 아니라 “이 결과를 이 사람(역할)이 책임진다”는 뜻
스크럼 팀(Scrum Team)PO·스크럼 마스터·개발자로 이뤄진 하나의 팀, 하위 팀 없음
타임박스(timebox)정해진 시간만큼만 쓰고 끝내는 규칙 — 늘어지는 회의를 구조적으로 막음
증분(Increment)이전 결과에 더해져 통째로 쓸 수 있는 상태의 결과물 — 코드의 양(delta)이 아니라 상태이며, DoD를 만족한 것만
Definition of Done(완료 기준)“끝났다”고 부르기 위해 갖춰야 할, 팀이 합의한 품질 기준
제품 목표 / 스프린트 목표제품 백로그의 장기 목표 / 이번 스프린트의 단일 목적
미완 작업(undone work)DoD를 못 채웠는데 “끝났다”고 분류돼 숨은 채 쌓이는 작업

B. 외부 참조

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.