[TIL] 여러 개발 방법 용어들

시온·2023년 7월 12일
0

TIL

목록 보기
4/7
post-thumbnail

<출근했더니 스크럼 마스터가 된 건에 관하여> 라는 책을 읽고 알게 된 점을 정리해보았습니다.

애자일 방법론

애자일은 다음과 같은 방법을 적용하여 소프트웨어를 개발하는 방식을 의미한다.

  • 목적을 달성하기 위해 모든 관계자가 긴밀하게 협업한다.
  • 한 번에 전체를 완성하기보다 조금씩 만들되, 조기에 동작시켜 피드백을 받는다.
  • 사용자나 관계자의 피드백을 바탕으로 결과물과 계획을 지속적으로 보완한다.

애자일 방법론에는 다양한 기법이 존재한다. 스크럼, 익스트림 프로그래밍, 칸반 등이 있다.

스크럼

스크럼은 애자일 개발 기법의 하나로 일하는 절차와 지켜야 할 규칙이 최소한으로 정의된 프레임워크이다.

  • 3가지 역할(role), 5가지 활동(event), 3가지 산출물(artifact)

1. 프로덕트 백로그

요구사항을 목록으로 정리한 것.

  • 구현하고 싶은 것을 목록으로 만든다.
  • 항목은 언제든지 추가, 삭제할 수 있다.
  • 우선순위에 맞춰 정렬한다.
  • 우선순위가 높은 항목부터 작업량을 추정한다.
  • 정기적으로 항목의 순서나 내용, 작업량을 보완한다.

2. 프로덕트 오너 (PO)

프로덕트 백로그를 관리하는 사람. 제품 책임자라고도 함.

  • 제품의 What을 담당한다.
  • 제품의 가치를 극대화한다.
  • 1개의 제품에 1명의 프로덕트 오너를 둔다.
  • 프로덕트 백로그를 관리한다 (우선순위, 완료 여부)
  • 개발자와 상의하되 간섭하지 않는다
  • 이해관계자와 협업한다

3. 개발자

프로덕트 백로그에 등록된 내용을 순서대로 하나씩 구현하는 사람.

  • 제품의 How를 담당한다
  • 제품을 동작하게 만든다
  • 팀원은 3명에서 9명 정도가 적절하다
  • 팀원의 역량이 곧 제품 개발 능력이다
  • 특수 목적의 보조 팀을 두지 않는다

4. 스프린트

전체 작업 기간을 짧은 간격 (1주 ~ 1달) 으로 쪼갠 각각의 작업 기간을 의미함. 즉, 하나의 스프린트는 1주 ~ 1달로 이루어져 있다. 단, 스프린트 길이는 일관성을 유지해야 함.

  • 프로젝트를 짧은 주기로 나눠서 진행한다.
  • 각 주기는 같은 간격이며 1달을 넘기지 않는다
  • 하나의 주기를 스프린트라고 부른다
  • 스크럼의 활동 중 가장 큰 덩어리로 다른 4가지 활동을 포함한다

5. 스프린트 플래닝, 스프린트 백로그

스프린트 플래닝: 각 스프린트에 맞춰 할 일을 계획하는 것.

  • 계발계획 수립을 위한 착수 회의
  • 스프린트 기간 동안 할 일을 계획한다
  • Why: 왜 하는지 생각한다
  • What: 무엇을 할지 생각한다
  • How: 어떻게 할지 생각한다

스프린트 백로그: 프로덕트 백로그에서 일감을 가져와 스프린트에서 할 일 목록을 별도로 만든 것

  • 프로덕트 백로그에서 작업할 항목을 고른다
  • 실행 가능하게 작업을 구체화한다
  • 작업을 추가하거나 삭제할 수 있다
  • 하루 안에 끝나는 크기로 분할한다

6. 인크리먼트

스크럼에서 스프린트 기간 중 작업한 결과물. 실제로 동작시키면서 점검하게 된다.

  • 개발자는 백로그를 작업한 결과로 동작하는 제품을 만든다
  • 이전 스프린트의 결과물에 이번 스프린트의 결과물이 더해진다
  • 결과물은 릴리즈 여부와 상관없이 동작하고 점검받을 수 있어야 함

7. 데일리 스크럼

스프린트 백로그에 등록된 작업을 하며 진행 상황을 매일 점검하는 것

  • 목표 달성에 문제가 없는지 진행 상황을 점검한다
  • 문제를 해결하기보다 문제가 발생한 상황에 집중한다
  • 매일 하되 15분의 타임박스를 지킨다
  • 이야기가 길어지면 회의를 따로 잡는다

이때, 15분의 타임박스를 넘지 않는 것이 중요함. 데일리 스크럼은 문제를 해결하기 위한 모임이 아니라 상황을 공유하기 위한 모임이기 때문이다.

8. 스프린트 리뷰

스프린트가 끝나고 프로덕트 오너가 주관하여 스프린트 결과를 점검하는 것.

  • 프로덕트 오너가 주관하고 이해관계자가 참석한다
  • 개발자가 만든 결과물을 이해관계자에게 시연한다
  • 피드백을 받고 프로덕트 백로그를 재점검한다
  • 완성된 것과 완성되지 않은 것을 구분한다
  • 전체 진행 상황과 남은 작업을 점검한다

9. 스프린트 회고 (retrospective)

스프린트 막바지에 회고를 하며 어려움은 없었는지, 개선할 점은 없었는지 돌아보고 다음에 시도할만한 개선 사항 몇 가지를 뽑는다.

  • 일하는 방식을 개선한다
  • 사람, 관계, 프로세스, 툴의 관점에서 스프린트를 점검한다
  • 버그를 고치기보다 버그를 유발하는 작업 방식에 집중한다
  • 한 번에 너무 많은 것을 고치려 하지 않는다
  • 잘 된 점과 안 된 점을 정리한다
  • 다음 스프린트에서 실천할 실행 항목을 뽑는다

+ a. 스크럼 마스터

스크럼 과정이 원활하게 진행될 수 있게 프로덕트 오너와 개발자를 돕는 조력자.

  • 스크럼이라는 프레임워크가 자리잡게 만든다
  • 일하는 데 방해되는 요소를 제거한다
  • 봉사하는 마음으로 팀을 지원한다
  • 퍼실리테이터와 코치 역할을 겸비한다
  • 업무 할당이나 진척 관리를 하지 않는다

몹 프로그래밍

몹 프로그래밍 (mob programming) 이란 팀원 모두가 함께 모여 같은 일을, 같은 시간에, 같은 공간에서, 같은 컴퓨터로 개발하는 방법을 의미한다.

여러 명이 모여 같은 화면을 보면서 의논하거나 아이디어를 주고받으며 진행한다.

profile
끊임없이 성장중

0개의 댓글