개발기록장

[etc] Agile, Scrum, Sprint 간단 정리 본문

TIL/etc

[etc] Agile, Scrum, Sprint 간단 정리

yangahh 2021. 4. 26. 17:35

 

 

프로젝트를 진행하면서 'Agile 하게 진행하였으며..', 'Sprint 단위로 일정을 조율하고...' 등 대충 느낌만 알고 써왔던 단어들의 정의를 명확히 해야 할 필요성을 느껴서 간단하게 정리해보았다.

 


1. Agile

1) 내가 정리한 Agile의 의미

  • 애자일은 소프트웨어 방법론 중 하나이다. 방법론은 쉽게 말해 '일하는 방식'을 말한다.
  • Agile의 사전적 의미는 민첩한, 기민한, 재빠른, 날렵한 이다.
  • 무엇에? 변화에. 즉, 변화(변경사항 등)에 민첩하게, 빠르게 대응하며 소프트웨어 개발을 하기 위한 방법론이다.
  • 애자일 방식은 일을 빠르게 하는 방식이라는 의미가 아니다. 작은 사이클을 반복하여 최소 기능 제품(MVP: Minimum Viable Product)을 진화시켜 나가는 과정이다. 최종 결과는 기존에 많이 사용하던 방식인 Waterfall(폭포수 모델) 방식과 비슷할 수 도 있고, 더 빠를 수도, 더 느릴 수도 있다.

 

2) Agile vs Waterfall

- Waterfall 방법론

  • Waterfall(폭포수 모델)은 전통적인 소프트웨어 개발 방법론이다.
  • 아래 그림과 같이 개발 단계가 위에서부터 아래로 폭포에서 물 떨어지듯이 순차적으로 진행되어서 이름이 waterfall 이다.

  • 요구사항 분석 ➡️ 설계 ➡️ 구현 ➡️ 검증(테스트) ➡️ 유지보수 순으로 진행된다.
  • wrterfall 모델에서는 앞 단계의 일이 끝나지 않으면 뒤 단계를 수행할 수 없기 때문에 요구사항이 변경된 경우 시간과 비용이 매우 많이 늘어난다.
소프트웨어 개발 초기에 적절히 사용된 시간은 생명 주기(lifecycle)의 후기에 큰 경제적 영향을 줄 수 있다. 다시 말하면, 경제학적 관점에서 소프트웨어 개발의 초기(요구사항 기술 또는 설계 단계)에 발견된 버그는 후기에 발견된 것에 비해 고치는 시간과 돈, 그리고 노력이 몇 배는 적게 들기 마련이다. 관련하여 스티브 맥코넬은 그의 저서, "Rapid Development"에서 "요구사항 상의 결함이 구현이나 유지보수 단계에까지 발견되지 않고 남아 있을 경우, 이를 수정하는 비용은 요구사항 기술 시에 수정하는 것에 비해 최소 50배에서 최대 200배까지 드는 것"으로 예측했다.

출처: 폭포수 모델 위키

 

- Agile vs Waterfall 비교

  Agile Waterfall
장점 - 빠른 주기안에 반복적으로 결과물이 나오기 때문에 요구사항의 변화와 문제점을 빠르게 파악할 수 있다
- 파악된 문제점을 초기에 해결할 수 있다
- 전체 과정이 S/W 생명주기와 일치하여 이해하기 쉽다
- 각 진행 단계별 산출물(문서)이 확실하여 진행 중 또는 진행 이후에도 관리가 용이하다
단점 - 실용적인 측면에서 개발하기 때문에, 체계화된 문서가 적을 수 있다
- 너무 빈번한 수정이 발생할 수 있다
- 각 단계가 종결되야 다음 단계가 진행 가능하다
- 개발 중 요구사항 반영이 어렵다
- 실제 작동하는 소프트웨어는 개발 후반부에 확인할 수 있다. 때문에 고객의 피드백을 반영하기 어렵다

 

 

2. Scrum

1) 내가 정리한 Scrum의 의미

  • 스크럼은 애자일을 잘 활용하기 위한 도구이다.
  • 스크럼 방식의 주요 프로세스는 다음과 같다.
    • 개발할 제품에 대한 전체 백로그를 작성한다. (제품 백로그)
    • 스프린트 단위를 정한다. 스프린트란 작은 기능 하나에 대한 계획, 개발, 테스트, 기능 완료를 수행하는 주기를 말한다.
    • 제품의 우선순위에 따라 팀과 조율하여 이번 스프린트의 목표를 정한다.
    • 스프린트 목표를 구현 가능하도록 스프린트 백로그를 작성한 뒤 작업을 할당한다.
    • 매일 정해진 시간에 15분 정도의 시간 동안 각자 수행한 업무에 대한 내용과 블로커 등을 공유한다.
    • 하나의 스프린트가 끝나면 스프린트 리뷰/회고를 한다.
  • 스크럼 방식의 전체 프로세스는 아래 그림과 같다.

애자일 스크럼 방식의 전체 프로세스

2) 스크럼 방식에서 사용되는 주요 용어

아래는 스크럼 방식에서 사용되는 주요 용어들이다. (참고: 스크럼 위키)

  • 제품 백로그 (Product Backlog)

    : 개발할 제품에 대한 요구 사항 목록. 제품 책임자(PO: Product Owner)가 제품의 기능 및 우선순위에 따라 제품 백로그를 정한다.
  • 스프린트 (Sprint)

    : 반복적인 개발 주기. 보통 1~4주 사이의 기간 동안 스프린트를 진행한다. 계획 회의부터 제품 리뷰가 진행되는 날짜까지의 기간이 1 스프린트다. 스프린트 기간 동안 스크럼을 수행하는 구성원들은 단거리 전력질주(=sprint)를 하듯 집중해서 자신의 업무를 수행한다.

  • 스프린트 계획 회의(Sprint Planning Meeting)

    : 스프린트 목표와 스프린트 백로그를 계획하는 회의

  • 스프린트 백로그(Sprint Backlog)

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

  • 데일리 스크럼 회의(Daily Scrum Meeting)

    : 날마다 진행되는 회의. 회사에 따라 Daily Meeting, Stand-up Meeting 등 다양하게 불린다. 
     어제 한 일, 오늘 할 일, 장애 현상 등을 공유한다. 주로 15분 정도로 짧게 매일 같은 시간에 진행한다.

 

'TIL > etc' 카테고리의 다른 글

[etc] Unit Test란?  (0) 2021.03.08