본문 바로가기
IT정보&정보처리기사

애자일 프로세스 모델 - 스크럼

by Technocrat 2024. 1. 20.

애자일 프로세스 모델은 변경사항에 민첩하게 반응을 할 수 있는 개발방법이다. 아마도 애자일 중 스크럼 방식이 제일 잘 알려진 것 같다. 스크럼 모델에 대해 알아본다.

스크럼은 원래 럭비에서 사용되는 용어이다. 경기가 중단되었다가 다시 시작 할 때, 양쪽편은 서로 스크럼을 짜고 상대 팀에 대항해 밀집대형을 갖춘다. 이후 경기가 시작되면 공격하는 쪽에서 공을 들고 질주(스프린트)를 한다. 상대팀의 인골지역까지 공을 들고 달리다가 땅에 찍으면 득점한다. 물론 상세한 럭비의 규칙은 잘 모르지만, 진행되는 방식을 보면 스크럼이라는 모델의 진행방식이 보인다.

사실 스크럼은 소프트웨어 개발 보다는 프로젝트관리에 중점을 둔 애자일 방법론이다. 

 

스크럼의 진행 과정

단계 절차 내용
1 제품 기능 목록 작성 요구사항 목록에 우선순위를 매기고 제품 개발 기능 목록 작성
2 스프린트 계획 회의 스프린트 구현 목록 작성
스프린트 개발 기간 추정
3 스프린트 수행 스프린트 개발
일일 스크럼 회의
스프린트 현황판 변경
소멸차트 표시
4 스프린트 개발 완료 실행 가능한 최종 제품 생산
5 스프린트 완료 후 스프린트 검토 회의
스프린트 회고
다음 스프린트 계획 회의

 

 

스크럼 용어

- 제품 기능 목록(Product Backlog) : 사용자가 요구하는 제품의 기능 목록이며 제품에 관한 요구사항에는 우선순위가 매겨진다. 제품 책임자가 요구사항 목록에 우선순위를 매겨 제품 기능 목록을 작성한다. 개발중에도 수정이 가능한데 보통은 한 주기가 끝날 때 까지는 수정을 되도록 하지 않는다.

- 사용자 스토리(User Story) : 제품기능 도출 후 각 기능을 간략하게 서술할때 사용하는 방법으로 보통 한장의 인덱스 카드로 작성한다.(포스트잇) 개발자 입장이 아닌 사용자의 입장에서 필요로 하는 내용을 간략하게 기술한다.

- 스토리 포인트(Story Point) : 요구사항의 규모를 측정하는 단위로 업무량을 이용해 산정한다. 스토리 간 업뮤량을 비교해 제일 작은 단위가 1이 되고 이에 대비해 얼마나 일이 많은지로 포인트를 산출한다. 주로 개발자가 산출한다.

- 스프린트(Sprint) : "전력질주"라는 의미에서 알 수 있듯이 작은 단위의 개발 업무를 단기간에(보통 1~4주간 수행) 전력 질주하듯이 수행한다. 

- 스프린트 계획 회의 : 스프린트를 어떻게 수행할 것인지를 계획하는 것으로 크게 두 가지가 있다.

  1) 전체적인 스프린트 계획 회의 : 사용자의 대변인인 제품 책임자가 사용자가 원하는 바를 설명하고 스크럼 마스터는 제품기능목록을 검토하면서 우선순위 확인 팀원들과의 회의를 통해 사용자의 의도를 파악한다.

  2) 세부적인 스프린트 계획 회의 : 우선순위가 높은 항목을 어떻게 구현할 것인지 구체적인 작업 계획을 수립한다. 제품기능 목록에서 개발 항목을 결정하고 구현 목록을 작성한다. 팀원들은 해당 작업을 수행하는데 소요되는 시간을 추정한다.

- 스프린트 구현 목록(Sprint Backlog) : 제품 기능 목록에 있는 스토리 중에서 선택해서 작성되는데 선택 기준은 스프린트 기간 내에 완료할 수 있는만큼의 스토리인지, 실행 가능한 결과물이 나올 수 있는 수준인지이다. 이를 통해 각각의 스프린트 주기에서 개발할 작업목록이 작성 된다. 세부작업 항목, 작업자, 예상작업 시간 등의 정보가 담겨 있다.

- 소멸차트(Burndown Chart) : 계획 대비 작업이 어떻게 진행되고 있는지를 날짜별로 남은 작업의 양으로 나타낸다. 시간이 지남에 따라 차트가 감소한다(남은 작업량을 나타내므로...) 계획그래프와 실제 그래프의 기울기 차이로 계획대비 작업이 얼마나 빠르게 혹은 느리게 진행되고 있는지를 알 수 있다.

- 일일 스크럼 회의(Daily Scrum Meeting) : 스프린트 기간 내내 하는 일단위 회의를 말한다. 15분 내외로 짧게 진행하는데 스프린트 작업 목록의 진행상황점검을 간단히 한다. 한 사람씩 전날 한 일과 당일 할 일을 이야기 한다. 스크럼 마스터는 일의 전체적인 진행상황을 확인하고 소멸차트에 남은 작업량을 표시하며 방해요소를 파악하여 제거해 주는 역할을 한다.

-  스프린트 현황판(Task Board) : 개발팀의 개발현황을 나타낸다. 진척도, 남은 작업 등

- 스프린트 진척관리 : 각 Task별 작업 시간, 남은 시간 등을 기록해 진척관리를 한다. 

- 스프린트 검토회의(Sprint Review) : 하나의 스프린트 반복주기가 끝난 후 생성된 실행가능한 산출물을 시연하고 검토한다. 사용자들은 이를 보고 요구사항에 부합하는지, 개선사항이 무엇인지 등을 피드백한다.

- 스프린트 회고(Sprint Retrospective) : 스프린트에서 수행한 활동과 개발산출물을 살펴보고 잘된 점, 아쉬운 점, 개선할 사항 등을 확인한다.

 

스크럼 관련자 역할

담당자 역할
제품 책임자 제품 기능 목록 작성
비즈니스 관점에서 우선순위와 중요도를 매기고 새로운 항목 추가
스프린트 계획 수립 까지 수행, 팀 운영에는 관여 안함
스크럼 마스터 제품 책임자를 돕는 역할
업무를 배분, 스크럼팀이 스스로 관리할 수 있도록 지원
스크럼의 원칙과 가치를 지킬 수 있도록 지원
개발 과정에 방해요소 파악하여 제거
스크럼 팀 보통 5~6명으로 구성되며 사용자 요구사항을 사용자 스토리로 도출하고 구현
기능을 작업단위로 나누고 일정, 작업속도 등을 추정하여 제품 책임자에게 알려줌
스프린트에서 생산된 결과물을 시연
스크럼 회의에 참석하여 진척상황을 점검

  

스크럼방식의 장점

- 반복 주기마다 생산되는 실행 가능한 제품을 통해 사용자와 의사소통을 원활히 할 수 있다

- 일일 회의를 통해 팀원 간 협조와 조율을 신속히 할 수 있다.

- 일일 회의 시 자신의 일정을 발표함으로써 업무에 집중할 수 있는 환경을 조성 할 수 있다.

- 타 방법론에 비해 실행중심적이다.

- 개발에 방해되는 사항들을 스크럼 마스터를 통해 제거해 나갈 수 있다.

- 프로젝트의 진행현황을 파악하기 쉬우므로 목표관리를 하기 수월하다.

 

스크럼 방식의 단점

- 반복주기마다 실행가능한 산출물을 만들어야 하므로 작업시간이 더 필요하다.

- 일일회의가 길어질 수 있으므로 오히려 매일하는 회의가 작업에 부담이 될 수 있다.

- 투입공수를 측정하지 않아 작업의 효율성을 알 수 없다.

- 프로세스의 품질을 평가하지 않으므로 품질관리 활동이 상대적으로 미약하다.

 

'IT정보&정보처리기사' 카테고리의 다른 글

Cloud Native Computing  (0) 2024.03.03
CNCF  (0) 2024.02.26
교착상태  (0) 2024.01.17
프로세스 동기화 방법  (2) 2024.01.14
프로세스 동기화  (2) 2024.01.14