agile의 의미와 agile 계획 수립(gdc2007)

28

Upload: kay-kim

Post on 24-Jan-2015

1.816 views

Category:

Technology


1 download

DESCRIPTION

GDC 2007에서 있었던 Agile Game Development Tutorial의 일부인 'Agile의 의미'와 'Agile 계획 수립'의 한글 번역입니다: 강연자는 Mike Cohn으로, '사용자 스토리'와 'Agile Estimating and Planning'의 저자입니다. Agile 개발에서 (사용자 스토리의) 일정을 추정하는 방법에 대해서 다루고 있습니다. 자세한 것은 http://betterways.tistory.com/177 참조

TRANSCRIPT

Page 1: Agile의 의미와 Agile 계획 수립(Gdc2007)
Page 2: Agile의 의미와 Agile 계획 수립(Gdc2007)

‘Agile 하다 .’ 는 것은어떤 의미인가 ?

(What it means to be agile)

강연 : Mike Cohn, Mountain Goat Software

www.mountaingoatsoftware.com

번역 : 김기웅 ([email protected]) betterways.wo.to

Page 3: Agile의 의미와 Agile 계획 수립(Gdc2007)

규정된 프로세스(A defined process)

규정된 프로세스규정된

프로세스

•작업자는 모든 작업 (task) 을 완전히 이해한다 .

•규정된 입력이 주어지면 , 매번 같은 결과가 산출된다 .

Page 4: Agile의 의미와 Agile 계획 수립(Gdc2007)

게임 개발을 규정된 프로세스라고 할 수 있을까 ?(Is game development a defined process?) 모든 업무를 완전히 이해하고 있는가 ?

혹은 그 비슷하게라도 되어가고 있는가 ? ( 인력을 포함해서 ) 정확히 같은 입력이

주어진다 . 매번 같은 결과가 나올까 ? 정확히 같은 입력이 주어지기는 하는가 ?

Page 5: Agile의 의미와 Agile 계획 수립(Gdc2007)

Project noise level

단순함

혼란함무질서

복잡

기술

요구

사항

계약과 다름

계약과 같음

확실

불확

Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.

프로젝트 잡음 수준(Project noise level)

Page 6: Agile의 의미와 Agile 계획 수립(Gdc2007)

경험적인 프로세스 통제(Empirical process control)

다음과 같은 경우에 유용하다 : 어떤 프로세스가 항상 같은 결과를 내놓을

것이라는 확신을 줄 수 없을 때 복잡도나 잡음 수준이 아주 높아서 프로세스가

의도한 것과는 다른 결과물을 야기시킬 때 예기치 않은 불상사를 예측한다 . 수 차례 ‘시험하고 , 적용하는 과정

(inspection and adaptation)’ 을 통해 통제한다 .

Page 7: Agile의 의미와 Agile 계획 수립(Gdc2007)

경험적인 모형(Empirical model)

•요구사항•기술•개발팀

입력

프로세스(Process)

프로세스(Process)

통제(Control)

• 잠재적으로 배포 가능한 제품의 증가분

출력

Page 8: Agile의 의미와 Agile 계획 수립(Gdc2007)

세 가지 핵심 단어(Three key words)

시험과 적용(Inspect and Adapt)

Page 9: Agile의 의미와 Agile 계획 수립(Gdc2007)

Agile 이란 무게 중심의 변화이다(Agile is about shifting the balance)

적응(Adaptation)

예측(Anticipation)

Agile

Page 10: Agile의 의미와 Agile 계획 수립(Gdc2007)

절차와 도구 개인과 상호작용

Agile 선언문(The Agile Manifesto)

작동하는 소프트웨어

고객과의 협력

변화에 대한 대응

포괄적인 문서

계약과 협상

계획에 대한 맹종

보다

보다

보다

보다

Page 11: Agile의 의미와 Agile 계획 수립(Gdc2007)

Agile 계획 수립(Agile Planning)

강연 : Mike Cohn, Mountain Goat Software

www.mountaingoatsoftware.com

번역 : 김기웅 ([email protected]) betterways.wo.to

Page 12: Agile의 의미와 Agile 계획 수립(Gdc2007)

상상해보세요 ...여러분은 소프트웨어 개발이 지긋지긋해져

서 ,조경 사업에 뛰어 들기로 결정했습니다 .

당신의 첫 번째 일은 앞뜰에 쌓인 이 자갈 더미를 뒷마당으로 옮기는 겁니다 .

Page 13: Agile의 의미와 Agile 계획 수립(Gdc2007)

얼마나 걸릴지 어떻게 알 수 있을까 ?(How might you estimate this?)

한 가지 방법 :

자갈 더미를 보고 손수레 대략 몇 대 분량일지를 추정한다 .

한 시간 후 , 얼마나 옮겼는지를 확인해서 , 총작업 시간을 추정한다 .

•손수레로 80 대 분으로 추정 .•한 시간 후 , 20 대 분을 옮김 .•따라서 총 4 시간 이후 완료 예상 .

Page 14: Agile의 의미와 Agile 계획 수립(Gdc2007)

자갈 나르기(My landscaping)

손수

레 적

재량

시간

Page 15: Agile의 의미와 Agile 계획 수립(Gdc2007)

22

2233

33 33

22

주기 (iteration) 란 짧지만 고정된 길이의 시간 간격을 말한다 .

일반적으로 1~4 주이다 .

주기 (iteration) 란 짧지만 고정된 길이의 시간 간격을 말한다 .

일반적으로 1~4 주이다 .

22

44

3322

1122

2

23

3 3

2

한 회분의 출시 (A release) 는 보통 한 번 이상의 주기들로 구성된다 .

한 회분의 출시 (A release) 는 보통 한 번 이상의 주기들로 구성된다 .

속도 (Velocity)는 한 주기에서 목표로 하거나 완료된 업무의 양을 가리킨다 .

속도 (Velocity)는 한 주기에서 목표로 하거나 완료된 업무의 양을 가리킨다 .

Page 16: Agile의 의미와 Agile 계획 수립(Gdc2007)

각 단계들을 연관 지어보기(Relating the different planning levels)

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

3

5

5

2

2

“ 어제 UI 를 시작했으니까 ,

오늘중으로 완료해야겠군 .”

UI 코딩 8테스트 대상 작성 6

중간 계층 코딩 12

테스트 작성 5

테스트 자동화 4

Product Backlog Iteration Backlog

Page 17: Agile의 의미와 Agile 계획 수립(Gdc2007)

사용자 스토리 점수(Story points)

오늘날 Agile 팀에서 가장 많이 사용되는 추정 단위 용어는 요구 사항을 “ 사용자 스토리” 로 표현한 데서

유래 .

해당 업무의 크기와 복잡도에 기초하여 부과

절대적인 측정 단위는 아니지만 , 수치적으로 상대적인 추정이 가능함 .

10 점짜리 사용자 스토리는 5 점짜리보다 두 배의 시간이 걸릴 것이다 .

Page 18: Agile의 의미와 Agile 계획 수립(Gdc2007)

이 자갈 더미들이 업무라고 가정해보자(Consider these two piles of work)

이 자갈 더미들에 각각 몇 점을 매겨야 할까 ?

Page 19: Agile의 의미와 Agile 계획 수립(Gdc2007)

Zoo points

이 동물들에게 “ zoo points” 를

매겨보자 사자캥거루코뿔소

곰기린

고릴라하마

호랑이

Page 20: Agile의 의미와 Agile 계획 수립(Gdc2007)

사용자 스토리 점수로 추정할 때의 3가지 주요 장점들 :

1. 상대적인 추정을 사용하도록 강요한다 .• 여러 연구들이 인간은 상대적인 추정에 더 강하다는

점을 보여주고 있다†

2. 작업 기간이 아닌 크기에 초점을 맞추도록 해준다 .

• 기간은 , 나중에 한 주기당 어느 정도를 완료했는지를 살핌으로써 , 경험적으로 산출할 수 있다 .

3. 추정치들을 서로 합산할 수 있다 .• 반면 , [ 물리적인 ] 시간을 기준으로 추정을 하게 될

경우 , [누가 그 일을 하느냐에 따라 소요되는 시간이 달라지기 때문에 전체 작업의 크기를 추정하기 위한 ] 합산이 불가능하다 .

†Lederer and Prasad, 1998. A Causal Model for Software Cost Estimating Error and Vicinanza et al., 1991. Software Effort Estimation: An Exploratory Study of Expert Performance.

Page 21: Agile의 의미와 Agile 계획 수립(Gdc2007)

각 단계마다 동일한 추정 단위 사용하기(Comparing apples to apples)

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

3

5

5

2

2

“ 어제 UI 를 시작했으니까 ,

오늘중으로 완료해야겠군 .”

UI 코딩 8테스트 대상 작성 6

중간 계층 코딩 12

테스트 작성 5

테스트 자동화 4

Product Backlog Iteration Backlog

30

50

50

20

20

Page 22: Agile의 의미와 Agile 계획 수립(Gdc2007)

Planning poker 추정법(Planning poker for estimating)광대역 델파이 기법 (Wideband Delphi) 을 바탕으로 일정을 추정하는 반복적인 접근법

순서1. 각 추정자들은 카드를 한 벌씩 받는다 . 각 카드에는

사전에 합의된 유효한 추정치가 하나씩 적혀 있다 .

2. 고객 /제품주가 사용자 스토리 하나를 읽으면 , [모든 참가자들은 ] 거기에 대해서 간단히 토론한다 .

3. 각 추정자들은 자신의 추정치에 가장 가까운 카드를 고른다 .

4. 그런 다음 , 모두가 볼 수 있도록 카드를 뒤집는다 .

5. 차이점 ( 특히 최소 /최대값의 차이점 ) 을 토론한다 .

6. 추정치가 하나로 몰릴 때까지 다시 추정한다 .

Page 23: Agile의 의미와 Agile 계획 수립(Gdc2007)

201385321

Planning poker 추정법 - 예

추정자 제 1회 제 2회

수잔 3 5

바딤 8 5

앤 2 5

크리스 5 8

Page 24: Agile의 의미와 Agile 계획 수립(Gdc2007)

출시 계획 수립 (Release Planning)

출시 계획안

Sprint 1Sprint 1 Sprint 2Sprint 2 Sprint 3Sprint 3 Sprints 4–7Sprints 4–7

출시 계획 회의

Page 25: Agile의 의미와 Agile 계획 수립(Gdc2007)

자갈 나르기는 어떻게 되어가나 ?(How’s my landscaping coming?)

0

20

40

60

80

0900 1000 1100 1200 1300

손수

레 적

재량

시간

이것이 바로 소멸 차트다 .

Page 26: Agile의 의미와 Agile 계획 수립(Gdc2007)

각 단계들을 기억하고 있는가 ?(Remember the different levels?)

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

단골로서 , 나는 …을 원한다 .

3

5

5

2

2

“ 어제 UI 를 시작했으니까 ,

오늘중으로 완료해야겠군 .”

UI 코딩 8테스트 대상 작성 6

중간 계층 코딩 12

테스트 작성 5

테스트 자동화 4

Product Backlog Iteration Backlog

우리는 각 단계별로 소멸 상황을 추적할 수 있다 .

Page 27: Agile의 의미와 Agile 계획 수립(Gdc2007)

주기 소멸 차트 (An iteration burndown chart)

0

200

400

600

800

1,000시

4/2

9/0

2

5/6

/02

5/1

3/0

2

5/2

0/0

2

5/2

4/0

2

Page 28: Agile의 의미와 Agile 계획 수립(Gdc2007)

출시 소멸 차트(A release burndown chart)

0

200

400

600

800

1,000

1 2 3 4 5 6 7

사용

자 스

토리

점수