스크럼 (Scrum)

bolee·2022년 7월 16일
0

스크럼(Scrum)은 에자일(Agile)을 통한 가장 많이 사용하는 개발 방법론중 하나이다.

럭비 경기에서 사용되던 용어로, 반칙으로 인해 경기가 중단됐을 때 쓰는 대형을 말한다.

즉, 소프트웨어 측면에서 팀이라는 단어가 주는 의미를 적용시키고, 효율적인 성과를 얻기 위한 것이다.

스크럼 프로세스

스크럼 방법론은 다음과 같은 프로세스로 진행된다.

1. 제품 기능 목록 작성

개발할 제품에 대한 요구사항 목록 작성한다.
즉, 우선순위가 매겨진 사용자의 요구사항 목록이라고 말할 수 있다.

개발 중에 수정이 가능하기는 하지만 일반적으로 한 주기가 끝날 때까지는 제품 기능 목록을 수정하지 않는 것이 원칙이다.

2. 스프린트 백로그(Sprint Backlog)

스프린트 각각의 목표에 도달하기 위해 필요한 작업 목록이다.

  • 세부적으로 어떤 것을 구현해야 하는지
  • 작업자
  • 예상 작업 시간

이를 통해 최종적으로 개발이 어떻게 진행되고 있는지 상황 파악 가능하다.

3. 스프린트(Sprint)

작은 단위의 개발 업무를 단기간 내에 전력질주하여 개발하는 것이다.
예를 들어, 한달동안의 큰 계획을 3~5일 단위로 반복 주기를 정했다면 이것이 스크럼에서 스프린트에 해당한다.

주기가 회의를 통해 결정되면 (보통 2주 ~ 4주) 목표와 내용이 개발 도중에 바뀌지 않아야 하고, 팀원들 동의 없이 바꿀 수 없는 것이 원칙이다.

4. 일일 스크럼 회의

스크럼을 하는 동안에 진행하는 회의이며, 몇가지 규칙이 있다.

  1. 모든 팀원이 참석
  2. 매일 실시
  3. 가능한 짧게(최대 15분)
  4. 진행 상황 점검

회의에서는 한사람씩 어제 한 일, 오늘 할 일, 문제점 및 어려운 점을 이야기한다.
회의를 통해 완료된 세부 작업 항목을 스프린트 현황판에서 업데이트 시켜 진행 상황을 업데이트 시킨다.

5. 제품완성 및 스프린트 검토 회의

모든 스프린트 주기가 끝나면, 제품 기능 목록에서 작성한 제품이 완성된다.
최종 제품이 나오면 고객들 앞에서 시연을 통한 스프린트 검토 회의 진행한다.

  • 고객의 요구사항에 얼마나 부합했는가?
  • 개선점 및 피드백

6. 스프린트 회고

스프린트에서 수행한 활동과 개발한 것을 되돌아보며 개선점이나 규칙 및 표준을 잘 준수했는지 검토한다.

팀의 단점보다는 강점과 장점을 찾아 더 극대화하는데 초점을 둔다

스크럼 원칙

스크럼을 적용하고 활용하는 데 도움이 되는 6가지 원칙이 존재한다.

  1. 경험적 프로세스 관리
    • 투명성, 점검, 적응을 중시하며 프로세스 관리를 관리한다.
  2. 자기 주도적 개발
  3. 협업
  4. 가치 기반 우선순위 지정
  5. 타임박싱(Timeboxing)
    • 스크럼 프로세스에는 스프린트, 일일 스탠드업, 회고와 같은 다양한 시간 기반 활동이 있다. 따라서 업무 시간을 정하는 것이 중요하다.
  6. 반복적 개발

스크럼 가치

스크럼을 성공적으로 활용하려면 아래 5가지 주요 스크럼 가치를 준수해야한다.

  1. 약속
    • 스크럼 팀은 하나이며, 팀 멤버들은 서로를 신뢰해야 한다.
    • 스크럼 팀 멤버들은 이 기간 동안 스프린트에 전념할 것을 약속해야한다.
  2. 용기
    • 스크럼 중에 팀은 정확한 해답이 없는 어려운 문제에 직면할 수 있다.
    • 최선의 솔루션에 도달하기 위해 열린 마음을 가지고 어려운 질문을 던지고 솔직하게 답하는 용기를 가져야 한다.
  3. 집중
    • 스크럼 스프린트를 수행할 때 제품 백로그에서 업무를 수행한다.
    • 스프린트가 끝날 때까지 결과물을 완료하기 위해 백로그에서 선택한 업무에 집중해야한다.
  4. 열린 마음
    • 배울 수 있고 제품이나 프로세스를 개선하는 데 도움이 되는 새로운 아이디어와 기회에 열린 마음을 가져야 한다.
  5. 존중
    • 협업은 스크럼의 핵심이다.
    • 팀의 협업을 지원하기 위해 다른 멤버, 스크럼 마스터, 스크럼 프로세스를 존중해야 한다.

스크럼의 장점 및 단점

장점

  1. 스프린트마다 생산되는 실행 가능한 제품을 통해 사용자와 의견을 나눌 수 있음
  2. 회의를 통해 팀원들간 신속한 협조와 조율이 가능
  3. 자신의 일정을 직접 발표함으로써 업무 집중 환경 조성
  4. 프로젝트 진행 현황을 통해 신속하게 목표와 결과 추정이 가능하며 변화 시도가 용이함

단점

  1. 추가 작업 시간이 필요함 (스프린트마다 테스트 제품을 만들어야하기 때문)
  2. 15분이라는 회의 시간을 지키기 힘듬 ( 시간이 초과되면 그만큼 작업 시간이 줄어듬)
  3. 스크럼은 프로젝트 관리에 무게중심을 두기 때문에 프로세스 품질 평가에는 미약함

스크럼 요약

  • 스크럼 모델은 에자일(Agile) 개발 방법론 중 하나이다.
  • 회의를 통해 스프린트 개발 주기를 정한 뒤, 이 주기마다 회의 때 정했던 계획들을 구현해나간다.
  • 하나의 스프린트가 끝날 때마다 검토 회의를 통해, 생산되는 프로토타입으로 사용자들의 피드백을 받으며 더 나은 결과물을 구현해낼 수 있다.

참고 자료
https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Software%20Engineering/%EC%95%A0%EC%9E%90%EC%9D%BC(Agile).md
https://asana.com/ko/resources/what-is-scrum
https://salaryblues.tistory.com/9

0개의 댓글