스크럼 101
출근했더니 스크럼 마스터가 된 건에 관하여 - 니시무라 나오토
애자일 소프트웨어
애자일 선언문
- 목적을 달성하기 위해 모든 관계자가 긴밀하게 협조
- 한번에 전체를 완성하기 보다 조금씩 만들되, 조기에 동작시켜 피드백 받음
- 사용자나 관계자의 피드백을 바탕으로 결과물과 계획을 지속적으로 보완
스크럼
- 가치와 위험도, 필요성을 기준으로 요구사항을 정렬
- 순서대로 구현하며 성과를 극대화
- 정해진 시간 안에 작업을 완료 - 타임박스(timebox)
- 현재 상태와 문제점을 명확하게 밝힘 - 투명성(transparency)
- 개발할 제품과 진척에 이상은 없는지 수시로 확인 - 점검(inspection)
- 더 나은 방법으로 작업 방식 개선 - 보완(adaptation)
3가지 역할, 5가지 활동, 3가지 산출물
스크럼을 프레임워크라고 부르는 특징
스크럼가이드 :: 한글PDF
산출물 #1 프로덕트 백로그
- 구현하고 싶은 것을 목록으로 만듦
- 항목은 언제든지 추가, 삭제 가능
- 우선순위에 맞춰 정렬
- 우선순위가 높은 항목부터 작업량을 추정
- 정기적으로 항목의 순서나 내용, 작업량을 보완
사용자 스토리
제품의 요구 사항을 사용자
관점에서 누가
, 어떤 목적으로
, 무엇을 하길 원한다
와 같은 형식으로 작성
역할 #1 프로덕트 오너
- 제품의 What을 담당
- 제품의 가치 극대화
- 1개의 제품에 1명의 프로덕트 오너
- 프로덕트 백로그 관리(우선순위, 완료)
- 개발자와 상의하되 간섭 X
- 이해관계자와 협업
프로덕트 오너 업무
- 거시적 관점 계획
- 제품의 비전 명확히 하고 주변과 공유
- 제품을 만드는데 소요되는 예산 관리
- 프로덕트 백로그 최신 상태 업데이트
- 다른 사람이 프로덕트 백로그를 이해할 수 있도록 설명
- 이해관계자와 프로덕트 백로그를 검토하고, 납기나 구현 순서 상의
- 프로덕트 백로그의 각 항목이 완료 되었는지 점검
역할 #2 디밸로퍼
- 제품의 How를 담당
- 제품을 동작하게 만듦
- 팀원은 3 ~ 9명 정도 적절
- 팀원의 역량이 곧 제품 개발 능력
- 특수 목적의 보조 팀을 두지 않는다.
기능횡단팀(cross functional team)
스크럼 시 요구 분석팀
이나, 테스트 팀
같이 특정 업무만 전담하는 보조팀을 두지 않습니다.
자기 관리화(self-managing)
- 개발자 스스로 책임지고 개발 완료
- 개발팀 내의 의사 결정은 개발자 상호 간의 합의
- 작업 방식에 대한 외부 간섭 X
활동 #1 스프린트
- 프로젝트를 짧은 주기로 나눠서 진행
- 각 주기는 같은 간격이며 1달을 넘기지 않는다
- 하나의 주기를 스프린트라 부름
- 스크럼의 활동 중 가장 큰 덩어리로 다른 4가지 활동을 포함
활동 #2 스프린트 플래닝
질주 계획
- 개발계획 수립을 위한 착수 회의
- 스프린트 기간동안 할 일을 계획
- Why: 왜 하는지 생각 - 목표
- What: 무엇을 할지 생각 - 일감 선택 & 구체화
- How: 어떻게 할지 생각 - 스프린트 백로그
산출물 #2 스프린트 백로그
- 프로덕트 백로그에서 작업 항목 선택
- 실행 가능하게 작업을 구체화
- 작업을 추가하거나 삭제
- 하루안에 끝나는 크기로 분할
산출물 #3 인크리먼트
이전 스프린트의 결과물에 이번 스프린트의 작업 결과가 더한 개발의 증가분 의미하며, 결과물은 소프트웨어이고 스프린트 종료 시점에 점검하도록 동작 가능한 상태여야 합니다.
- 개발자는 백로그를 작업한 결과로 동작하는 제품을 만듦
- 이전 스프린트의 결과물에 이번 스프린트의 결과물이 더해 짐
- 결과물은 릴리스 여부와 상관없이 동작하고 점검받을 수 있어야 함
완료 조건(예제)
- 위키 문서에 제품 명세 등록, 위키 문서에 관련 자료 등록
- 리포지터리에 소스 코드 등록
- 모든 public 메소드의 테스트 코드 구현, 모든 테스트 코드 성공
- 소스코드를 빌드하고 시연
활동 #3 데일리 스크럼
진행 상황 점검 활동
- 목표 달성에 문제가 없는지 진행 사항 점검
- 문제를 해결하기보다는 문제가 발생한 상황에 집중
- 매일 하되, 15분의 타임 박스를 지켜야 함
- 이야기가 길어지면 회의를 따로 잡음
질문에 답하며 상황 공유
스프린트가 순항하고 있는지, 작업의 진척에는 문제가 없는지, 도와줘야 할 일이 무엇인지 점검
- 스프린트 목표를 달성하기 위해 어제 할 일은 무엇인가?
- 스프린트 목표를 달성하기 위해서 오늘 할 일은 무엇인가?
- 스프린트 목표를 달성하는 데 방해가 되거나 도움이 필요한 일은 무엇인가?
활동 #4 스프린트 리뷰
스프린트 리뷰를 할 때, 제품의 이해관계자인
스테이크홀더
가 초대되며, 작업된 결과물을 점검하면서 그에 대한 피드백을 얻음
- 프로덕트 오너가 주관하고 이해관계자가 참석
- 개발자가 만든 결과물을 이해관계자에게 시연
- 피드백을 받고 프로덕트 백로그를 재점검
- 완성된 것과 완성되지 않은 것을 구분
- 전체 진행 상황과 남을 작업을 점검
시연과 피드백 이외에 해야 할 일
- 제품과 비즈니스 환경에 대해 설명
- 스프린트 중에 완료하지 못한 것을 설명
- 스프린트 중에 직면했던 어려움과 해결 과정 설명
- 프로덕트 백로그에 새로 추가할 게 있는지 논의
- 예상되는 잠재위험에 대해 논의
- 현재 진척 상황을 감안하여 작업 완료 시점이나 릴리즈 날짜를 예측
활동 #5 스프린트 레트로스펙티브(회고)
- 일하는 방식을 개선
- 사람, 관계, 프로세스, 툴의 관점에서 스프린트 점검
- 버그를 고치기보다 버그를 유발하는 작업 방식에 집중
- 한 번에 너무 많은 것을 고치려 하지 않음
- 잘된 점과 안된 점을 정리
- 다음 스프린트에서 실천할 항목을 뽑음
역할 #3 스크럼 마스터
- 스크럼이라는 프레임워크가 자리 잡게 도움
- 일하는 데 방해되는 요소 제거
- 봉사하는 마음으로 팀을 지원(서번트 리더쉽)
- 퍼실리테이터와 코치 역할 겸비
- 업무 할당이나 진척 관리 하지 않음
스크럼 마스터가 하는 추가적인 일
- 프로덕트 오너와 개발자에게 애자일 개발과 스크럼을 알려줌
- 스프린트 플래닝이나 스프린트 회고 진행을 도움
- 프로덕트 오너와 개발자의 커뮤니케이션 도움
- 프로덕트 오너와 개발자의 생산성이 높아지도록 변화를 꾀함
- 프로덕트 백로그와 스프린트 백로그를 잘 쓰는 방법을 알려줌
- 프로덕트 백로그와 스프린트 백로그를 잘 관리하는 방법을 알려줌
스크럼의 5가지 가치
- 확약 : 목표를 달성하기 위해 전력을 다할 것을 굳게 약속
- 전념 : 목표를 달성하기 위해 각자가 맡은 일에 집중
- 공개 : 모든 상황과 문제를 투명하게 공유
- 존중 : 팀원의 역량과 존재 가치를 존중
- 용기 : 옳은 일을 한다는 용기로 어려움 극복
Q&A
토론해보아요~
스크럼은 종착지를 알아야 달릴 수 있다.
- 목표 : 실현해 주기를 바라는 것은 무엇인가?
- 과제 : 달성해 주기를 바르는 것은 무엇인가?
엘리베이터 피치 인셉션 덱
투자자가 엘리베이터에서 내리기 전의 아주 짧은 시간(15 ~ 30초) 안에 제품을 설명하는 기법
- [영업의 달인]은 (projectNm)
- [실시간으로 고객 정보를 확인] 하고 싶은 (need, oppertunity)
- [영업 사원]을 위한 (target customer)
- [업무 지원 앱]입니다. (product category)
- 이 제품은 [외근 중에도 업무]를 할 수 있는데 (key benefit, reason to buy)
- [이전 영업 지원 시스템]과는 달리 (competitive, alternative)
- [최신 정보 알림 기능]이 차별화 포인트 입니다. (primary differentiation)
프로덕트 백로그 #1 요구 사항 열거
제품의
각종 요구 사항
과개선 사항
, 개발에 필요한단순 작업
기능 | 목적 | 설명 | 예상견적 |
---|---|---|---|
일일보고 | 최신 정보를 수집하여 영업 전략을 세움 | 일별로 방문 고객, 일시, 담당자, 제안 정보 입력 | 5 |
로그인 | 대외비 정보 보호를 위함 | 사원번호와 비밀번호로 인증 | 3 |
… | … | … | … |
프로덕트 백로그 #2 사용자 스토리
스토리 | 시연방법 | 견적 |
---|---|---|
난 영업사원인데 / 고객의 상황을 일일 보고로 기록하는 기능이 필요해 / 그건 최신 정보를 수집하여 영업 전략을 세우기 위해서야 | 고객 정보 화면에서 방문 일시와 방문자, 상담 내용, 보고 내용을 등록한다. 확인 화면에서는… | 5 |
난 보안관리자 인데 / 사용자 제한 하는 기능이 필요해. / 그건 대외비 정보가 외부로… | 인증 전에 업무 화면에 들어가면 로그인 화면이 표시.. | 3 |
사용자 스토리
누가(who), 무엇을(what), 왜(why) 하고 싶은지를 쓰면 되는데, 난 [어떤 사용자]인데 / [어떤 기능]이 필요해 / 그건 [어떤 일을 달성] 하기 위해서야.
와 같은 표현 합니다.
일감 분류
- 진짜 중요함
- 좀 중요함
- 필요함
- 있으면 좋고 없어도 그만
일감 기준 작업량 추정
- 쉽게 끝낼 수 있을 것 같다 ( 소 )
- 손이 많이 갈 것 같다 ( 중 )
- 꽤 애를 먹을 것 같다 ( 대 )
작업량 가늠 방안(스토리 포인트 활용)
1,2,3,4,8,13,21,34… 과 같은 피보나치 수
를 활용
벨로시티(velocity)
한 스프린트에서 끝낼 수 있는 포인트 수
언제 끝나는가
구현할 기능의 포인트 총합 / 벨로시티 = 필요한 스프린트 횟수
어떤 결과물이 나오는가
벨로시트 * 스프린트 횟수 = 구현할 수 있는 포인트의 총합
### 스크럼의 3가지 역할 스크럼 오너, 스크럼 마스터, 개발자
5가지 활동
스프린트, 스프린트 계획, 데일리 스크럼, 스프린트 리뷰, 스프린트 회고
3가지 산출물
프로덕트 백로그, 스프린트 백로그, 증가분