1. Scrum이란 무엇인가?
개발과 관련된 모든 것이 표준화되어 있다는 점은 이미 이해하셨을 겁니다. 그런데 제가 만약 “사실상 모든 게 표준화되어 있다”고 말하면 어떨까요? 여기서 말하는 것은 변수와 함수 이름만이 아닙니다. 물론 그것들도 표준화되어 있죠🤦♂️.
개발 방법론 — Agile — 이 있고, 그중 널리 쓰이는 구현 — Scrum — 이 있습니다. Scrum은 프레임워크라고도 하는데, 팀의 모든 프로세스를 규정합니다. 회의는 언제 해야 하는지, 누가 참석해야 하는지, 무엇을 논의해야 하는지, 회의 결과는 무엇이어야 하며 어떤 형태로 기록해야 하는지까지요 📋.
“그런데 왜 이렇게까지 표준화가 많죠?”라고 묻겠죠. 첫째, 여러분은 하이테크 산업에서 일합니다. 둘째, 서로 협업하기가 훨씬 쉬워집니다. 셋째, 여러분 직함인 .NET Software Engineer에서 마지막 단어 — Engineer — 에 주목해 보세요. 그러면 왜 그런지 감이 오실 겁니다.
2. 스크럼 방식의 작업 흐름
Scrum은 소프트웨어 개발에서 자주 사용되는 유연한 프로젝트 관리 방법론입니다. 반복적·점진적 프로세스에 기반합니다 🔁
Scrum은 프로젝트를 개발의 주기/단계인 스프린트로 나눕니다. 스프린트는 보통 2~4주 동안 진행됩니다. 각 스프린트는 수행할 작업을 계획하는 것으로 시작하고, 팀이 달성한 결과를 시연하는 프레젠테이션으로 마무리됩니다 🎯.
Scrum의 핵심 요소는 역할, 이벤트, 그리고 아티팩트입니다.
- 핵심 역할 — 제품 요구사항을 정의하는 Product Owner, Scrum 규칙에 따라 프로세스를 지원하는 Scrum Master, 그리고 작업을 수행하는 개발팀.
- 핵심 이벤트 — 매일 미팅(daily meetings), 스프린트 계획, 회고, 그리고 작업 결과 데모.
- 아티팩트에는 제품의 백로그(작업 목록), 스프린트 백로그, 그리고 제품 인크리먼트가 포함됩니다 📋.
겁먹지 마세요! 모든 것이 규정되어 있어 조금은 엄격해 보일 수 있지만, “스크럼 방식으로” 일하는 건 쉽고 즐겁습니다. Scrum은 개발자와 고객/제품 소유자 간의 근본적인 갈등을 해결해 주었습니다 🤗
개발자들은 늘 조용히 일하게 놔 달라고 부탁해 왔습니다. 반면 제품 오너들은 새로운 기능을 급히 넣거나 무언가를 바꾸거나 어떤 실험이든 해 보고 싶어 했죠 🧪.
Scrum은 개발을 안정적인 기간 — 스프린트(보통 2주) — 로 나눴습니다. 한 기간 동안 개발자들은 현재 스프린트에 계획된 작업만 수행합니다. 만약 고객이 급하게 무엇인가를 원한다면, 그 항목은 다음 스프린트에 추가됩니다 🗓️.
3. Sprint & Scrum Board
Sprint는 Scrum에서의 기본 개발 주기로, 1~4주 동안 진행됩니다. 앞서 말했듯 이 기간 동안 팀은 제품 백로그에서 선정한 구체적인 작업 묶음을 수행합니다.
각 스프린트 시작에는 계획 ⏳ 회의가 열려, 팀이 제품 백로그에서 작업을 선택하고 이를 완료하겠다고 약속합니다. 스프린트는 완료된 작업 데모와 회고로 마무리되며, 팀은 스프린트 진행 과정을 분석하고 다음 스프린트를 개선할 방법을 찾습니다. 이러한 접근법은 요구사항과 우선순위 변화에 빠르게 대응하면서 제품을 정기적으로 업데이트할 수 있게 합니다.
현재 스프린트가 진행되는 동안에도 개발자들과 제품 오너는 모여 다음 스프린트의 작업을 논의해야 합니다.
Backlog 📚, 즉 백로그는 수행해야 할 모든 작업의 목록입니다. Scrum에서는 제품 백로그(제품에 대한 모든 요구사항(기능) 포함)와 스프린트 백로그(현재 스프린트에서 구현하기로 선택한 작업들)를 구분합니다. 백로그는 살아 있는 문서로서, 현재의 비즈니스 목표와 시장 상황에 부합하도록 정기적으로 업데이트되고 재검토됩니다.
현재 스프린트의 백로그는 Scrum Board ✅ — 상태가 표시된 작업 보드 — 형태로 자주 시각화합니다. 보드는 일반적으로 “할 일”, “진행 중”, “검토 중”, “완료”와 같은 작업 단계에 해당하는 열로 나뉩니다. 이를 통해 팀 전체가 진행 상황을 한눈에 보고, 워크플로에서의 어떤 병목도 쉽게 파악할 수 있습니다.
GO TO FULL VERSION