Cross-function game development 의 장점

January 25, 2013   |   By Samuel Rantaeskola


 오늘날 수많은 게임 스튜디오들은 각자 자기만의 개발 조직 구성 방법을 가지고 있습니다. 일반적인 경우, 애니메이터는 애니메이션 개발팀에 자리가 배치되어 있으며, 프로그래머는 기술 개발팀에 자리가 배치되어 있습니다. 물론 기능이 혼합된 부서가 존재하기도 하지만, 이러한 팀은 다른 개발 팀들에게 크게 의존하고 있는 경우가 보통입니다.

 이러한 구성을 가지고 있을 때, Backlog (역자 주: 개발 계획을 수립했지만 우선 순위를 선정하여 개발 진행과 보류 여부를 선정하는 시스템) 기능의 대부분을 하나의 팀으로 처리할 수 없게 됩니다. 이것은 하나의 문제로 인하여, 여러 개의 팀이 작업을 진행하게 되는 상황으로 이어지게 됩니다.

 다음 상황을 살펴보겠습니다.

Story

(저는 매우 강력하고 화려한 샷건으로 좀비를 죽였으면 좋겠습니다.) 


 위 상황을 살펴보면, 하나의 shotgun 디자인, gun mechanic 코드 그리고 좀비가 죽는 애니메이션 등이 필요할 것이라고 유추해볼 수 있습니다.

 이러한 것들을 개발하기 위해서는 designer, engineer, animator, effects artist, modeler, sound designer 그리고 QA 가 필요합니다. 단순하게 생각해서, 이러한 것들을 구현하는데, 위 사람들로 구성된 팀이 2주 정도 시간이 요구된다고 생각해볼 수 있습니다.

가상 스튜디오는 다음과 같은 방법과 형태로 구성해 보았습니다.

Organization structure

이런 구성일 경우, 개발의 어떠한 부분도 혼자서 개발할 수 있는 것은 없습니다. 관리자는 개발을 진행하기 위하여, 연관된 작업들을 잘 조율해주어야 합니다. 개발을 진행하기 위하여, 때로는 production team 에 거짓말을 해야 할 필요도 있습니다. 위에 제사된 사항을 진행할 때, 다음과 같은 내용을 통하여, 작업을 진행하게 됩니다.

 Substories
(원하고 싶을 때, 마음대로 쏠 수 있는 샷건이 필요합니다.)
(샷건으로 좀비를 죽일 때, 애니메이션이 나오기를 기대합니다.)

그러나  일반적으로 Backlog 안에서 이러한 업무들이 실제로 진행될 수 있도록 더 세분화 됩니다. 이것은 이러한 작업에 무엇이 필요하고 그것을 어떻게 연출할 것인지 나눈다고 생각하시면 됩니다. 

Subtasks

(샷건 코드)
(좀비의 죽는 애니메이션)

 아주 작은 게임조차, 이러한 방식으로 backlog 가 진행됩니다. 그리고 추가적으로 각 기능을 조화롭게 진행하기 위하여, 각 부서 간의 많은 조정이 필요하게 됩니다.

 Backlog 를 사용하는 이유는 프로젝트를 진행할 우선 순위를 선정하고 Road Map 를 이해시키기 위해서 입니다. 이상적일 경우, 개발자들은 여러분이 만들어 놓은 앞으로 진행될 Backlog 를 보고 많은 것을 기대하게 됩니다. 하지만, Backlog 가 너무 크고 상세하다면, 우선순위를 선정하기가 불가능해집니다. 그래서 당신은 구현에 필요한 모든 목록을 세분화하여야 합니다.

 다시 가상 스튜디오로 돌아와서, 스튜디오에서 이러한 세분화된 업무를 수행할 수 있도록 일을 진행하기에 앞서, 현명하게 일을 계획하여야 합니다. 일반적으로 위와 같은 상황에서 이야기는 다음과 같이 진행됩니다.

Sprintchain

 이러한 상황에서 초기 디자인은 3번 정도 반복되어 수정될 수 있습니다. 또한 품질을 검증하는 단계에서 5번 정도 반복되면서 수정될 수 있습니다. 물론 동시 개발과 팀 협업을 통해서 프로세스를 능률적으로 변경시키는 방법도 있습니다. 하지만 이와 같은 시도는 일을 보다 복잡하게 만들고 실패하였을 때 일을 보다 많이 반복하게 될 가능성이 높아집니다. 그리고 동시 작업은 더 많은 조율이 필요하게 됩니다.

 Cross-functional organization 의 목적은 외부 의존도를 최소화 시키고, 완성된 목표를 팀에게 전달하는 것입니다. 그렇기 때문에 저희는 Cross-functional organization 를 통해서, 외부 조정을 최소화 시키고 팀 내부에서 문제를 해결할 있다고 믿고 있습니다.  

 위와 같은 상황에서, 저희가 designer, engineer, animator, effects artist, modeler, sound designer, 그리고 QA 로 구성된 팀이 있다면, 그들은 다른 팀에 의한 반복 작업 없이 한번에 일을 완료시킬 수 있었을 것입니다. 짧은 순환은 보다 높은 품질의 생산물을 만드는데 도움이 됩니다. 그리고 적은 외부 의존도는 복잡한 프로세스를 다루고 있는 팀들 간의 협업 조율자의 필요성을 감소시킵니다.

 마지막으로, Cross-functional organization 의 멋진 스케일을 가지고 있습니다. 팀을 추가하더라도 세분화된 조직간의 복잡성을 증가시키지 않습니다. 문제 해결은 내부적으로 가능하기 때문에, 관리자의 역활이 감소하게 됩니다. 관리자 업무의 증가는 전통적인 구조에서 보다 훨씬 후반에 찾아올 것입니다. 

짧게 말하자면, Cross-functional organization 의 장점은 다음과 같습니다.

Summary

(적은 세부 분류 -> 효율적인 백로그 관리)
(팀 간의 독립성 -> 협업에 대한 관리 필요성의 감소)
(짧은 순환 -> 품질의 증가)
(느린 복잡성의 증가 -> 효율적인 크기의 구조)



Posted by Kr해머
,