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