This is the English translation of 애자일 게임 개발 적용 사례.

Note:
  • At this point(May 2nd, 2007), MAIET Entertainment is the only game developer acknowledged using Agile game development in Korea, although there is a rumor telling that other several companies like (some teams in) NC Soft are using it.
  • Don't hesitate to notify me broken English in this translation.

I presented the case study of my project by using Clinton Keith's Agile Game Development translated by Kay Kim and Chang-joon Kim's Agile culture before Dev Rookie's members on  last Sat. (2007/04/28)

Issues;
  • Adopted Agile methodology(esp. Scrum) since Nov. 2006.
  • Started small. (Never try to convert the entire studio overnight.)
  • Adjusted Agile game development to our team, not followed it as dogma.
  • Not forced team members into Agile game development.
  • Tried to build Agile culture first: planning game, penalties, seminars, changing roles and analogue practices.
  • Didn't focus on doing Agile practices, but making a fun game.
  • Continuous trials and errors.
  • Trying to raise the frequency of using Pair Programming and TDD

Scrum;
  • Team size: 10 programmers.
  • Customer: the director of our own.
  • Sprint length: 1 month
  • Sprint planning meetings
  • Daily scrums
  • Reviewed user story every Mon. Short demonstration.
  • Sprint review

Challenges;
  • All the members were not good at Agile game development. (Never trained before.)
  • Had difficulty estimating
  • The scrum team wasn't self-contained. No participation of game designers and artists yet.
  • Less efficient user story reviewed by the customer: caused frequent redos on completed user stories.
  • Members' low motivation toward Agile game development.
  • Communication is still a problem: we need to talk more.

사용자 삽입 이미지

It's almost same as the thing from How to Schedule a Montly Plan, but something were changed;
  • Programmers and game designers wrote user stories together.
  • Wrote detailed tasks of a user story on post-it and post next to the user story.
  • A person in charge of each task wasn't defined in advance, but just before the task began.

사용자 삽입 이미지

Actively utilized a white board and a post-it. The picture above is a scene from  the game design discussion that I, a game designer and a programmer attended.


사용자 삽입 이미지

You can see detailed information about the picture above from Our War Room. The upper part of "Done!" is about the completed tasks in this iteration and the lower part is about the last iteration. Planning "To Do" for this iteration was meaningless for too frequent changes of "To Do". So, we decided to list only the completed tasks in this iteration. (Once we had reported what each team members did in the last iteration, but we replaced the report with the list of completed tasks.)

Added the day tasks began and ended post-its including description, memo, worker, estimates and priority.

사용자 삽입 이미지

The burndown chart of Feb. 2007.


Its velocity was 2.3 based on five-day-iteration, and the problem is unstable velocity.

:
애자일 게임 개발에 자주 사용되는 XP의 중요한 요소 중 하나인 사용자 스토리에 대해 좋은 글이 있어서 Trackback을 합니다.

사용자 스토리   by writely (2007/01/10)

왜 사용자 스토리? by writely (2007/02/12)


참고로 사용자 스토리: 고객 중심의 요구사항 기법이라는 책이 발간되어 있습니다.
:
Dev Rookie의 스터디(04월 28일)에 나왔던 "애자일 게임 개발(Agile Game Development, 이하 AGD)"의 내용이 남기룡 님의 Blog에 게재되었습니다.

NC Soft의 일각에서 사용한다는 소문을 들었을뿐, 현재 외부에 공개된 것으로는 MAIET entertainment가 유일한 사례가 아닌가 싶습니다. (저 자신도 작년부터 시험적으로 사용하고 있지만, 사람들의 반발과 기타 여건상 매우 제한된 것만을 사용하고 있습니다.)


참고로 MAIET의 사례에 대한 다른 글들은 이곳에서 볼 수 있습니다.

마지막으로 수고해주신 남기룡 님께 감사드립니다.
:

<GDC 2007 - Agile Game Development>에서는 Agile이 무엇인지, <게임 개발에 Scrum을 도입하다>에서는 그것이 게임 개발에 미칠 영향을 볼 수 있었습니다.

그렇다면 이제 Agile을 게임 개발에 적용할 때, 겪게 될 난관들을 확인해보는 것은 어떨까요? :)

"게임으로 오세요: 게임 개발자들에게 배워야 할 점들"은 High Moon Studio가 Agile을 적용하면서 어떤 어려움을 겪었고, 그것을 어떻게 극복했는가를 다루고 있습니다.

마지막으로 이 글은 약 3회에 나누어서 번역할 예정이며, 이번 제1편에서는 Agile이 출현하게 된 배경에 대해서 설명하고 있습니다.


게임으로 오세요: 게임 개발자들에게 배워야 할 점들
(Get in the Game: What others can learn from game developers) 


1/3


 

출처: p. 24, Better Software (November, 2006)

작성: Clinton Keith

번역: 김기웅, Nikopole(교정), Khazad(교정) 


12년도 더 전에, 나는 방위 산업체의 소프트웨어 엔지니어를 그만두고, 비디오 게임 프로그래머가 되었다. 게임들이, 코드의 길이로 볼 때, 규모가 10배나 크고, 더 최신의 기술을 사용하며, 개발 주기(pace of product development)가 훨씬 빠르다는 사실에 충격을 받았다. 게임 산업은 의욕이 넘치는 최고의 프로그래머들을 유혹했고, 사람들은 최신 소프트에어 공학 이론에 대해 열띤 토론을 했다. 그러나 이러한 열광에는 프로젝트 관리 절차가 결여되어 있었으며, 심지어 몹시 경멸당하기도 했다.

 

불과 30년만에 비디오 게임은, '(Pong)'을 만들던 장난감 시장의 작은 틈새에서, 할리우드 영화보다 더 큰 엔터테인먼트 산업의 한 분야로 성장했다. 그 변화는 개발팀과 예산의 규모를 기하급수적으로 증가시켰다.

 

이 두 가지 요인들-급성장한 프로젝트 규모와 미비한 관리-은 게임 산업 전반에 엄청난 문제들을 일으켜 왔다. 그 중 하나는 때때로 개발자들을 혹사시키는 것이다; 야근이 1년 내내 지속되는 것도 드물지 않으며[1], 그로 인해 야근 수당에 대한 소송들이 줄을 이었다. 일정이 지연되고 예산을 초과하는 것 또한 일상사다.

 

이러한 문제들을 해결하기 위해, High Moon Studios는 다른 산업의 경험을 거울 삼아, 정해진 예산 하에서 경쟁력을 유지하면서도 제 시간에 게임을 출시하기 위해 Agile methodology를 사용했다. 우리의 특수한 개발 환경 때문에 일부 내용을 바꾸어야만 했지만, 그게 ‘Agile이란 무엇이어야 하는가?’라는 비전(vision)을 해치지는 않았다. 우리는 시작부터 의사 소통과 반복적인(iterating) 개발에 초점을 맞추었고, 여러 방향으로부터의 다양한 변화에 대응해서, 보다 나은 제품을 만들 수 있었다.

 

 

 

BACKGROUND OF VIDEO GAME DEVELOPMENT

비디오 게임 개발의 역사

 

내가 비디오 게임 산업에 처음 들어왔을 때, 게임 산업의 역사는 20년이 채 되지도 않은 시점이었다. 1970년대 후반과 1980년대 초반, 게임 산업은 중대한 변화를 경험한다. 아케이드 게임기-나중에는 콘솔이 가정에서 동일한 상황을 연출한다-는 어마어마한 돈을 갈퀴로 쓸어 담고 있었다.

 

이 시기에, 1~3명으로 이루어진 팀이 약 3달 동안 게임 한 개를 만들 수 있었다. 하드웨어는 불과 수백 KHz로 돌아가는 8Bit 프로세서, 16K 메모리, 저해상도(256) 2D 그래픽으로 이루어져 있었다. 자원은 제한된 반면, 소비자는 하드웨어를 극한까지 밀어붙이길 원했기 때문에, 개인적인 영웅주의가 팽배했다. 심지어 프로그래머가 그래픽 소스(the game art)를 만드는 경우도 종종 있었다! 개발의 큰 장애물은 아케이드용 기판-혹은 가정용 콘솔의 카트리지-를 대량 생산하는 비용이 게임을 만드는 것보다 훨씬 비쌌다는 점이었다. 그 결과, 개발은 반복적(iterative)이고 점증적(incremental)이 되었다. 게임들은 일정 시기마다(at frequent intervals or risk cancellation) 평가를 받아 질적으로 향상되었다는 것을 증명해야만 했다. 게임 하나가 출시될 때마다, 열 개의 게임이 취소되기도 했지만, 그 한 개가 성공을 거두면 충분한 수익을 거둘 수 있었다.

 

이러한 높은 수익과 폭발적인 수요로 문제가 발생했다. 품질 관리가 느슨해지면서 무수히 많은 게임들이 쏟아져 나오게 된 것이다. 1980년대 중반에 일어난 이 사태는 게임 산업에서 처음이자 가장 큰 재앙으로 기록되었다.[1] Atari 같은 회사들은 수억 달러의 손실을 보았고, 아무도 사고 싶어하지 않는 수만 개의 카트리지들이 쓰레기 매립장에 묻혔다.

 

가정용 콘솔의 혁신으로 시장은 빨리 회복되었고, 콘솔 제조업자들의 통제 강화와 함께 매출도 꾸준히 성장했다. Nintendo는 어마어마한 성공을 거둔 가정용 콘솔[2]을 출시했고, 출시되는 소프트웨어를 엄격하게 관리해 게임 업계 부활의 주역이 되었다.

 

곧 게임 개발에 대한 주요한 압력(the major pressure)[기판이나 카트리지의 대량 생산이 아닌] 발전하는 하드웨어의 성능으로 바뀌었다. 1980년대의 몰락으로부터 10년 이내에, 콘솔은 20Mhz 이상의 프로세서, 4Mb RAM 3D 그래픽을 갖추었다. 숙련된 아티스트가 정말 사실적인 그래픽 소스(highly realistic art)를 만들어냈고, 프로그래밍 팀은 영상, 음향과 인공지능 같은 전문적인 기술 분야를 다루었다. 이제 게임 하나를 만드는데, 12명 이상의 인력과 1년이라는 시간이 필요해졌다.

 

이 시점에서 암묵적이면서 점증적이고 반복적인 개발 방법은 두 가지 이유로 붕괴되기 시작한다. 첫째, 12명에 달하는 전문가들간의 의사소통은 3명의 프로그래머들 사이에서처럼 순조롭지 않았다. 이러한 틈새로 개발의 세부 사항들이 누락되곤 했고, 그 결과 불필요한 작업들이 늘어났다. 둘째, 개발비가 제조와 마케팅 같은 다른 비용들을 초과하기 시작했다. 자금을 제공했던 회사들은 여전히 돈을 벌고 있었지만 예전처럼 1개의 게임을 출시하기 위해, 열 개의 게임들을 취소할 수는 없었다.

 

"비디오 게임에서 가치란 재미이지만, 재미는 문서로 표현하기가 무척 어렵다.”

 

그에 따라, 보다 구조적이고 전통적인 방법론이 게임 개발에 도입되었으며, 폭포수(waterfall) 모형[3]이 가장 흔한 경우였다. 폭포수(waterfall) 모형은 팀 규모 증가와 프로젝트 개발 주기 변화를 경험했던 다른 산업들에서 인기가 있었다. 이 기법은 규모가 커진 프로젝트를 관리하기 위해서, 몇 개의 단계들로 구분하였다: 계획(planning), 시제품(prototyping), 개발(development), 통합(integration), 시험(testing). 프로젝트 초반에 문서를 통해서 개발하려는 제품과 그 제품의 특성들(attributes)을 정의하고, 12명이 넘는 개발자들은 그 문서대로 최종 제품을 만들었다.

 

폭포수(waterfall) 모형은 반복적인 개발(the ability to iterate)을 희생시켰다. 프로젝트 초반에는 게임과 특징들(attributes)의 가치를 알기 힘들기 때문에, 그것은 매우 중대한 문제였다. 비디오 게임에서 가치란 재미이며, 이 가치를 정의하는 많은 요소들은 게임을 실행해야만 뚜렷이 드러나게 된다. 재미는 문서로 표현하기가 무척 어렵다.



                             

[1] [역자주] 이것이 그 유명한 Atari Shock이다. 자세한 것은 아타리 쇼크는 어쩌다 일어났는가? (상) 아타리 쇼크는 어쩌다 일어났을까? ()를 참조할 것.


[2]
Famicom (북미에서는 Nintendo Entertainment System, NES)을 말한다.


[3]
[역자주] 폭포수 모형(waterfall model)에 대해서, 초보자를 위한 eXtreme(스트림) 프로그래밍(리팩토링과 기민한 링)은 발췌/편집하여 언급하면 다음과 같다;

폭포수 모형은, 1960년대 복잡한 군사용 소프트웨어 개발을 위해 미국 해군에서 고안되었다. 폭포수 모형에서 프로젝트는 다음의 정해진 순서를 따르게 된다: 개념, 요구사항 분석, 설계, 코딩, 테스팅. 각 단계의 끝에서 프로젝트 팀은 최종 점검까지 모두 끝낸 후 고객의 승인을 받게 되고, 고객이 만족하지 않는 한 다음 단계로 넘어가지 않는다…(중략)…이 모형의 다른 특징은 계획을 중요시한다는 것이다. 만약 프로젝트에 수정이 필요하게 된다면 이미 끝난 부분의 작업을 다시 하는 것이 어렵고 성가시게 된다…(중략)…결국 폭포수 모형은 군대와 같이 엄격하게 관리 통제되는 환경에 적합하지만, 변화가 많은 일반 사업의 세계에서는 몇 가지 심각한 단점을 지니고 있다.”


                                                                    >> 다음: Agile로의 이행 >>
..
:
어제 Dev Rookie의 스터디 (뒷풀이)에 참석했다가, "왜 게임 개발은 늘 지연될까요?"라는 질문을 들었다.

맞다. 사실 나도 의문이다;
  • 혹시 개발자들이 게을러서 그런 건 아닐까? 게임을 좋아하는 넘들이 게임을 만드니까 말이다.
    • 아니다. 성실한 사람들(우훗, 나!)도 일정이 지연된다.
  • 아니면 무능력한 건 아닐까? 생각해보면 학교를 제대로 졸업한 놈들은 대기업을 가거나, 공무원이 되지 않냐 말이다.
    • 아니다. 내 상사가 KAIST 출신에, 유학가서 금융 수학도 가르친 수재였고, 그외에도 삐까번쩍한 인물들이 있었지만, 그래도 일정이 지연된다.
  • 그것도 아니면 "개발자"란 족속은 원래 그렇게 태어난 걸까? 
    • 그럴지도 모르겠다. 이것은 자신이 없다. 사방에서 개발이 지연된다는 걸로 봐서.

이런 문제를 고민해본 성현이 혹시 계시지 않을까? 아니나 다를까, 흥신소 Google에 물어보니, Thomas Demachy가 쓴 "Extreme Game Development:  Right on Time, Every Time" 라는 글이 있다.


그 글에 따르면 각 게임들이 늦어지는 공통적인 원인들은 다음과 같다 :
  1. 기술이 너무 빨리 발전한다. (맞아!)
  2. 개발자들은 언제나 최선을 다하고 싶어한다. (당연하지!)
  3. 배급사들이 마음을 자주 바꾼다. (씨바!)

1. 기술이 너무 빨리 발전한다. 기술이 너무 빨리 진화하고 있다는 것은 사실이다. 현재 시장엔 3개의 주요 콘솔 제조업체들이 있으며 각 콘솔 제조업체들은 대략 5년마다 한 번씩 새로운 콘솔을 시장에 출시하고 있다. 결과적으로 최신 기술들을 적용하라는 강력한 마케팅 압력이 존재한다. 이러한 상황은 계속 진화하는 PC도 마찬가지다. 개발사들은 여기에 적응을 해야 한다: 보통 한 가지 기술을 한 콘솔에서 게임 한두 개 만드는데 쓰고나면 더 이상 사용할 수 없다. 이쪽 업계는 언제나 최신 기술과 함께 진화하고 있으며, 개발자들도 새로운 기술들을 계속 발견하고 있다. 새로운 기술이 좋긴 하지만, 이런 신기술들을 배우고 게임에 적용시키기 위해서는 시간이 필요하다. 물론, 이게 업계의 재미있는 점이기도 하다!

2. 개발자들은 언제나 최선을 다하고 싶어한다. 팀들은 언제나 최선을 다하고 싶어한다: 최고의 모델 제작, 최적화된 코드, 양질의 텍스처 제작 등. 이런 완벽에 대한 욕구는 동기부여의 매우 중요한 요소로 작용한다. 팀에게 최선의 실력을 발휘하도록 요구하지 않는 것은, 프로젝트를 망치는 지름길이라고 볼 수 있다.


결국 개발자들은 개발이 완전히 완료된 후(only when it's done)”에 게임을 출시하는 것을 꿈꾼다. [다시 말해서] 자신들이 게임의 세세한 부분들 하나하나에 모두 자신감이 있을 때 말이다. 그러나 이런 완벽에 대한 집착은 일정을 지연시킬 수 있다. 내부 자금이 풍부한 곳[1]이 아닌 이상, 이런 엄격한 완벽주의를 갈망하며 지연된 일정을 감당할 수 있는 팀은 없다.


3. 배급사들은 마음을 자주 바꾼다. 새로운 기술에 당황하는 것은 개발자들만이 아니다; 배급사 역시 같은 경험을 한다. 제작자들은 새로운 그래픽 카드의 가능성들을, 보고 개발팀에게 이런 것들의 이점을 이용하라고 요구한다. 또한 배급사들은 콘솔 제조업체들에게 독점 출시권을 협상한다. 한편, 콘솔 제조업체들은 개발사들을 인수하여, 자신들의 하드웨어에 맞는 게임만을 만들도록 한다. 이러한 요소들은 게임 엔진 개발에 치명적인 악영향을 주며, 결국 일정 지연의 원인이 된다.


배급사들이 마음을 바꾸는데는 또 다른 이유가 있다. 게임이 대중 시장 제품(mass market products) 이므로 마케팅 부서가 (당연히) 배급사의 정책에 대해 영향력이 있다. 만약 경쟁사의 최근 타이틀이 성공을 거두었다면, 제작자에게 해당 게임의 핵심적인 특징들을 게임에 삽입하라고 요구할 수 있다.


이런 것들은 게임 개발 과정의 큰 결점들 중 하나를 보여준다. 프로젝트가 뚜렷이 보이고 규모를 측정할 수 있는 건축업계와는 다르게 게임 개발자들이 만들어내는 제품은 무형(無形)이다. 그 누구도 건축 설계사에게 거의 완성된 건물에 두 층을 더 올리자고 말하지 않을 것이다. 그러나 게임 업계에서는 배급사가 게임 개발자에게 불과 게임 출시 몇 주 전에 한 두 개의 맵(level)을 더 추가하라는 요구가 번번히 일어나고 있는 실정이다.



[1] [역자주] Blizzard가 바로 이런 매우 드문 경우에 속한다. 여기에도 단점이 있는데, 10년 동안 게임을 두 개밖에 못만들 수도 있다.

:
Dev Rookie의 스터디에 다녀습니다.

유감스럽게도 절친한 선배의 결혼식과 맞물려서, 스터디의 '본편'에는 참석을 못하고, '뒷풀이'만 참석을 할 수 있었습니다. 그러나 정말 많은 분들과 재미있는 이야기들을 몇 시간내내 나누었고, 언젠가 '본편'도 함께 참석할 수 있었으면 좋겠네요.

그런데 제가 실수를 한 게 하나 있는데,
애자일 이야기의 김창준 씨를 몰라봤다는 것입니다!!! OTL 그 이유는;
  1. 저는 ZDnet에 인상깊었던 글을 썼던 분으로 기억했는데, 김창준 씨는 사실 그 글을 마이크로소프트웨어에 기고한 것이었고, ZDnet에 올라온 줄은 모르고 있었으며,
  2. 김창준 씨는 XP에 관한 책들을 번역하셨는데, 저는 Agile 중에서도 Project Management에 가까운 Scrum에 대한 책들을 봤지, XP에 대해서는 자세히 보지 않았다는 겁니다.
이 글을 빌어서 사과드립니다. 용서해 주실 거죠? (웃음)
:
Clinton KeithAgile game development를 보고, 실제로 그게 개발 현장에 어떤 영향을 미칠지, 궁금해(혹은 미심쩍어) 하는 사람들이 있을 것이다.

마침 그 강연을 했던
Clinton Keith가 2005년에 Game Daily와 인터뷰를 한 것이 있어서 약 3회에 걸쳐 연재고자...하였으나, 떡본 김에 제사 지낸다고 Dev Rookie의 발표회에 다녀온 기념으로 낼름 완역해버렸다.

만약 Agile을 도입하고 싶지만, 주변 사람들이 동조해주지 않을 때, 낚시의 밑밥 설득의 근거로 사용하면 유용하지 않을까 싶다.

자, 개봉 박두~

게임 개발에 Scrum 도입하다

(Game Development Enters the Scrum)

 

 

출처: http://biz.gamedaily.com/industry/interview/bizarticles.asp?id=11418

작성: James Brightman

번역: 김기웅(Kay Kim)

일시: 2005 12 20

 

[아직도] 많은 개발자들이 전통적인 게임 개발 방식에 갇혀있는 것으로 보인다. 그러나 개발비가 점점 더 상승하고, 게임이 복잡해짐에 따라, 새로운 대안이 필요한 것 같다. 최근 High Moon Studios를 비롯한 몇몇 개발사들은 Scrum이라고 불리는 새로운 접근법이 게임 개발에 적합하다는 사실을 발견했다. 이에 우리는 High Moon Studios의 기술 이사(Chief Technical Officer)Clinton Keith Scrum에 대해서 이야기를 나누어 보았다.

 

GameDAILY BIZ(이하 BIZ): 아마도 우리 독자들 대부분이 Agile Methodology이나 Scrum이라는 개념들과 친숙하지 않을 겁니다. 그것들의 유래는 무엇이고, 제품 개발에 있어서 이러한 접근법의 핵심이 무엇인지, 또 왜 그것이 특히 게임 개발에 적합하다고 생각하시는지 설명해주시겠습니까?

 

Clinton Keith(이하 CK): Agile Methodology, 전형적인 개발 방법론과 다릅니다. 대량의 문서를 만들고, 기능들(features)을 추가하고, 개발 막바지에 가서야 그것들을 한데 엮는 방식 말이죠. 이러한 기존 방법론의 문제점은 프로젝트가 끝날 때까지 게임이 어떤 형태가 될지 알 수 없다는 것입니다. 반면 Agile Methodology는 다음에 해야 할 것을 끊임없이 계획함으로써, 게임을 반복적으로 개발하고, 결과(예를 들면, [사전에 예상치 못한] 실제 게임 플레이에서 새로 생겨난 [재미] 요소)에 대응할 수 있습니다.

 

BIZ: 저는 High MoonDarkwatch의 개발에 이 방법론을 처음으로 적용했다고 알고 있습니다. 사전에 계획된 것이었나요, 아니면 개발하는 중에 새로운 접근법이 필요하다고 결정하신 건가요?

 

CK: 저희는 Darkwatch를 개발하던 도중에 Scrum을 도입했습니다. 제가 High Moon에서 CTO의 역할을 맡은 직후였죠. 저는 Scrum과 또 다른 Agile 기법들 중의 하나인 XP로 프로그래밍 팀의 구조를 개편하려는 프로그래머들과 일했습니다. 저희 팀의 대부분은 앞서 말한 두 방법론들을 들어본 적이 있었고, 약간의 조사를 거친 끝에, Scrum이라면 손쉽게 적용할 수 있을 거라고 판단했습니다. 그 후에, 저희는 기획자들과 아티스트들을 이러한 절차에 끌어들일 체계(framework)를 개발했죠. Scrum Darkwatch의 일정을 관리하는데 도움을 주었지만, 우리가 Agile의 실천 사항(practices)을 사용해서 바닥에서부터 새로운 아이디어를 구축하기 시작하고 나서야, 비로소 Agile의 모든 혜택들을 누릴 수 있었습니다.

 

XP는 그 후에 도입했습니다. XP의 핵심은, 우리가 게임의 가치를 발견함에 따라서, [개발 도중에도] 소프트웨어를 변경할 수 있게 해주는 실천 사항들에 따라 소프트웨어를 개발하는 것입니다. 과거에 우리는 최종 코드(the final code)를 생성하기 위해서, 초반에 엄청나게 많은 기술 문서들이 필요했었죠. 불행히도 그런 문서들은 그다지 정확하지 않기 때문에, [나중에] 코드를 수정해야 합니다. 만약 XP의 실천 사항에 따라 쓰여지지 않았다면 정말 많은 문제를 일으킬 수도 있죠.

 

BIZ: Scrum은 주로 병목 현상과 불필요한 수고를 줄이는데 주요 초점을 맞추고 있는 것 같습니다. 개발비가 계속적으로 상승함에 따라, 효율성 향상이 게임 회사들에게 중대한 문제일지도 모르겠습니다. 차세대 [게임] 개발에 있어서 Scrum이 어떤 영향을 미치리라 생각하십니까?

 

CK: 맞는 이야기니다. Scrum[게임의 요소들을] 가시적으로 만들기 때문에, [그에 따라] 상식적인 결정을 내릴 수 있습니다. [또한] Scrum은 장애 요소들을 제거하고, 가치(value)를 일찍 생산하도록 해줍니다. 차세대 [게임] 개발비가 급상승함에 따라, 더 이상 우리는 될 대로 되라는 식(the hit or miss business model)으로 사업을 꾸려나갈 수 없습니다. 게임이 재미있는지 없는지 알기 위해서, 프로젝트가 막바지에 다다를 때까지 기다릴 수 없습니다. 엄청난 돈을 써버리고 난 뒤에는, 중요한 변화를 주기에는 너무 늦은 거죠.

 

BIZ: 일각에서는 올해 초 뉴스에 자주 등장한 삶의 질 문제(the quality of life issues)가 조악한 제작 관리 실천 사항(poor production practices)으로부터 비롯되었다고 지적합니다. 만약 Scrum을 사용하면 그 공포의 주당 100 시간(혹은 그 이상) 근무가 과거의 일이 될까요?

 

CK: Scrum은 매일의 실제 업무 능률이 어느 정도인가를 보여주는 경험적인 시스템입니다. Darkwatch 후반부에 우리는 철야 상태(crunch mode)에 돌입했고(과거의 버릇은 쉽게 사라지지 않죠.), 격렬했던 몇 주가 지나자, 작업 속도(velocity)[2]는 실제로 그 이전 수준으로 떨어져버렸습니다. 저희들은 야근(extended hours)이 몇 주나 지속되면 거의 쓸모가 없다는 걸 분명히 깨달았습니다.[3]

 

요즘도 때때로 한 팀이 자신들의 목표를 한 주기(iteration), Sprint의 시작에 맞추기 위해서 몇 시간씩 연장 근무를 하는 경우가 있습니다. 그러나 만약 그들이 너무 지나치게 오래 일하기 시작하면, 저희는 일부 업무를 다음 주기로 이전시킵니다. 그것은 Sprint가 제품 가치의 증가를 위한 것이지, 완료된 과업의 숫자를 말하는 게 아니기 때문입니다.

 

BIZ: Scrum은 팀 내의 의사 소통과 협력에 중점을 두고 있기 때문에, 품질 관리 부서(QA)의 부하가 무척 줄어들 거라고 생각합니다. 따라서 Scrum은 개발자들에게 유리할 뿐만 아니라, 고품질의 게임이라는 점에서 소비자들도 혜택이 돌아간다고 생각하는데, 맞습니까?

 

CK: 물론입니다. 저희는 실제로 하루 단위로 오류가 수정되도록 QA 테스터들을 개발팀에 통합시켰습니다. 오류 수정이 연기되면, 컨텐츠 생산도 지연되기 때문입니다. 다시 말해서, 아티스트들과 기획자들의 작업 능률이 떨어지면, 그들이 생산하는 컨텐츠의 양도 줄어들고, 그것은 결과적으로 최종 제품의 품질을 떨어뜨리는 거나 마찬가지죠.

 

-

BIZ: 잠재적인 혜택들을 고려해볼 때, 다른 게임 회사들도 Scrum을 채택할 거라고 생각하십니까?

 

CK: 작년 게임 개발자 컨퍼런스 [2004]에서 저희의 제작 현황(production track)을 강연한 이후로, 이미 많은 개발사들이 채택했습니다. 제가 강연에서 언급한 전통적인 개발 방법론의 문제들은 거의 어디서나 발생하고 있었고, Scrum은 대단히 상식적인 실천 사항들로 이루어져 있고, 기존 문제들의 해결을 위해 적용하는 것도 어렵지 않습니다. 저는 요즘 Agile을 도입하려는 개발자들을 위해서 메일링 리스트를 운영하고 있습니다.

 

“[Scrum을 적용하는데] 가장 어려운 부분은, 명령하고 통제하는 관리 문화로부터, 팀의 주인 정신을 강조하는 주기적인 문화로 전환시키는 것입니다.”

 

BIZ: Scrum을 도입할 때, 주의해야만 하는 중요한 단점 같은 게 있을까요?

 

CK: [Scrum을 적용하는데] 가장 어려운 부분은, 명령하고 통제하는 관리 문화로부터, 팀의 주인 정신을 강조하는 주기적인 문화로 전환시키는 것입니다. 저와 같은 자리에 있는 사람들은, 팀원들에게 한 번에 30일 동안 스스로 자신들의 목표와 과업에 대한 통제권을 부여하는 걸 배우는데 어려움을 겪을 수 있습니다. 한편 팀원들은 Scrum이 요구하는 헌신과 주인 정신의 수준과 관련해서 책임감을 갖는다는 게 처음에는 어려울 수 있습니다. 하지만 팀원들이 한 번 거기에 익숙해지고 혜택을 누리기 시작하면, 순식간에 업무에 착수할 것입니다.

 

BIZ: 전통적인 개발 방법과 달리, Scrum은 관리자가 각 개인들에게 업무를 할당하는 것이 아니라, 팀원들에게 스스로 업무를 계획하도록 장려합니다. 하지만 이와 같은 부드러운 [, 꽉 막히고 딱딱하지 않는] 관리 방식이 오히려 역효과를 낼 수도 있지 않을까요?

 

CK: 물론, 그럴 수도 있습니다. 그래서 제 역할을 할 고객(customer)과 제품주(product owners)가 반드시 필요합니다. 매 주기(Sprint)마다, 팀원들은 비전과 게임의 창발된(emerging) 가치들을 정말로 이해하고, 다음 주기(Sprint)에서 가능한 최고의 가치를 생산하도록 목표들을 수립할 필요가 있습니다. 팀원들이 자신의 고객이 되었을 경우, 한 가지 문제가 있는데, 팀원들이 프로젝트 전체로 봤을 때에는, 최선이 아닌 방향으로 나아가기 시작한다는 것입니다. 이것이 저희가 컨설턴트들(예를 들면, Agile 코치들)을 때때로 초빙한 이유이며, 저희에게는 매우 중요한 사항이었습니다. 그들은 진짜 고객, 즉 스튜디오 관리자나 게임 배급사들을 교육시킬 뿐 아니라, 팀원들이 바른 길을 가도록 도와주었습니다.

 

BIZ: 당신은 일종의 Scrum 전도사가 되신 것 같은데, 맞습니까? 어떤 방법으로 개발자 사회에 Scrum을 전파하고 계십니까?

 

CK: , 저는 게임 산업 전체가 기로(crossroads)에 서있다고 굳게 믿고 있습니다. 우리는 시장을 더 나은 제품들로 채울 수 있고, 그 제품들을 성공시켜서 증가하는 개발비를 충당할 수 있을 겁니다. 그렇지 않으면, 우리는 계속해서 기존의 될 대로 되라는 식으로 사업을 운영하고, 이미 증명된제품들에서 파생된 게임들이나 특징들(features)에 의존하게 될 것입니다. Agile은 비밀이 아니며, [이미] 컴퓨터 소프트웨어와 소비자 전자산업과 같은 연구개발 중심의 산업들은 Agile을 통해서, 더 적은 시간과 더 적은 비용으로 더 나은 제품을 개발하고, 시장에 출시해왔습니다.

 

지난 몇 년 동안, 저는 AgileScrum에 대한 강연을 해왔으며, GDC 2006에서 게임 개발에서의 Agile 방법론: 3년째라는 또 다른 강연을 할 예정입니다. 또한 www.agilegamedevelopment.com라는 제 웹사이트에서 메일링 리스트나 블로그를 운영하고 있습니다.

 

BIZ: 끝내기 전에, 마지막으로 하고 싶은 말씀이 있다면?

 

CK: 없습니다. 정말 멋진 인터뷰였네요!

 

BIZ: 감사합니다.



[1] [역자주] Extreme Programming. Agile development의 기법들 중 하나.

[2] [역자주] 한 주기(: 1주일) 동안 소멸되는 과업 점수의 합계. User story의 난이도에 따라 점수가 부여된다.

[3] [역자주] 에드워드 요든(Edward Yordon)죽음의 행진(Death March)’에 따르면, 60시간까지는 생산성이 향상되다가, 60시간과 주 80시간에서는 점차 정체되기 시작해서, 80시간 이상에서는 급격히 하락한다고 한다.



Agile Game Development 에 대한 자세한 정보는 [GDC 2007] Agile Game Development의 강연 슬라이드 한글판을 참조.

:
초중급 게임 개발자 스터디 (Dev Rookie)에서 Agile Game Development에 대한 강연을 개최한다.

강연자는 Gunz Online을 개발한 남기룡 님이다. 자세한 사항은 이곳을 볼 것.
:
GDC 2007에서 있었던 "애자일 게임 개발(Agile Game Development)"의 강연 슬라이드입니다. (출처: agilegamedevelopment.com)

Clinton Keith의 허가를 받고 번역을 했으며, GDC Radio에서 (당연하지만 돈을 내고) MP3를 내려받을 수 있습니다.


(가능하다면 아래의 PPT를 내려받으셔서 보시길 권합니다.
위에서는 슬라이드 노트가 보이지 않기 때문입니다.)


(슬라이드 중간에 삽입된 Scrum 안내 동영상. 위의 첨부 파일을 클릭해서 내려받은 후,
위의 슬라이드와 같은 곳에 압축을 풀면 슬라이드 쇼 중간에 볼 수 있습니다.)

마지막으로 주변 사람들을 낚는 설득하는 글로는 게임 개발에 Scrum을 도입하다 참고하십시요...:)

: