4.1 Scrum이란 무엇인가?
개발 관련 모든 것이 표준화되어 있다는 것을 이미 알았을 거야. 그런데, 모든 것 자체가 표준화되었다면? 그리고 여기서는 변수와 함수 이름에 대해 말하는 건 아니야, 물론 그것들도 표준화되어 있지🤦♂️.
개발 방법론이 있는데 — 그게 바로 Agile이고, 그 중 인기 있는 구현이 Scrum이야. Scrum은 프레임워크라고도 불리는데, 팀 내의 모든 과정을 정리해 주거든. 언제 회의를 해야 하는지, 누가 참석해야 하는지, 어떤 내용을 논의해야 하는지, 회의의 결과가 어떻게 기록되어야 하는지를 모두 정해주는 거야.
"근데 왜 이렇게 표준화가 많아야 해", 라고 물어볼 수도 있어. 음, 우선, 너희는 첨단 기술 분야 — 하이테크, 이런 거잖아. 그리고 서로 일하기가 더 쉬워지지. 세 번째로는, 너희 직업명에 주목해봐: Python Fullstack Software Engineer. 마지막 단어 — 엔지니어를 보면 어디서 시작됐는지 알게 될거야.
4.2 Scrum 작업 방법
Scrum은 프로젝트 관리의 유연한 방법론으로, 소프트웨어 개발에 자주 사용돼. 반복적이고 증분적인 프로세스를 기반으로 해.
Scrum은 프로젝트를 스프린트라고 불리는 개발 주기로 나눠. 이 스프린트는 보통 한 주에서 네 주 동안 지속되지. 각 스프린트는 수행해야 할 작업을 계획하는 것으로 시작하고, 팀이 달성한 결과를 발표하는 것으로 끝나.
Scrum의 핵심 요소에는 역할, 이벤트, 아티팩트가 포함돼.
주요 역할 — Product Owner는 제품에 대한 요구사항을 정의하고, Scrum Master는 Scrum 규칙에 따라 프로세스를 지원하며, 개발팀은 작업을 수행해.
주요 이벤트 — 매일 하는 회의 (daily meetings 또는 데일리 미팅), 스프린트 계획, 회고와 작업 결과 시연이 있어. 아티팩트는 제품의 backlog (작업 목록), 스프린트 backlog 및 제품 증분을 포함해.
걱정하지마! 모든 것이 규제되어 있어도 무섭게 보일 수 있지만, "Scrum으로 일하는 것"은 쉽고 재밌어. Scrum은 개발자와 고객/제품 소유자 간의 주요 갈등을 해결했어.
개발자들은 항상 조용히 작업할 시간을 달라고 했고, 제품 소유자들은 새로운 기능을 긴급히 추가하거나 무언가를 변경하거나 실험을 진행해야 했거든.
Scrum은 개발을 안정적인 기간으로 나누었어 — 스프린트(보통 2주). 한 기간 동안 개발자들은 현재 스프린트에 계획된 작업만 수행해. 고객이 긴급히 무언가를 해야 할 경우, 그 기능을 다음 스프린트에 추가하게 돼.
4.3 Sprint & Scrum Board
Sprint — Scrum에서 주요 개발 주기야, 지속 기간은 한 주에서 네 주야. 아까 말했듯이, 이 기간 동안 팀은 제품의 backlog에서 특정 작업 세트를 수행하는 데 집중해.
각 스프린트의 시작에는 계획이 있어, 여기서 팀은 제품 backlog에서 작업을 선택하고 이를 완료하겠다는 약속을 해. 스프린트는 완료된 작업을 시연하고, 스프린트 작업 과정에 대해 분석하고, 다음 스프린트를 개선할 방법을 찾는 회고로 끝나. 이 접근 방식은 제품을 정기적으로 업데이트하여 요구와 우선순위의 변화에 빠르게 대응할 수 있게 해줘.
현재 스프린트 동안에는 개발자들과 제품 소유자가 모여서 다음 스프린트를 위한 작업을 논의해야 해.
Backlog, 혹은 백로그는 수행해야 할 모든 작업 목록이야. Scrum에서는 제품에 대한 모든 요구사항(기능)을 포함하는 제품 백로그와 현재 스프린트에서 구현하기로 선택한 작업으로 구성된 스프린트 백로그를 구별해. 백로그는 현재의 비즈니스 목표와 시장 상황을 반영하기 위해 정기적으로 업데이트되고 검토되는 살아있는 문서야.
현재 스프린트의 백로그는 종종 Scrum Board로 표시돼 — 작업과 상태를 보여주는 어떤 보드야. 보드는 일반적으로 작업의 진행 단계를 나타내는 열로 나누어져 있어, "할 일", "진행 중", "검토 중", "완료" 같은 것들. 이를 통해 팀 전체가 진행 상황을 보고 작업 프로세스의 어떤 어려움을 쉽게 식별할 수 있어.
GO TO FULL VERSION