게임 개발과 Atlassian 툴

(활용 사례) 게임 개발에서의 InstantAction



Morgan Friberg사례분석 에 대해 이야기 합니다.








설립년도: 2001
사무실: HQ in Las Vegas, NV. Also 2 offices in Oregon: Eugene and Portland.
분야: Web-based gaming
직원수: ~100
사용툴: JIRA, GreenHopper, Confluence


샌프란시스코에 서 얼마전 열린 Game Developer Conference 2010 (GDC10) 에 참가하여, 고객 인터뷰에 참여하는데 관심을 가질 만한 게임 개발관련 고객 600여명과 인터뷰할 수 있는 기회를 가지게 되었습니다. 그 중에서 InstantAction 회사는 우리에게 첫번째 인터뷰 회신을 준 회사입니다.

InstantAction은 3D와 브라우저 기반의 게임을 특징을 하는 게임 웹 사이트입니다. 이들이 개발한 유명한 게임은 Fallen Empire: Legions, Rokkitball, Think Tanks, Galcon 등 다수입니다. 지난 주 GDC10 에서 InstantAction 은 루카스필름의 The Secret of Monkey Island: Special Edition and Braid 게임을 공식 발표하였습니다.
저는 CIO인 Jay Arrera 를 붙잡고 인터뷰를 할 수 있었습니다.


인터뷰




자기소개와 어디에서 근무하시는지 간단히 알려주세요.

제 이름은 Jay Arrera 이고, 현재 InstantAction의 CIO(Chief Information Officer) 입니다. 저희는 3개의 사무실을 가지고 있습니다. 본사는 라스베가스와 뉴욕에 있으며, 포틀랜드와 오래곤즈 유진에 OR(Outdoor Office) 가 있습니다. 저는 포틀랜드에서 근무하고 있구요. 회사에는 약 2년째 근문하고 있습니다.

팀과 부서에 대해 말씀해 주시겠어요?

저는 IT와 관련된 모든 회사 업무를 책임지고 있습니다: 협력관계, 내부 시스템, 이메일, 방화벽, 네트워크, 데스크탑, 고객지원, 표준 IT 모두 말입니다. 내 부서에서는 대략 12명 정도로 구성되어 있지만 계속 충원 중입니다.


게임 개발




어떠한 플랫폼에 대한 게임을 개발하시나요? (예를들면 Xbox 360, Gameboy Advanced, PS3, 페이스북, 아이폰 등)

웹 배포가 대부분입니다. 하지만 일부 아이폰과 XBox 에 대한 것도 작업합니다. 또한 Wii 프로그램도 개발하며 개발 언어 차원에서는 게임과 게임 엔진 개발을 위해 C++와 C#을 주로 사용합니다.

팀에서 사용하는 개발 방법론은 무엇인가요? (Scrum, XP, Waterfall)

각 팀에 따라 다릅니다. 저희는 많은 팀들이 있고, 일부 팀은 Waterfall 모델을 사용하기도 합니다. 대부분은 Agile 유사방법이나 XP 형태를 사용합니다. 비정형화된 형태로 말입니다. 일반적으로 팀장은 일부 애자일 프로그래밍에 경험이 있지만, 회사차원의 정형화된 개발 방법론은 없습니다.

그러한 개발 방법론의 접근방법에서 강점과 약점은 무엇인가요?

빠른 반복적 프로젝트와 제한된 영역에 대해서는 매우 효과적입니다. 그러나 조절관리가 필요한 대규모 프로젝트에서는 그리 효과적이지 않습니다. 그래서 저희는 때로는 Waterfall 모델을 사용하고 때로는 프로젝트의 크기, 범위, 복잡성에 따라 애자일 방법론을 사용하기도 하는 것입니다.
작은 팀에서는 효과가 아주 좋습니다. 프로젝트 오버헤드를 줄이고 오로지 할일에만 집중할 수 있지요. 개발자는 작업하는 프로젝트에 대해 애착을 가집니다.
조금 더 나가서는 JIRA에 GreenHopper를 사용합니다. agile development 방법론을 사용하는 팀은 스스로 자신들의 태스크를 가질 수 있고 그 태스크를 중심으로 일할 수 있기 때문에 매우 좋아합니다.

개인적으로, 게임 개발에서의 소프트웨어 개발 도구의 중요성을 어떻게 생각하시나요?

우리 경우에 있어서는 정말로 매우 중요합니다. 치명적이지요. 우리에게는 매일의 작업흐름입니다. 게임과 웹 사이트 개발 작업을 하는 사람들은 매일 Atlassian 툴을 사용하는 것이지요.

게 임 산업에서 소프트웨어 개발은 어떻게 변화하나요?

제가 겨우 2년밖에 게임 산업에 있어보지 않았기 때문에 말할 자격이 있다고 생각하지 않습니다만, 제가 말할 수 있는 것은 게임 개발에서의 소프트웨어 는 일반적으로 매우 빠르게 변하고 있다고 할 수 있습니다. 분명 이전보다 급속히 빠른 속도로요.








Atlassian 툴을 사용하여 어떤 게임을 개발하고 있나요?

저희는 이번에 The Secret of Monkey Island: Special Edition and Braid공식 발표 하였습니다. 아마도 이전에 발표했던 어떤 제품보다 유명해질 것이라고 생각됩니다.
Legions 은 현재 가장 유명한 게임입니다만, 그 외의 다른 모든 게임들이 instantaction.com 사이트에 있습니다. Think Tanks, Rokkitball, Galco.
이러한 모든 게임들이 사실은 Atlassian 툴을 사용하여 개발 연결되어 있습니다.
개 발하는 게임은 얼마나 자주 릴리스 되나요?

그때그때 다릅니다. 웹사이트의 경우는 주별 혹은 월별 릴리스입니다. 게임의 경우는 월별 혹은 분기별 릴리스이지요. 엔진의 릴리스는 년간으로 이루어집니다.

디 자인을 위한 목업(프로토타입)으로 무엇을 사용하나요?

저희는 Adobe 제품을 사용합니다. 이미지 작업은 주로 InDesign과 Photoshop 을 사용하고 와이프레임에서의 작업은 ConceptShare를 사용합니다. 웹 디자인을 위한 것이지요. 게임은 좀 다른 접근방식을 가집니다.
프로토타입에서의 세부적인 사항이 나오면 이미지 스크린샷을 만들어 JIRA에 첨부합니다. 그 시점부터 우리는 JIRA와 Confluence를 사용하여 협업해 나가는 것이지요.

자 동화된 테스트가 어느정도이고 수동 테스트는 어느정도인가요?

25-30% 정도는 자동입니다. - 이것은 성능 테스트와 기능 테스트를 포함한 것입니다. 대부분의 게임 테스트는 수동이지요.
사이트의 경우는 브라우저에 대한 성능 테스트와 regression 테스트를 합니다. 브라우저 호환성을 확인하구요. 내부적으로는 여러 QA (품질검증) 팀이 있습니다. 또한 외부의 써드파티 회사가 품질 이슈를 저희 JIRA 를 사용하여 리포트 해주고 있습니다.

의 존하고 있는 플러그인은 무엇인가요?

생각해보면, 정확히 말씀드릴 수 있는것은 GreenHoppr for JIRA 입니다.
Confluence의 경우는 워드문서 변환기, Advanced macros, UI 플러그인, Attachment 추출기, Balsamiq Mockups, 기본 매크로, 차트, clicker 테마, code 매크로, Atlassisn plugin repository, Attachments 플러그인, Contributors 플러그인, HTML 플러그인, PDF 내보내기, Remote API, 쓰레드 덤프, 대시보드, dynamic task list, excel 플러그인, JIRA information macros, 레이아웃 매크로, left nav 테마, live search, mail page, office connector, page tree, profile macro, shared application access layer, table of contents, web dav, widget connector, tiny mc, 정말 많네요.


InstantAction 내에서의 Atlassian 툴




현재 사용하는 Atlassian 툴은 무엇인가요?

현재 JIRA, GreenHopper, Confluence를 사용하고 있습니다. 제가 회사에 오기 전부터 사용되어 지고 있었습니다. 다른 툴로 바꿀 기회도 있었지만, 모두가 Atlassian 툴을 좋아해서 유지하기로 하였습니다. 이전에는 위키나 협업툴이 없이 사람들이 문서를 주고 받았었습니다.

JIRA 이전에 사용하던 버그 트래커(추적시스템)가 있었나요?

JIRA 이전에 어떤 버그 트래커가 있었는지는 모릅니다. 개인적으로 이전에 Bugzilla, PVCS tracker, 등의 다른 여러 버그 트래커를 사용했었습니다. 저는 현재 JIRA/Confluence 관리자 권한을 가지고 있고 현재의 JIRA 와 Confluence의 편리한 설정방법에 만족합니다. (골드피처 주: 이전 다른 시스템보다 관리자 설정이 편리하다는 의미로 보입니다.)

계속 사용하게 만드는 Atlassian 툴의 가장 큰 강점은 무엇이라고 생각하시나요?

솔직이, 잘 동작된다면 변경할 이유가 없습니다. 그리고 기본 설정사항이 매우 간단하여 사람들이 그대로 사용할 수 있습니다. 기본 설정 그대로 사용하는 사람들도 있습니다. 물론 팀에 따라 상당히 많은 부분 커스터마이즈하여 팀에 맞는 워크플로우로 설정적용하여 사용하는 팀도 있습니다. 동일한 툴로 이렇게 사용할 수 있다는 것은 큰 장점입니다. 사람에 따라 작업을 자동화하거나 워크플로우 제어를 하고 싶은 사람뿐 아니라 시스템 설치 후의 기본 설정 그래도 이슈추적 시스템을 원하는 사람들도 모두 사용할 수 있는 것이지요.


JIRA




JIRA 를 어떻게 사용하시나요?
팀에 따라 다릅니다. 하지만 공통적인 것은 모두 버그 및 요구사항 추적에 사용하고 있다는 점입니다. 모든 요청사항이나 이슈보고는 JIRA를 통해 이루어집니다. JIRA를 커스터마이즈 한 부분이 있는데 말씀드리지 못하는 점 양해해 주십시요. 약간의 이메일 로더와 일부 일괄 임포트 스크립트등이 있습니다. 이것으로 엑셀파일에서 임포트 하고 SVN 과도 연동하였습니다.

커스텀 필드와 워크플로우(작업흐름) 처리는?

네. 커스텀필드, 권한, 워크플로우, 화면, 모두 훌륭합니다. 우리는 Confluence 내에서도 JIRA 리포팅도 사용합니다. 어떤 팀은 JIRA 에서 직접 요약화면을 가져와 Confluence 페이지를 생성하여 사용하는 부서도 있습니다.

프 로젝트와 이슈, 사용자는?

대략 200~300명 정도 사용합니다. 내부 인원과 외부 인원 (써드파티 계약자와 베타 테스터들) 포함하여 50개 프로젝트로 사용 중 입니다. 이슈 수는 별도로 세어보지 않았지만 수천개가 되겠지요. 버전은 4.0 을 사용하고 있습니다.

JIRA와 같은 툴을 왜 그리고 언제 사용해야 하는지에 대해 다른 회사에게 조언을 한다면?

JIRA 뿐만 아니라 다른 이슈 트래커를 사용하려는 사람에게 동일한 조언을 할 수 있을 것 같습니다. 툴을 여러분의 업무 프로세스에 적용하기를 원할 것입니다. 이것은 우선적으로 업무 프로세스가 무엇인지를 알아야 함을 의미합니다. 저는 자신들의 워크플로우가 어떤지 이해하지 못해 정말로 좋은 툴을 폐기시키는 경우를 보았습니다.
또 다른 중요한 점은, JIRA는 매우 많이 커스터마이즈 할 수 있기 때문에 자신이 무엇을 하는지도 모르게 빠져들 수 있습니다. 다시 말하지만, 어떤 툴이건 사용할 수 있지만 많은 사람들이 좌절하는 것을 보아왔습니다. 우선 한발자국 뒤로 물러서서 "그렇게 할 필요는 없어" 라고 말하며 워크플로우를 변경하고 화면도 변경하며 간단하든 복잡하든, 원하는 것을 우리가 바꿀 수 있다는 점을 명심하십시요.
(골드피처 주: 툴을 업무에 맞추는 것 뿐만 아니라 객관적으로 업무 프로세스가 바뀔 필요가 있다면 업무 프로세스도 바꿀 수 있어야 한다는 의미로 이해됩니다.)


GreenHopper




GreenHopper 는 어떤가요?

모든 팀에서 사용하지는 않습니다. 스크럼 XP 방법론에 익숙한 팀만 GreenHopper를 사용합니다.

GreenHopper의 가장 큰 장점은?

역 시 드래그와 드롭기능입니다. 수많은 이슈(티켓)들을 드래깅하는 것으로 관리할 수 있기 때문입니다. 저희가 사용하는 이유입니다. 이전에는 하나의 릴리스에 대해 수백개의 이슈(티켓)들을 보아야 하고 수동으로 담당자를 지정하거나 일괄작업등으로 처리하였었습니다. 정말로 모든 이슈들을 추적하는데 애로사항이 많았습니다. 이제는 만약 어떤 이슈(티켓)을 특정 릴리스에서 다른 릴리스로 이동시킬 때 정말 편리합니다. 또한 개발자가 어떤 이슈가 버전에 대해 할당이 되어 있는지 목록을 볼 때 GreenHopper를 이용하여 이슈필터를 생성할 수 있어 매우 편리합니다.
번다운 차트는 저희가 잘 사용하고 있는 기능입니다.

GreenHopper 가 전체 팀에서 사용되지 않는 원인이 있다면?

가장 큰 이유는 저희 회사가 너무 빨리 성장하기 때문입니다. 저희는 많은 사람들이 들어오며 새로운 팀의 일부 사람들은 아직 작업 프로세스도 설정하지 못해 다른 팀과 조정을 필요로 하고 있는 경우도 있습니다. 이러한 사람들은 프로젝트에서 다른 사람들과 협업하는 것은 생각도 못하는 것입니다. 이런 경우는 어떠한 툴이든 별다른 도움이 되지 않을 것입니다.

GreenHopper를 사용하지 않는 다른 개발회사에게 조언을 한다면?

GreenHopper를 구매해 사용해 보십시요! Atlassian 에서 GreenHopper를 인수하였을 때 정말 기뻤습니다. 플러그인을 사용하는 경우 아직까지 지원부분이나 기타 여러가지 면에서 항상 걱정스러울 것입니다. 그렇지만, 수많은 이슈를 관리하는 측면에서는 정말로 유용한 툴입니다.


Confluence




현재 Confluence를 어떻게 사용하나요?

Confluence는 저희의 공식 문서 저장소입니다. 저희는 내부 인트라넷으로 사용하는데 모든 게임 디자인과 프로토타입, 웹사이트 요구사항문서, 팀 진행상황 문서, 그리고 모든 대화가 기록됩니다. 전사적으로 사용하고 있는 것입니다.

처음에 예상했던 것과 다른게 Confluence가 사용되나요?

사 용되는 방식에 대해 제가 놀랐다고 생각하지는 않습니다. 오히려 올라오는 컨텐츠에 놀랐다고 할 수 있을 것입니다.
누군가가 위키 마크업이나 HTML을 이용하여 커스텀 레이아웃을 구성했을 때 관심이 많이 갔었습니다. 제가 "이봐 어떻게 그렇게 한거야" 하며 말하여 마크업을 열어 어떻게 한 것인지 확인한 페이지들이 많이 있었습니다.
또한 어떤 사람은 뉴스(블로그) 기능을 이용하여 스크럼 미팅을 위한 미팅시간을 계산한 사람도 있었습니다. 요약화면을 이용하는 팀의 페이지도 있어 모든 팀원들이 매일 스크럼 노트를 볼 수 있게 해 놓았습니다. 그리고 저는 그것이 매우 좋은 아이디어라고 생각해서 저희 팀에서 적용하였습니다.
Confluence 를 특별히 커스터마이즈 한 것은 없습니다.

가장 즐겨사용하는 기능은 무엇인가요?

직접 문서를 편집하여 원하는 형태로 페이지를 생성하는 것입니다.


Confluence 를 사용하려는 다른 회사에게 조언을 한다면?

문서의 구성및 관리에 관심을 가지셔야 합니다. 문서가 연결을 잃거나 혹은 잊혀져 버리기 매우 쉽습니다. 이것은 일반적인 권고입니다.
위키의 강력함은 누구나 문서를 작성하는 것인데 이것은 누구나 문서를 잊기 쉽다는 의미이기도 합니다. 검색 기능을 활용하십시요. 페이지 인덱스를 생성하고 계속 업데이트 하십시요.
주기적으로 문서를 정리하고 관리할 인력을 두는 것도 도움이 됩니다.
마지막으로, 권한정책을 확인하십시요. 저희는 Confluence를 공개하여 사용하고 있는데 문서를 여러 테스트와 외부의 직원들과 공유합니다.
그래서 관리자가 항상 누가 접근권한을 가지고 어떤 데이터 보안을 유지해야 하는지 확실히 할 필요가 있습니다.

Jay 감사합니다!


(골드피처 주)


국내에서도 이미 규모가 있는 게임 개발업체(아실만한 분은 모두 아시는)들이 툴을 도입하여 사용하기 시작했습니다.


앞서의 IT 분야와 거리가 있을법한 NHL 에서부터 소프트웨어를 대표하는 게임 개발 분야까지 다방면에 활용하는 미국에는 못 미치지만, 이러한 툴들의 도입이 이제는 국내도 본격화 되었다고 해도 과언이 아닌것 같습니다.


이제는 소프트웨어 분야의 발전을 위해 개인의 업무 생산성을 최대한 발전된 수준까지(매일 야근하지 않는..) 끌어올리기 위해 이러한 툴들의 도입과 자동화는 필수적이라 하겠습니다.


반드시 Atlassian 툴이 아니더라도 (오픈소스 진영의 무료 툴이라도) 이러한 툴의 도입은 반드시 필요하다고 하겠습니다.


다만 툴을 조직에 도입하는데 있어 Jay의 인터뷰에도 나와 있듯이 결국 툴도 사람이 사용하는 것이므로 어느 하나의 방법론이나 툴에 의존하지 말고 조직과 팀에 맞게 다양하게 적용하려는 노력이 필요 하다는 점을 잊지 말아야 하겠습니다.

댓글

이 블로그의 인기 게시물

JIRA의 대시보드를 효과적으로 구성해 보십시요

JIRA 와 Confluence 그리고 LDAP 연동을 간편히 하실 수 있습니다

JIRA 개요 및 기능