1. SCRUM 개요
1) SCRUM의 정의
- 개발 환경을 최대한으로 이용하고 조직의 고정비를 줄이며 반복적인 프로토타입을 기반으로 시장 수요에 가깝게 동기화하는 세트 입니다.
- 비즈니스 요구 사항을 만족시키는 S/W 개발하는데 초점을 맞추기 위해 복잡함을 제거하는 관리 및 제어 프로세스 입니다.
- 짧은 주기 내에 실행 가능한 제품(Shippable Product)을 개발하는 기법 입니다.
2) SCRUM의 특징
(1) 협업 중심 : SCRUM은 주로 팀 수준의 사안을 다루며, 효율적으로 팀원들이 협업할 수 있는 환경 제공하고 팀원들의 협업을 통해 고품질의 제품을 생산
(2) 사회공학 기법 : 프로젝트 이해관계자들의 적극적인 협력과 참여를 촉진하여, 관련자의 성취감의 충족을 목적으로 함
(3) Sprint 수행 : 통상 약 4~6주(30일) 기간의 Time box를 가지며, 이를 반복 수행함
(4) Daily Meeting : 8~10명 정도의 SCRUM팀은 매일 15분 정도의 회의를 통해 진척관리와 이슈 중심의 계획 리뷰 실시
(5) 독립적 방법론 : 특정 언어 및 방법론에 의존하지 않으며, 개발 언어와 상관없이 적용 가능한 폭넓은 응용 범위의 개발
3) SCRUM이 추구하는 가치
(1) 확약 : 약속한 것을 확실히 실현하는 것
(2) 전념 : 확약한 것의 실현에 전념하는 것
(3) 정직 : 비록 자신에게 불리한 일이라도 숨기지 않는 것
(4) 존중 : 자신과 다른 사람에게 경의를 표하는 것
(5) 용기 : 위의 사항을 언제든지 지킬 수 있는 용기
2. SCRUM 구성요소
1) Product Backlog
- 시스템에서 해결해야 하거나, 시스템에 포함되어야 할 기능, 특성과 기술에 대한 모든 기술 나열
- 요구되는 제품의 요구사항의 우선순위 나열
- 프로젝트가 진행되면서 진화되고 변경
2) Sprint Backlog
- 해당 Sprint 기간에 수행되어야 하는 Task 목록으로 Sprint 기간 동안 개발 가능한 기능 목록을 Product Backlog에서 선택
Sprint - 통상 4~6주(30일) 정도의 Timebox 성격을 가진 잘 정의된 반복 개발 주기
- 각 Sprint 단계 종료 시 새로운 기능이 추가되어 실행 가능 제품이 인도되어야 함
3) Daily Scrum
- 매일 약 15분 정도의 짧은 회의
- SCRUM Master는 진척 사항 검토, 정상적 종료를 방해하는 위험 및 작업 계획을 확인
3. SCRUM 프로세스
프로세스 | 상세 설명 | 특징 |
Prepare Product Backlog | - 실제로 구현되어야 하는 기능 목록을 나열 - SRS(요구사항정의서)나 TRS(기술요구 사항정의서)로부터 목록 도출 |
추정리소스, 우선순위 등 |
Release Planning | - 해야 할 작업(일)에 대한 계획 수립 - Milestone을 정하여 Release시가 마다 작동 가능한 Product Release |
위험의 조기 발견 |
Sprint Planning | Release Planning 이후 각 Release를 달성하기 위한 Sprint 계획 수립 | 20%버퍼 법칙 적용 |
Sprint Tracking | 일일 미팅(Daily Scrum)을 수행하면서 계획에 따른 프로젝트 수행 | Daily Scrum Burn down chart |
Ending Sprint | 정해진 기간 동안 Sprint가 종료되면, 정리 실시 | 계획된 일정, 예산 소진 시 까지 |
Review Sprint | - Sprint가 종료된 후에는 Sprint에서 구현된 산출물을 Review하는 단계 - 구현된 코드, 산출물 |
Test, Code Review |
Update Product Backlog | - Review과정에서 나온 추가 요건이나 변경사항을 반영하여 Product Backlog update - 우선순위 재조정, 요구사항 구체화 |
우선순위 재조정 및 구체화 |
Retrospective | Scrum팀에 운영중인 방법론 자체에 대한 Review, 문제 개선 | SWOT분석 |
4. SCRUM과 XP 비교
구분 | SCRUM | XP |
형태 | - 개발 프로세스를 위한 프레임워크 - 관리 및 조직적 실천법에 집중 - 특정한 엔지니어링 방법을 포함하지 않음 |
- 엔지니어링 방법에 초점을 맞춤 - 프로그램 실천법에 집중 - 개발 프로세스의 핵심 프레임워크는 포함하지 않음 |
개발주기 | 4~6주 | 1~2주 |
요구사항 변경 |
- Sprint 내에서 요구사항 변경을 수용하지 않음 - 변화를 최대한 빨리 발견하고 처리하는 관점에서 접근 |
- 리팩토링을 통하여 요구사항 변경을 수용 - 요구사항 변경은 당연히 발생하는 것으로 인정 |
개발 우선순위 결정 주체 | Product Owner가 아닌 Team이 개발 우선순위 결정 | Customer가 개발 우선순위를 결정 |
공통점 | Agile 방법론으로서 짧은 개발 주기로 반복 개발 |
5. SCRUM 적용 현황 및 적용 시 고려사항
1) SCRUM 적용 현황
- 금융, 보험 등 보수적인 산업에 있는 기업과 Google, Yahoo, MS 등도 SCRUM을 선택
- Agile 방법론 실행 팀 중 50%가 Scrum 사용하고, 20%가 Scrum을 XP 구성 요소와 함께 사용하고, 12%가 XP만을 사용
2) SCRUM 프로젝트 적용 시 고려사항
- 전체 프로젝트의 Mile Stone은 기존 개발방법론을 사용하고, SCRUM 방법론은 각 단계에 대한 Task를 위해서 사용
- 어떤 전문화된 시스템이나 도구가 아니라, 팀이 최대한의 효율을 낼 수 있는 프로세스가 중요
'IT 기본개념' 카테고리의 다른 글
[IT관리] 프로젝트 범위 관리(Scope Management) (0) | 2022.11.29 |
---|---|
[IT품질] CMMI(Capability Maturity Model Integration) (0) | 2022.11.28 |
[IT구축] CBD(Component Based Development) 방법론 (0) | 2022.11.27 |
[IT기획/구축] 정보공학(Information Engineering) 방법론 (0) | 2022.11.26 |
[IT서비스] ITSM(IT Service Management) (0) | 2022.11.25 |
댓글