스프린트
“2~4주의 고정 반복 주기. 끝마다 동작하는 증분을 산출.”
스프린트란 무엇인가
스프린트는 애자일 개발에서 일정한 길이로 반복되는 고정 작업 주기를 가리킨다. 통상 2주에서 4주 사이에서 한 번 정한 길이를 유지하며, 각 주기가 끝날 때마다 동작하는 제품 증분을 산출하는 것을 원칙으로 한다.
한 번에 모든 기능을 완성하려는 대신, 짧은 호흡으로 가치 있는 결과를 거듭 쌓아 올린다는 발상이 핵심이다. 주기의 길이를 고정하는 이유는 팀의 작업 속도를 측정 가능한 단위로 만들어 다음 계획의 근거로 삼기 위해서다.
길이가 매번 달라지면 무엇을 비교의 기준으로 삼아야 할지 모호해지므로, 일정한 박자를 유지하는 것 자체가 하나의 규율이 된다.
고정 길이가 만드는 리듬
스프린트의 가장 큰 특징은 길이를 함부로 늘리거나 줄이지 않는다는 점이다. 일이 끝나지 않았다고 주기를 연장하면 일정이 무너지고, 다음 계획의 기준선도 사라진다.
대신 완료하지 못한 항목은 다음 스프린트로 넘기고 주기 자체는 그대로 닫는다. 이렇게 길이를 일정하게 유지해야 팀이 한 주기에 처리할 수 있는 분량, 즉 속도가 안정적으로 드러난다.
예측 가능한 리듬은 이해관계자에게도 일관된 보고 시점을 제공한다.
백로그에서 스프린트로
무엇을 다룰지는 제품 백로그(product-backlog)에서 출발한다. 우선순위가 높은 항목을 위에서부터 끌어와 이번 주기에 담을 분량을 정하는 과정이 스프린트 계획이다.
이때 팀의 과거 속도와 가용 역량을 근거로 무리 없는 범위를 합의한다. 욕심을 내어 과도하게 담으면 미완료가 누적되고, 지나치게 적게 담으면 자원이 놀게 된다.
담을 분량을 적정 수준으로 잡는 감각이 곧 계획의 품질을 좌우한다. 계획 단계에서 각 항목을 누가 어떤 순서로 다룰지까지 합의해 두면, 주기 도중의 혼선을 크게 줄일 수 있다.
| 상황 | 흔한 실패 | 정석 |
|---|---|---|
| 미완료 항목 | 주기 연장 | 다음 주기로 이월 |
| 새 요구 유입 | 중간에 끼워넣기 | 백로그에 쌓기 |
| 계획 분량 | 과도하게 담음 | 속도 기준 합의 |
증분과 완료의 정의
각 스프린트는 단순한 진척이 아니라 실제로 동작하는 증분을 목표로 한다. 화면만 그려졌거나 절반만 구현된 결과는 증분이 아니다.
무엇을 완료로 볼지에 대한 기준, 곧 완료의 정의를 팀이 미리 합의해 두어야 주기 말의 결과가 흔들리지 않는다. 이 기준에는 코드 작성뿐 아니라 테스트·통합·검토 통과가 포함되는 것이 일반적이다.
완료의 정의가 모호하면 동작하지 않는 산출물이 완료로 둔갑해 다음 주기에 부채로 쌓인다.
스크럼 안에서의 위치
스프린트는 스크럼 프레임워크의 골격을 이루는 단위다. 계획·일일 점검·주기 말의 검토와 회고가 모두 스프린트를 중심으로 배치된다.
검토에서는 산출된 증분을 이해관계자와 함께 확인하고, 회고에서는 일하는 방식 자체를 다음 주기에 어떻게 개선할지 점검한다. 즉 스프린트는 결과물을 내는 단위인 동시에 팀의 작업 방식을 주기적으로 교정하는 학습의 단위이기도 하다.
이 이중의 성격이 짧은 반복을 단순한 분할 작업과 구별 짓는다.
흔한 실패와 안정화
현장에서 가장 흔한 실패는 주기 도중에 범위를 계속 밀어 넣어 팀을 흔드는 일이다. 외부 요구가 스프린트 중간에 끼어들면 계획은 의미를 잃고 속도 측정도 무너진다.
새 요구는 백로그에 쌓아 다음 계획에서 다루는 것이 정석이다. 또한 미완료 항목을 숨기지 않고 정직하게 다음 주기로 넘겨야 속도가 현실을 반영한다.
몇 차례 주기를 반복해 속도가 안정되면, 비로소 향후 일정을 신뢰성 있게 전망할 수 있다. 결국 스프린트의 가치는 단발성 성과가 아니라, 반복을 통해 누적되는 예측 가능성에서 나온다.
관련 용어