반응형
해당 글에서는 스크럼을 이해하고 도입을 위해 이해해야 하는 정보 및 과정을 설명에 대해 이해를 돕기 위해 작성한 글입니다.
1) 스크럼 방법론(Scrum Methodology)
💡 스크럼(Scrum) 이란?
- 애자일 소프트웨어 개발 방법론 중 하나로 ‘프로젝트를 진행하는 데 있어서 유연성과 적응성’을 강조하는 방법론입니다.
- 스크럼은 작은 팀으로 구성되어 각 팀원이 적극적으로 참여하여 프로젝트를 진행하는 방식을 취하며 개발 주기를 일정 기간으로 나누어 각 주기마다 일정한 목표를 설정하고 그 목표를 달성하도록 팀원들이 협력하여 일하는 방식을 취합니다.
- 이러한 방식으로 작업을 진행하면서 문제가 발생하면 팀원들끼리 ‘빠르게 의사소통’하여 ‘문제를 해결’하는 것이 스크럼의 핵심입니다.
2) 스크럼(Scrum) 원칙과 가치, 사용목적
1. 스크럼의 추구하는 '원칙'
- 스크럼 팀은 최적의 결과를 내기 위해서는 스스로를 조직하고, 지속적으로 개선할 수 있어야 합니다.
- 스크럼 팀은 개발 중인 제품의 품질과 효과적인 개발을 위해서는 실시간 검사, 적극적인 피드백, 지속적인 개선 등을 추구해야 합니다.
- 스크럼 팀은 제품의 원활한 진행을 위해 제품 백로그를 효과적으로 관리하고, 스프린트 백로그를 신속하게 조정할 수 있어야 합니다.
- 스크럼 팀은 개발자와 고객, 사용자, 스크럼 마스터 등 개발 과정에 참여하는 모든 이해관계자 간의 원활한 의사소통을 지원해야 합니다.
2. 스크럼의 추구하는 '가치'
- 모든 이해관계자들과의 협력과 팀워크
- 작동하는 제품에 대한 집중
- 작업을 위한 열린 마음과 전문성
- 변화에 대한 적극적인 대처와 적응
3. 스크럼을 사용해야 하는 이유
사용 이유 | 내용 |
투명성 | 모든 팀원이 작업 진행 상황과 이슈에 대해 인식할 수 있습니다. |
적응성 | 팀은 계속해서 변화하는 상황에 대응할 수 있습니다. |
생산성 | 스크럼은 팀의 생산성을 높이는 데 도움이 됩니다. |
고객 만족도 | 스크럼은 고객 요구사항을 반영하며, 고객 만족도를 높이는 데 도움이 됩니다. |
자기 조직성 | 스크럼은 팀원들이 스스로 문제를 해결할 수 있도록 자기 조직성을 높이는 데 도움이 됩니다. |
지속적인 개선 | 스크럼은 지속적인 개선을 통해 프로젝트의 품질을 높이는 데 도움이 됩니다. |
3) 스크럼의 계획과 역할
1. 스크럼 이벤트
💡 스크럼 방법론을 수행하는 데 있어서 계획을 세우고 진행을 하기 위한 용어들입니다.
주요 용어 | 설명 |
스프린트(Sprint) | 스크럼에서 사용되는 일정 기간(보통 1~4주)을 의미합니다. |
스프린트 백로그(Sprint Backlog) | 해당 스프린트에서 완료해야 할 작업을 우선순위에 따라 정리한 목록을 의미합니다. |
제품 백로그(Product Backlog) | 제품의 모든 요구사항을 우선순위에 따라 정리한 목록을 의미합니다. |
스크럼 이벤트(Scrum events) | 스크럼 프로세스에서 일어나는 이벤트로서 스프린트 계획 회의, 데일리 스크럼 회의, 스프린트 리뷰 미팅, 스프린트 회고 미팅 등이 있습니다. |
스프린트 계획 회의(Sprint Planning Meeting) | 스프린트를 진행하기 전, 해당 스프린트에서 완료해야 할 작업을 선정하는 회의를 의미합니다. |
데일리 스크럼 회의(Daily Scrum Meeting) | 매일 진행되는 짧은 회의로, 진행 상황과 문제를 공유하는 회의를 의미합니다. |
스프린트 리뷰 미팅(Sprint Review Meeting) | 해당 스프린트에서 개발한 제품의 작동 여부를 검증하는 회의를 의미합니다. |
스프린트 회고 미팅(Sprint Retrospective Meeting) | 해당 스프린트에서 진행한 프로세스와 문제점을 검토하고 개선점을 도출하는 회의를 의미합니다. |
2. 스크럼 팀의 역할
💡 스크럼 방법론에서의 각각의 역할을 의미하는 용어들입니다.
주요 용어 | 설명 |
제품 책임자(PO: Product Owner) | 제품 개발 프로젝트에서 고객 또는 사용자와의 의사소통을 중개하고 제품의 우선순위를 결정하는 역할을 수행합니다. |
스크럼 마스터(SM: Scrum Master) | 스크럼 프로세스를 이해하고, 팀이 스크럼을 잘 수행하도록 도와주는 역할을 수행합니다. |
개발팀(Development Team) | 제품 개발을 위해 스스로 조직되는 팀이며, 제품 책임자와 스크럼 마스터의 지도를 받는 역할을 수행합니다. |
4) 스크럼(Scrum)의 수행과정
💡 스크럼(Scrum)의 수행과정
1. 스크럼의 시작은 ‘스프린트 계획 회의(Sprint Planning Meeting)’를 통해서 스프린트 (보통 2~4주) 기간을 정합니다. : Sprint Planning
2. 회의에서는 제품 개발을 위해서 개발을 해야 하는 ‘목표’를 지정하며 목표를 달성하기 위해 스크럼 마스터는 개발팀과 협의를 통해 ‘백로그’를 작성합니다. (* 해당 백로그를 작성할 때 '일정에 대한 기간'은 플래닝 포커를 통해 기간을 산정합니다) : Spring Backlog
3. 도출된 백로그를 기반으로 개발팀 내에서 각각 백로그에 대한 역할을 지정합니다. : Daily Scrum
4. 스프린트를 진행하면서 매일 스탠딩업 미팅(Stand-up Meeting)을 통해 간략한 미팅을 진행합니다. : Sprint Execution
5. n차의 스프린트 기간이 종료가 되면 스프린트 리뷰 미팅(Sprint Review Meeting)을 통해 리뷰를 진행합니다.
(리뷰 기간에는 제품의 작동여부를 검증하며 제품의 책임자와 사용자가 검토하고 승인합니다) : Sprint Review
6. 제품 개발이 종료될 때까지 스프린트는 진행이 됩니다. 이러한 과정을 반복하면 제품을 완성해 나아갑니다. : Sprint Retrospective
[ 더 알아보기 ]
💡 스탠딩업 미팅(Stand-up Meeting)을 하는 이유가 무엇일까?
- 스탠딩업 미팅은 매일 진행되는 짧은 회의로 팀원들 간의 진행상황과 문제를 공유하여 문제를 빠르게 해결하고 팀원들이 서로의 일에 대해 파악을 하기 위한 목적으로 수행하며 스탠딩업 미팅을 함으로써 짧은 시간 내의 미팅을 종료하여 길어지는 회의에 대해서 스탠딩업을 함으로써 최소한으로 시간을 줄이기 위한 목적을 가지고 있습니다.
1. 스프린트의 주기
💡 스프린트의 주기는 2~4주 기간이 적절합니다. 그러나, 모두 이 기간을 사용하는 것은 아니고 팀의 크기나 업무의 복잡도 및 일정에 따라서 적절한 스프린트 주기를 찾는 ‘여러 번의 시도’가 필요합니다.
💡 스프린트의 주기를 '1주'로 선택할 수도 있습니다. '개발 초기에 적절한 시기를 찾지 못한 경우' 빠른 피드백을 통해서 결과물을 얻은 뒤에 스프린트 기간을 조정합니다.
2. 플래닝 포커(Planning Porker)
💡 플래닝 포커(Planning Porker)
- 소프트웨어 개발에서 사용되는 추정 기법 중 하나입니다. 이 방법은 팀원들이 작업에 '소요될 시간을 추정'하기 위해 포커 카드를 사용합니다.
- 팀원들은 각각의 작업을 보고 해당 작업의 복잡성에 가장 적합하다고 생각하는 카드를 선택합니다. 그 후, 모든 카드가 한 번에 공개되고 토론을 통해 최종 추정치를 결정합니다.
- 이 방법은 팀원들이 서로의 생각을 나누고 각 작업에 대한 이해를 향상시키는 데 도움이 됩니다.
💡 플래닝 포커의 일정 산정 방법
1. 팀원들 모두가 모여 이번 스프린트에서 수행할 작업 목록을 살펴봅니다.
2. 각 작업에 대해, 팀원들은 얼마나 많은 시간과 노력이 필요할지 추정하는 포커 카드를 선택합니다.
3. 팀원들은 자신이 선택한 카드를 동시에 공개합니다.
4. 만약 모든 팀원들의 추정치가 비슷하다면, 그 추정치가 작업에 소요될 시간이 됩니다.
5. 만약 팀원들의 추정치가 크게 다르다면, 가장 높은 추정치와 가장 낮은 추정치를 선택한 팀원들이 자신의 생각을 공유합니다. 그 후, 팀원들은 다시 카드를 선택해 공개하고 이 과정을 반복합니다. 이렇게 해서 모든 팀원들의 추정치가 비슷해질 때까지 토론을 계속합니다.
6. 이 과정을 모든 작업에 대해 반복합니다. 이렇게 하면 각 작업에 대한 일정을 산정할 수 있고, 이를 바탕으로 전체 프로젝트의 일정을 계획할 수 있습니다.
💡 플래닝 포커의 일정 산정 예시
- 팀이 '로그인 기능 개발'이라는 작업에 대해 플래닝 포커를 진행한다고 가정해봅니다.
1. 일부 팀원들은 이 작업이 복잡하다고 생각하여 '8'의 카드를 선택했지만, 일부는 비교적 간단하다고 생각하여 '5'의 카드를 선택했다고 합시다. 이 경우, 두 그룹은 왜 다른 카드를 선택했는지 서로 설명하고, 토론을 통해 공통된 이해를 형성합니다.
2. 그 후, 모든 팀원들이 동일하거나 비슷한 추정치에 도달할 때까지 카드를 다시 선택하고 공개하는 과정을 반복합니다.
5) [참고] 스크럼과 칸반의 차이점
💡 애자일 방법론 중에서 자주 사용이 되는 칸반(Kanban)과 비교하였을 때 어떤 차이를 가지는지 확인해 봅니다.
구분 | 스크럼(Scrum) | 칸반(Kanban) |
개발 주기 | 일정한 주기마다 스프린트를 진행하는 방식 | 지속적으로 작업을 진행하는 방식 |
역할 | 제품 책임자, 스크럼 마스터, 개발팀 | 없음 |
업무 처리 | 작업 목록을 스프린트 백로그로 관리하고, 스프린트 계획 회의, 스프린트 데일리 스크럼, 스프린트 회고 등의 이벤트를 거쳐 스프린트를 진행 | 작업 목록을 표현한 칸반 보드를 통해 작업을 관리하며, 작업 진행 상황을 체크리스트를 통해 확인 |
변경 | 스프린트 중에는 변경할 수 없음 | 언제든지 변경 가능 |
팀 규모 | 작은 팀에 적합 | 대형 프로젝트에 적합 |
[참고] 해당 사이트를 참고하여 작성하였습니다.
오늘도 감사합니다. 😀
반응형
'공통 > 개발방법론' 카테고리의 다른 글
[개발방법론] TDD, BDD 이해하기-1 : 정의 및 수행과정 (2) | 2023.11.05 |
---|---|
[개발방법론] 애자일 방법론과 종류: 칸반, 스크럼, 익스트림 프로그래밍 (0) | 2023.03.11 |
[개발방법론] 소프트웨어 개발 방법론 : 폭포수(Waterfall), 애자일(Agile), 린(Lean) 방법론 (0) | 2023.03.11 |