그들이 일하는 방법

파이드 파이퍼스는 2인으로 이루어진 게임 제작 팀 입니다. 게임 디자인 및 기타 잡무를 맡은 기획자 1인과, 메인 프로그래머 1인으로 구성되어 있는 이 팀은 현재 2인의 외부 인력과 3~5명 사이의 게임 자문단을 운영하며 전략 게임을 제작하고 있습니다.

팀-2인 이상으로 구성된 집단이 원할하게 움직이기 위해서는 파이프 라인(Pipe line)과 워크 플로(Work flow)는 중요한 역할을 담당합니다. 효율적인 업무는 효율적인 소통(Communication)과 일맥상통 합니다. 이를 위하여 다양한 형태의 프로젝트 관리 툴 및 형상 관리 툴 등의 다양한 어플리케이션을 사용하면서 팀원 – 외부 제작자 – 게임 자문단 간에 오가는 프로젝트 관련 정보들을 관리하고 있습니다. 이 글에서는 파이드 파이퍼스에서 사용하는 각종 운영 툴 및 프로젝트 관리 툴 등에 대해서 소개하고자 합니다. 소규모 게임 제작 팀을 운영 하면서 프로젝트 관리에 대한 고민이 있으신 비슷한 처지의 인디 개발팀이나 게임 제작 지망생들에게 도움이 되었으면 합니다.

구글 앱스(Google Apps)를 이용한 기본 전자 업무 환경의 구축

구글 앱스는 비즈니스 사용자를 대상으로 구글의 서비스를 각 기업의 별도 도메인으로 운영하게 해주는 서비스입니다. 이를 이용하면 구글 메일, 구글 문서도구, 캘린더 등의 도구들을 개인 혹은 단체의 도메인에 연결하여 사용 할 수 있습니다. 프로젝트 이외의 전략 수립이나 간단한 회의록, 아이디어 공유 등의 문서들은 구글 문서도구를 이용하고 있으며, 프로젝트와 팀 운영과 관련한 스케쥴 공유는 캘린더 서비스를 이용하여 정보 공유가 가능합니다.

구글 앱스를 이용하여 구축한 내부 개발 사이트

무엇보다 구글 앱스는 소규모 팀이나 사업장에서는 무료(2011년 11월 30일 현재 10개 계정-사용자까지 무료)로 사용이 가능 하기 때문에 비용 부담 없이 독립 도메인 메일과 함께, 다양한 협업 도구들을 사용할 수 있다는 장점이 있습니다. 복잡한 절차/비용의 소모 없이 팀 내에서 사용 가능한 툴을 찾는다면 굉장히 좋은 대안이 될 수 있을 것입니다.

프로젝트의 관리 – 맨티스(Mantis), 서브버전(SVN), 크루즈 컨트롤(CC.net)

프로젝트 진행과 관리에 있어서 이슈 추적(Issue tracking)과 버전 관리는 빼 놓을 수 없는 필수 요소가 되어가고 있습니다. 프로젝트 진행 중 발생하는 다양한 형태의 이슈를 관리하고 추적하기 위한 이슈 추적 툴들은 무척 다양하게 존재 합니다. 맨티스(Mantis)는 대중적인 이슈 트래커 중 하나로, 강력한 이슈 추적 및 관리 기능으로 인하여 팀 내에서 사용 중입니다. 맨티스와 비슷한 트랙(Trac), 레드 마인(Red Mine) 등이 대안으로 검토 되었었으나, 개발 팀 수준에 적당한 기능 지원과 개발팀이 원하는 수준의 이슈 필터링 기능은 맨티스로 결정을 하게 된 가장 결정적인 역할을 하였습니다.

맨티스 - 이슈 트래커

버전 관리 툴의 대명사 격인 서브버전(Subversion: SVN) 은 원래 프로그램 소스의 버전 관리를 위해 제작된 프로그램입니다만, 개발 팀 내에서는 소스 코드와 함께 각종 개발 문서(기획서 및 사양서), 각종 게임 리소스의 버전 관리에까지 사용하고 있습니다. 개발과 관련된 원천 소스 및 각종 개발 문서, 최신 릴리즈를 모든 팀원 및 외부 작업자들이 원할 때 바로 바로 다운로드 받아 확인 할 수 있기 때문에 공용 폴더/메일 등을 이용한 자료 공유 보다 훨씬 안정적이고 빠른 개발 환경을 제공합니다.

크루즈 컨트롤(CruiseControl.NET)은 지속적인 통합을 위한 자동 빌드 시스템입니다. 크루즈 컨트롤은 파이드 파이퍼스의 모든 프로젝트들(프로토타입을 포함)의 진행된 개발 상황을 체크하여 주기적으로 자동 빌드를 수행합니다. 빌드 된 프로젝트는 각 구성원이 바로 개발 중간 결과물에 대한 테스트 및 점검이 가능하도록 만들어줍니다.

이와 같은 시스템을 구축하는데 있어서 기본 비용은 무료 입니다. 맨티스, 서브버전, 크루즈 컨트롤 모드 오픈 소스 프로그램으로 별도의 추가 비용은 들지 않습니다. 단, 서버-클라이언트 구조의 프로그램들이기 때문에 별도의 개발 서버의 구축은 필요합니다. 파이드 파이퍼스는 중고 PC를 이용한 저사양의 개발 서버를 구축하고 위의 프로그램들을 이용하고 있습니다.

외부 게시판 – 페이스북(Facebook)의 활용

팀 외부에 존재하는 외부 개발자들과의 소통은 보통 이메일을 통하여 진행을 하게 되는 경우가 많습니다. 하지만 이메일은 누락의 가능성, 스팸 차단, 일부 서비스에서의 첨부 파일 문제 등으로 인하여 제약이 많은 의사소통 방법이라 할 수 있습니다.

모든건 페이스북느님이 알아서 해주십니다

파이드 파이퍼스는 외부 작업자와의 소통을 위하여 별도의 게시판을 이용하고 있습니다. 페이스북의 폐쇄 그룹 기능을 이용하여, 외부와 소통할 필요가 있는 이슈를 빠르게 전파하고 응답을 받고 있습니다.

잇점

이러한 개발 환경을 소규모 팀이 구축하는 것은 어쩌면 대단히 귀찮고 어려운 일이 될 수 있습니다(사실 요즘의 대부분의 게임 개발 업체들은 이런 정도의 개발 환경 구축은 기본이기때문에 특별한 것이 아닙니다). 하지만 소규모 게임 개발팀이라고 해도 이러한 시스템을 구축한 것과 그렇지 아니한 것의 차이는 엄청납니다.

이러한 개발 환경을 구축함으로써 가장 크게 이득을 보는 것은 업무 소통의 효율성이 비약적으로 증가한다는 점입니다. 프로젝트를 진행하면서 개별 회의 등을 하거나 이메일 등을 이용하여 커뮤니케이션을 하는 경우, 일정한 주제에 대한 지속적인 관찰이 어렵거나 심지어는 일부 이슈를 완전히 누락하여 이를 나중에 다시 반복하게 되는 악순환을 불러오는 경우도 허다합니다.

이슈 트래커, 버전 관리 시스템, 자동 빌드 시스템을 기반으로 프로젝트의 모든 진행 상황에 대한 정보를 팀원 모두가 평등하게 공유하는 것은 프로젝트 진행에 대한 개별 팀원들의 이해도를 높이는 데 가장 중요한 역할을 합니다. 이와 더불어 통합 비즈니스 서비스 구축이 가능한 구글 앱스 같은 비즈니스 도구들을 보조적인 수단으로 활용하여 팀 운영 및 프로젝트 운영에 대한 투명성을 적극적으로 향상 시킬 수 있습니다. 당신의 팀원이 무엇을 하고 있고, 내가 하는 일을 당신의 팀원이 알고 있다는 것은 프로젝트를 유지시키는데 가장 중요한 요소입니다.

프로젝트 진행 과정에서 발생하는 불필요한 소통 낭비를 막는것. 그리고 이를 통하여 전체 프로젝트에 소요되는 각종 비용-특히 시간-의 낭비를 막을 수 있다는 것은 불편함을 감수하더라도 이러한 시스템을 구축, 관리하는 일의 필요성을 입증하는 것이라 할 수 있습니다.

주의 사항

이러한 개발 환경을 구축하고 운영하는 데 있어서 가장 중요한 부분은 ‘시스템의 관리’ 부분입니다. 이러한 시스템은, 단지 만들어 놓고만 있다고 해서 자연스럽게 유지되고 사용되지 않습니다. 구축한 시스템을 사용하고 문제점을 진단하고, 발견 된 문제점을 수정해 나가면서 계속 시스템을 유지시켜야만 프로젝트 진행에 대한 효율이 같이 올라갑니다.

되도록이면 다양한 툴들을 하나로 통합하여 사용하는 것 역시 운영의 묘라고 할 수 있습니다. 파이드 파이퍼스의 경우에도 필요에 의해서 다양한 미들웨어와 소프트웨어를 사용하고 있지만, 통합되지 않고 단편화 된 서비스들로 인하여 관리 부하가 점차 늘어나는 것은 우려스러운 부분입니다. 이는 신규 사용자가 등장 할 때 추가적인 교육/관리 이슈가 늘어나는 것을 의미하기 때문에 장기적으로 절대 좋은 방법이 아니라고 생각합니다.

서비스 및 툴을 선택함에 있어서는 유행보다는 사용자 편의성과 자신의 필요에 맞게 사용하는 것이 좋을 것이라 생각합니다. 구축 전에 다양한 툴들에 대한 사용 후기 등을 참조해보거나 직접 설치 후 사용을 해 보는 것도 좋습니다. 파이드 파이퍼스의 개발자들은 이미 거쳐온 게임 개발사 등에서 이러한 서비스 및 툴들을 직접 설치 운영을 해 보거나 사용을 해 본 사람들로 구성되어 있었기 때문에 이러한 시스템을 구축하고 운영하는데 큰 어려움은 없었습니다-단지 고질적인 귀찮음 병이 있었을 뿐이죠.

정리

위에서 언급했듯, 이러한 프로젝트 관리, 팀 운영과 관련한 시스템을 구축하는 것은 대형 게임 개발사들에게 있어서는 이젠 기본 중의 기본에 해당하는 일입니다만, 소규모 제작 팀의 경우에는 그 중요성에도 불구하고 막연한 두려움, 귀찮음, 기타 다양한 이유들로 인하여 이러한 시스템의 구축에 힘을 덜 들이는 편입니다.

현재 팀의 운영에 있어서 문제점이 있고, 그 문제점이 팀원들 간의 커뮤니케이션 누락의 문제라고 생각한다면 대안으로써 이러한 시스템을 구축해 보는 것은 바람직한 해결책 중 하나입니다. 당신의 소중한 프로젝트를 위한 일인데 두렵고 귀찮은 일이 어디있겠습니까? 필요하다면 지금이라도 하나 하나 준비를 해서 운영 해 보시길 바랍니다. 괜찮아요. 해치지 않아요.