[NDC2018] 효율적인 개발 환경 및 워크 프로세스 구축을 위한 10가지 제언

게임뉴스 | 윤서호 기자 |


▲ 넥슨 박종천 플랫폼본부 부본부장

게임사들은 어떻게 게임을 개발하고 있을까? 또 워크프로세스는 어떤 식으로 진행되고 있을까? 게이머들이라면 한 번쯤은 이런 의문을 가져보았을 것이다. 시중에 나온 전문서적이나 유튜브 등에 올라온 영상, 혹은 개발자들의 강연을 통해서 게임 개발 과정과 워크프로세스의 대략적인 맥락은 어느 정도 알려져 있다. 그럼에도 계속해서 그 주제에 대한 강연이 이어지는 것은, 각 회사나 개발팀마다 방식이 다르고, 또 그들이 얻은 노하우도 각각 다르기 때문이다.

이번 NDC 2018에서 연사로 나선 박종천 넥슨 플랫폼본부 부본부장은 자신의 25년 간의 커리어를 되짚어보면서 효율적인 워크프로세스와 개발 환경 구축을 위해 짚어볼 부분들을 언급했다. 또한 자신이 직, 간접적으로 경험했던 마이크로소프트와 블리자드, 넥슨의 워크프로세스를 사례로 들면서 청중들의 이해를 도왔다.

그는 자신의 강연이 모든 게임 개발사에서 공통적으로 적용되는 것은 아니라는 것을 먼저 언급했다. 다만 그가 경험한 메이저 회사의 개발 방식을 소개하면서, 효율적으로 게임을 개발하는데 도움이 되었으면 하면서 강연을 시작했다.


※ 기사는 편한 전달을 위해 강연자의 시점에서 서술했습니다



▲ 강연에 참고한 에릭 브레히너의 'Hard Code: 나잘난 박사의 IT 정글 서바이벌 가이드'

이번 강연에서 말하고자 하는 내용은 크게 10가지다. 이 구성은 마이크로소프트 혁신팀 소속인 에릭 브레히너의 저서인 'Hard Code: 나잘난 박사의 IT 정글 서바이벌 가이드'를 참고한 것이다. 에릭 브레히너는 10년 넘게 마이크로소프트에서 내부 프로세스를 고치고, 내부 문화를 고쳐오는 역할을 담당했던 인물로, 자신이 겪었던 일을 각 주제별로 칼럼으로 엮어내서 책을 썼다.

이를 참고하면서 마이크로소프트와 블리자드, 넥슨의 워크프로세스를 이야기하고자 한다. 마이크로소프트의 경우 직접 근무하진 않았지만, 블리자드에도 마이크로소프트에서 근무했던 인력이 있었던 만큼 위에 언급한 저서와 들은 것을 토대로 마이크로소프트가 취하는 효율적인 워크프로세스 방안을 도출해보았다.



▲ 이 강의의 내용이 각 회사에 100% 맞는 내용인 것은 아니다. 기초를 돌아보고자 하는 것이다

효율적인 워크프로세스와 개발 과정을 위해서 가장 먼저 고민해야 할 부분은 일정 관리다. 이 부분은 어느 회사나 동일하다. 기한을 미리 정해두고, 그 안에 맞추기 위해 노력한다고 해도 계획한 대로 끝나는 일이 오히려 더 드물다. 그런 상황에서 효율적으로 스케줄 관리하기 위해서는 어떻게 해야 하는가? 이 부분을 고민하는 것이 모든 회사들의 과제다.

이런 상황에서 마이크로소프트는 일의 우선순위를 세 종류로 구분했다. 1. 해야 할 일, 2. 하면 좋은 일, 3. 하고 싶은 일. 이런 식으로 정한 다음 1번부터 최우선적으로 처리하고 3번은 여유가 없으면 과감하게 포기하는 방식으로 일을 진행하는 것이다. 우선순위를 지정하고, 어떤 일을 할지 결정하는 것은 PM의 업무다. 그런 만큼 마이크로소프트는 PM을 중요시하고, 그들에게 많은 권한을 주고 있다.

반면 블리자드는 스케쥴보다 품질을 우선해왔다. 그럼에도 일정 관리에 크게 문제가 없던 것은 베테랑들의 힘이었다. 베테랑들은 자신이 언급한 기간 내로 업무를 다 끝냈기 때문이다. 그렇기 때문에 일정 관리보다는, '어떻게 해야 재미있는 게임을 만들까?' 이 화두에만 집중했다. 그렇지만 시장이 급변하면서 블리자드에도 마이크로소프트의 방식을 연구하고 있으며, 때로는 마이크로소프트에서 근무하던 인력들을 스카웃하기도 했다. 그럼으로써 목표하는 시일 내에 게임을 출시하거나, 혹은 업데이트를 시간에 맞춰서 진행하는 쪽에 조금씩 무게를 두기 시작했다.

넥슨은 PM에게 권한을 맡기는 방식을 채택했고, 애자일 프로세스를 통해 업무 효율성을 높이고자 했다. 여기에 최소한의 구동 가능한 프로젝트라는 MVP라는 개념을 도입했다. 프로젝트를 10% 완성해서 샘플을 만들 때, 구동이 안 되는 샘플로 내는 것이 아니라 모든 분야에서 조금씩 완성을 해서 구동할 수 있는 형태로 만들어내는 것을 우선적으로 하는 것이다. 그렇게 해서 그 샘플을 보고, 파트별로 고쳐나갈 부분을 잡아가고, 각 부서별로 일정을 조율하면서 프로젝트를 진행해나가는 것이다.




이런 식으로 각 회사들이 일정 관리를 하는 이유는 사실 낭비를 막기 위해서다. 시간과 인력은 한정되어있고, 그 안에 많은 것을 해야 하기 때문이다. 그렇지만 조직이 커지면 커질수록 낭비는 불가피해진다. 딜레이가 되거나, 사내에서 정치가 있거나 하기 때문이다. 또 다른 낭비 요인으로는 필요 없는 것을 추가하거나, 처음 요구 조건을 명확하게 잡지 못한다거나 하는 등 다양한 원인이 있다.

마이크로소프트는 이 부분에 많은 관심을 두고 있으며, 불필요한 미팅 등을 줄여나가거나 하는 방침을 두고 있다. 블리자드는 앞서 말했듯 최고로 두는 가치가 '재미있는 게임을 만든다'는 것이기 때문에 코스트 관리에 대해서는 사내 베테랑들에게 위임하는 경향이 있다. 다만 최근에는 워크 프로세스를 새로 도입하는 등 변화를 주고 있었다.

넥슨은 3주 단위로 스크럼을 거치고 컨플루언스, 지라 등 다양한 플랫폼을 통해서 서로 논의를 하는 등 업계에서 많이 쓰는 프로세스를 도입했다. 또한 개발 환경에 투자하면서 낭비를 줄이고 있다.




사실 코스트 낭비가 제일 심한 것은 미팅이다. 단순히 한 사람의 시간만 소비하는 것이 아니라, 미팅에 참여한 모든 사람의 시간을 소비하는 행위기 때문이다. 여기에서 쓸데없는 이야기가 나오는 순간, 그 한 사람뿐만 참가자 모두가 시간 낭비를 하는 셈이 된다.

마이크로소프트에서는 미팅을 결정을 내리는 미팅, 정보를 공유하는 미팅, 의논하는 미팅 총 세 가지로 분류한다. 결정을 내리는 미팅은 최종적으로 일을 결정하는 자리인 만큼 사전 준비가 필수적이다. 또한 참가자는 결정권자만으로 제한된다. 정보를 공유하는 미팅은 거의 갖지 않고 메일 등으로 대체하는 경향이 있다. 의논하는 미팅은 브레인스토밍을 위한 자리로, 참가에 제한이 없다.

이렇게 미팅을 구분하면서 마이크로소프트에서는 세 가지 원칙을 제시하고 있다. 미팅 시간과 참여자, 미팅하는 빈도가 적으면 적을수록 좋다는 것이며, 한 미팅에서 주제는 하나만 제시하는 것이다. 여러 주제를 한꺼번에 논의하게 되면 밀도가 떨어지고, 집중력이 떨어지기 때문에 효율이 좋지 않다는 것이다. 가장 중요한 부분은 미팅에서 결정된 것을 다르고, 전달된 것을 모두에게 전파하는 일이다. 이 과정이 잘 이루어지지 않기 때문에 미팅이 결과적으로 쓸모가 없어지고, 시간낭비가 되고 있는 것이다.

블리자드는 논미팅 데이를 정해서, 그날만큼은 미팅 없이 자신의 업무에 집중하도록 한다. 넥슨도 컨플루언스나 지라를 활용해서 미팅을 최소화하고 있으며, 미팅 시에는 PM이 참여해서 전체적인 맥락을 잡아간다. 또한 주간보고서를 정리하고, 이를 공유함으로써 미팅 없이도 각 부서에서 정보를 공유할 수 있도록 했다.




이렇게 미팅을 잡는 이유가 무엇일까? 원활한 협업을 위해서다. 특히나 각 부서 간 협업은 모든 회사에서 어려움을 겪는 부분이다. 게임업계에서는 부서 간 협업 중 가장 많이 어려움을 겪는 경우가 엔지니어와 QA 부서 간의 협업이고, 이 부분에 대해서 많은 회사들이 고민을 하고 있다.

우리나라에서는 개발자들이 QA가 개발을 못한다고 무시한다는 인식을 갖고 있다. 그렇지만 이는 잘못된 것이다. QA와 개발자는 기본적으로 협력 관계다. 그러려면 QA 또한 개발에 대해 이해하고, 맥락을 파악할 수 있어야 한다. 마이크로소프트에서는 QA를 중시한다. QA하면 보통은 고객센터 등을 떠올리지만, 기술적인 QA도 포함하는 개념이다. 버그를 찾고, 테스트하고, 체크한 뒤에 개발팀에게 이야기해주는 것도 QA의 업무인 것이다.

블리자드는 그래서 기술 QA와 게임 QA를 따로 두고 있다. 게임 QA는 단순하게 게임이 재미있나 없나만을 체크하지만, 기술 QA는 모든 기술적인 사항을 체크한다. OS에 따른 게임의 구동 여부나, 업데이트 버전과 컴퓨터 사양에 따른 퍼포먼스의 차이 등 다양한 것을 검토하고 이를 개발팀에 전달하는 역할을 하는 것이다. 앞서 말했듯 블리자드는 오픈된 구조이기 때문에, 부서 간 소통이 잦고 협업이 잘 되는 편이다.

넥슨은 모든 팀에 다 QA를 배치하는 이른바 임베디드 QA 방식을 채택했고, 각 팀이 회의할 때마다 이들이 참가하면서 맥락을 파악하도록 하고 있다. 이들이 테스트를 하기 쉽게 하려면 다양한 툴이 필요한데, 이를 위해서 다양한 도구를 계속해서 만들고 발전시키고자 하고 있다. 예를 들면 오토매틱 QA 같은 툴이 있는데, 그런 것을 도입하면서 이들이 더 다양한 업무를 할 수 있도록 하는 것이다.




QA의 목표는 품질을 높이는 것이다. 마이크로소프트는 이것은 단순하게 제품의 품질만을 이야기하는 것이 아니라고 여긴다. 전체적인 과정의 품질도 내포한 개념이라고 보는 것이다. 개발 환경의 질이나, 의사소통이 이루어지는 과정의 질 등 다양한 부분에서 마이크로소프트는 질을 끌어올리기 위해 고민해왔다.

질을 높일 때 가장 문제가 되는 것은 시간과 비용, 그리고 목표치다. 제품을 만들다보면 시간과 비용의 문제에 봉착하게 되고, 이 때문에 목표치를 낮춰버리는 일이 발생한다. 이 부분에 대해서는 블리자드는 크게 고민하지는 않았다. 최우선 과제는 게임의 재미라는 목표를 달성하는 것이고, 이 부분을 타협하지 않는 대신 시간과 비용에 대해 크게 고려하지 않았기 때문이다.

넥슨은 코드 리뷰와 데이터 분석을 통해서 서비스의 질을 높이고자 하고 있다. 여기에 자동화 테스트를 넣어서 보다 효율적으로 분석하고자 하고 있다. 하지만 질을 높이기 위해서는 또 다른 것도 필요했다. 회사가 커졌고, 만드는 제품이 복잡해지면서 다방면으로 신경 쓸 것도 많아졌기 때문이다. 디자인, 마케팅, 엔지니어, 아키텍트 등 다양한 부서에서의 협업이 필요해졌고, 특히나 최근에는 클라우드 아키텍트가 중요해지면서 넥슨에서는 이 부분에 많이 신경을 쓰고 있다.




질을 높이는 또 다른 수단은, 사내 인력을 성장시키는 것이다. 마이크로소프트를 예를 들면, 엔지니어는 레벨을 30 몇 단계로 구분해두고 관리하고 있다. 17 정도에는 관리자가 되고, 20이면 디렉터가 되는 등 랭크를 구분해주고 커리어를 체계적으로 잡아주는 것이다.

이 정도까지 세분화되지 않더라도, 회사에서 자사 인력들의 커리어를 잡아주는 것이 좋다. 그래야만 더 효율적이고, 질 높은 인력을 확보할 수 있기 때문이다. 사원들이라면 일단 매니저와 이야기를 하는 게 좋다. 매니저는 직원을 관리하는 사람이다. 즉 직원의 커리어도, 그가 관리해야 할 대상이다.

직원이 성장하기 위해서는 결국 사내 네트워크가 필요하다. 좋은 사람을 만나고, 그들에게 배우면서 성장하는 것이기 때문이다. 그러기 위한 원칙은 기초적이다. 주는 것에 감사하고, 도움을 받았으면 도움을 주기 위해 노력하는 그런 기본적인 것에서부터 시작하기 때문이다.

블리자드의 커리어 관리는 독특한데, 블리자드는 사내 부서 이동이 상당히 잦은 편이다. 그럼으로써 직원들이 다양한 경험을 쌓고, 다른 부서의 업무를 이해할 수 있도록 하는 것이다. 넥슨은 각 팀에 권한과 책임을 주고, 그 팀 안에서도 업무 세분화를 해서 각자에게 책임과 권한을 주는 방식을 하고 있다. 또한 2주에서 3주에 한 번 면담을 해서 직원이 어느 쪽에 재능이 있고, 또 관심사가 무엇인지 파악하고 있다.



▲ 커리어 관리는 워크 프로세스에서 중요하고, 엔지니어에만 국한된 이야기가 아니다

이러니 저러니 해도 결국 자신의 커리어 관리는 자신이 해야 한다. 주도적으로 자기관리를 해야 한다는 것이다. 직원이 주도적으로 자기 관리를 하게 하려면 어떻게 접근해야 할까? 마이크로소프트는 협업을 중시한다. 결정을 내리기 전에 항상 의논을 하고, 그럼으로써 소통을 해나가는 것이다. 단순히 통보식으로 결정한 것을 내려주는 것과, 같이 소통을 하고 난 이후에 직원이 '하겠습니다'라고 하는 것은 다르다.

리더에게 가장 중요한 것은 예측성이다. 그 리더가 어떤 식으로 일을 하고, 말을 할지 예측을 할 수 있어야 한다는 것이다. 사람은 예측이 불가능한 타인을 믿지 않는다. 리더도 마찬가지인 셈이다. 예측성을 확보하기 위해서는 열린 커뮤니케이션이 필요하다. 서로 소통하고 알아야지 그가 어떤 식으로 일하는지 예측할 수 있기 때문이다.

이 말은 곧 관리자가 중요하다는 말이기도 하다. 마이크로소프트는 이 부분에 대해서 좋은 관리자와 더 좋은 관리자의 자질을 구분하기도 했다. 단순히 좋은 관리자는 일할 환경을 좋게 만들어주는 사람이다. 사실 이것은 매니저가 기본적으로 갖춰야 하는 덕목이다. 매니저가 하는 일은 결국 인력 관리, 즉 사람들이 일을 원활히 할 수 있도록 도와주고 관리하는 것이기 때문이다.

이것은 단순히 물리적인 환경을 이야기하는 것이 아니다. 더 좋은 관리자라면, 예측성을 주고 상황 정리를 제대로 해줘야 한다. 그럼으로써 다른 것에 신경 쓰지 않고 일에 온전히 집중하게 해야 한다. 그러려면 필요한 덕목이 관리하는 인력에게 원하는 점이나 장단점을 명확히 짚어주고, 능력 평가 기준에 대해서 확실하게 이야기할 수 있어야 한다.

관리자의 덕목은 매니지먼트와 리더십 크게 두 가지다. 매니지먼트는 직원이 일을 잘하는가, 성장하고 있는가를 체크하면서 이들을 관리하는 것이고, 리더십은 직원들이 자신을 따르도록 하는 것이다. 이 두 가지는 다르지만, 결국 관리자의 역할에 밀접한 관련이 있는 것이기 때문에 쪼개서 볼 수 없다. 다만 이 두 자질을 동시에 다 갖춘 사람은 매우 드물기 때문에 매니저가 어떤 자질을 갖고 있는지 파악하고, 부족한 부분을 끌어올리거나 혹은 보완해줄 또 다른 인력을 붙이는 과정이 필요하기도 하다.



▲ 워크 프로세스에서 매니저의 역할은 중요하다

이런 식으로 상부 구조까지 오게 되면, 결국 조직 전체에 대해서도 언급하지 않을 수 없다. 사실 업무 효율성을 증진하기 위해선 때로는 조직 전체를 바꿔나가야 하기 때문이다. 마이크로소프트가 그 대표적인 사례인데, 마이크로소프트는 제품 하나를 완성한 다음에 조직 개편을 아예 새로 한다. 그 때문에 스트레스를 심하게 받지만, 그렇게 하지 않으면 속칭 '고인물'이 되어버리기 때문에 이를 감수한다. 그래서 몇 만 명이나 되는 인력을 효율적으로 관리하는 것이다.

매니저는 여기에서 세 가지 일을 해야 한다. 직원이 안심할 수 있도록 달래야 하고, 경력이 오래된 직원이나 혹은 임원들이 자조적으로 변화를 거부하지 않도록 설득해야 한다. 또한 조직원들이 변화를 긍정적으로 받아들일 수 있도록 해야 한다.

게임이나 프로그램을 예로 들자. 내가 25년 전 업계에 처음 입사했을 때 사용하던 프로그램을 아직까지도 사용하지 않고 있지는 않다. 게임 제작에 사용되는 엔진도, 25년 전에 썼던 걸 그대로 사용하지 않는다. 이렇게 업계 환경은 변화하고 있다. 조직도 마찬가지로 변화가 필요한 것이다.



▲ 마지막에 가서는 조직 전체의 변화에 대해서도 이야기할 필요가 있다

블리자드는 앞서 말했듯 내부에서 부서 이동이 굉장히 잦다. 여기에 마이크로소프트가 취하고 있는 부서-조직 개편 방식을 벤치마킹하기도 했다. 넥슨은 작은 변화를 계속 주고 있고, 제품 정리 및 조직 개편을 하고 있긴 하다. 그 결과가 어떻게 나올지는 좀 더 지켜봐야 할 것이다.

개인적인 경험이지만, 큰 조직의 장이라면 변화라는 단어를 바로 꺼내는 건 좋지 않다. 반발이 거세게 오기 때문이다. 서서히 끄집어내야지, 갑작스럽게 '혁신'이라고 이야기하면 위에서나 아래에서나 반응이 좋을 수가 없다. 그런 경우는 아마 많이들 보았을 것이라고 생각한다.

사실 앞서 말한 모든 것들은 전혀 새로운 것이 아니다. 이미 많은 회사들이 노력하는 부분이기 때문이다. 좋은 제품을 팔고, 회사 발전에 도움이 되는 조직을 갖춰가는 데 필요한 일들이다. 그 중에서 가장 중요한 것을 꼽자면, 변화하고자 하는 노력을 게을리하지 말아야 한다는 것이다. 변하지 않으면 도태된다. 다만 그 변화를 어느 한 순간 갑자기 확 뒤바꾸는 것이 아니라 지속적으로, 깊이 있게 변해가도록 노력해야 한다는 것이다.

댓글

새로고침
새로고침

기사 목록

1 2 3 4 5