애자일 게임 개발(agile game development) - gdc2007
DESCRIPTION
GDC 2007에 있었던 Agile Game Development의 슬라이드 한글 번역 http://betterways.tistory.com/9 참조TRANSCRIPT
강연 : 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