애자일 게임 개발(Agile Game Development) - GDC2007

Preview:

DESCRIPTION

GDC 2007에 있었던 Agile Game Development의 슬라이드 한글 번역 http://betterways.tistory.com/9 참조

Citation preview

강연 : Clinton Keith, CTO High Moon Studios번역 : 김기웅(Kay Kim) betterways.wo.to

민첩한 게임 개발(Agile Game Development)

게임 개발에 Agile Methodology 적용하기

• High Moon 과 Agile• Agile 이란 무엇이며 , 왜 사용하는가 ?• Agile 기법들 중의 하나인 Scrum 살펴보기• Agile Planning• Agile 사용 결과• Q&A이 강연은 우리의 경험에 대한 것이지 , 게임을

만드는 “ 정도 (the Right way)” 에 대한 것이 아님 .

High Moon 의 Agile

• 작년 Darkwatch 에서 Scrum을 사용• 프로젝트가 정상 궤도에서 벗어나지

않도록 도움을 줌• 최근 2 년간 신규 프로젝트들에

XP 와 Agile planning 을 적용

Agile 이란 무엇인가 ?

• 작고 반복적인 주기들 (iterations) 을 통해 제품을 개발하는 기법• 각각의 주기들은 하나의 짧은 프로젝트와

같음• 프로젝트 계획을 실정에 맞추기 위해서 , “

시험하고 적용하기 (inspect and adapt)” 를 반복함

왜 Agile 을 사용하는가 ?

이유 및 목적 :o 재작업과 철야를 줄이기 위해서o 게임의 재미를 빨리 발견하기

위해서다른 산업들은 더 나은 제품을 더 빨리

개발하기 위해서 Agile 을 사용해왔는데 , 우리도 가능할까 ?

사람과 의사소통

게임 개발을 위한 Agile 헌장

돌아가는 게임

고객과의 협업

변화에 대한 대응

보다

보다

보다

보다

절차와 도구

기획 문서

계약과 협상

계획에 대한 맹종

단순함

복잡

무정부 상태

혼란함

확실 불확실기술

합의

합의에 이르지 못함

요구

사항

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

불확실성이 불필요한 노고를 야기시킬 수 있으며 ,그것은 우리가 사용하는 방법론에 영향을 끼친다

사전 제작

(Preproduction)

제작 (Production)

재미 (fun) 를 먼저 찾아내기

0

20

40

60

80

100

시간

발견된재미의비율

기대치폭포수

기획

E3 데모

사전 제작

제작

알파 / 베타아직도 재미없을까 ?

Scrum 이란 무엇인가 ? ( 동영상 )

Scrum 이란 무엇인가 ?

사람 및 의사 소통

돌아가는 게임

고객과의 협업

변화에 대한 대응

Scrum 이란 무엇인가 ?

자율적

헌신 지향적

반복 / 주기적계획을 맹종하지

않는결과 지향적

관료적이지 않은

모든 것을 가시화하여 , 상식들을 적용할 수 있게 하는 것

협업 중심

Scrum 의 구성

Scrum

Master

고객

제품주

누구나 가능 . ( 팀장이 아님 )

프로그래머

기획자

품질보증

에니메이터아티스트

아티스트

배급사측 프로듀서

마케팅 부서

디렉터

Product Backlog

달성 조건과 함께 사용자 스토리 (User Story) 로 정리달리기

웅크리기

뛰기 제품주에 의해서 우선 순위가 매겨진 Product Backlog

진행 상황을 파악할 수 있도록 사용사 스토리 포인트 (User Story Points) 를 사용하여 추정

달리기

Sprints ( 주기 )

움크리기

뛰기

Sprint

( 정해진 기간 )

게임

해당 Sprint 의 목표

Sprint Backlog 로 나누어짐

새로운 게임( 수직적인 부피 증가 )

변화

달리기

Crouch

검토 및 계획

게임뛰기

검토 및 계획

날기

달리기

일일 Scrum

웅크리기

뛰기

일일 Scrum

게임

날기

상황실 (The War Room)

사용자 스토리 업무 (Tasks) 완료된 업무

소멸 차트 (Burndown Chart)

0

10

20

30

40

50

월 화 수 Thurs

8

16

8

8

8

16

10

0

0신규 업무

4‘ 뛰기’ 애니메이션

4‘ 뛰기’ 최적화

0‘ 뛰기’ 입력 조절

목업무

3

16

16

‘ 뛰기’ 에 대한 사용자 스토리

Sprint Backlog 소멸 차트

0

100

200

300

400

500

600

700

800

Backlog 화된 사용자 스토리

기울기 = 진행 속도

진행 속도를 저해하는 장애물

최종적으로 0 에 도달해야 함

날짜

시간

Scaling Scrum – Scrum 속의 Scrums

팀들

지원 서비스

기능적인 리더쉽

제 1 주 제 2 주 제 3 주 제 4 주 제 5 주

철야 (Crunch)

평상시의 속도

야근시의 속도

민첩한 게임 개발(Agile Game Development )

• 장점들• 고려할 사항들• Agile 을 시작하기• 추가 정보를 얻을 수 있는 곳은 ?

Sprint

출시

우선 순위

높음

낮음

추후 출시

가치

비용

위험

지식

Product Backlog 의 빙산

우선 순위가 낮은 기능들은 제외될 수 있음

Agile 이 주는 이점들• 다음 사항들이 향상됨

• 생산성• 특히 팀장들에게 유리

• 빌드의 신뢰성• 게임의 품질• 사기

• 주인 정신• 상호 협력• 의사 소통

• 저비용 고효율의 관리가 가능해짐• 즉 , ‘ 무슨 일이 벌어지고 있나 ?’ 를 일일이 파악해야

하는 번거로움이 줄어듬 .• 우리가 무엇을 하고 있는가를 끊임없이 확인하고 생각하게 함 . 상식적인 판단을 촉진 .

주의할 점들… .

• 제작 (Production) 은 Agile 이 아님 .• 최소한의 콘텐트가 요구됨 .

• 대규모 팀은 더 많은 리더십을 필요로 함 .• 자율성 (Self-organization) 이 발휘되기 힘듬 .

• 수직적인 깊이 (Vertical slices) 를 더하는 것이 어려움 .• 예측하지 못한 ‘완료되지 않은 작업들’ ( 오류 수정 ,

그래픽 소스 품질 향상 , 최적화 ) 이 누적될 수 있음 .• 출시는 ‘작은 폭포수 (mini-waterfalls)’ 가 될 수 있

음 .• 이러한 점들이 철야 (crunch) 를 야기시킴 .

Agile 을 시작하기

추가 정보를 얻을 수 있는 곳은 ?• www.agilegamedevelopment.com

• 추천 도서• 메일링 리스트 – Agile 도입에 대한 정보를 공유

• 블로그 – Agile 도입에 대한 난관들과 소식들

질문 ?

돌아보기(Retrospectives)• 짧은 사후분석 (Mini postmortems)

• 세 가지 질문들• 팀 : 매 주기마다• 프로젝트 : 매 출시 때마다• 회사 : 매 분기마다

익스트림 프로그래밍 (XP)

기획

개발

알파 / 베타

시간

변화의 비용

WaterfallXP

출시 완료

-300

-200

-100

0

100

200

300

400

500

600

Sprints

Use

r S

tory

Po

ints

Recommended