재택근무 검토

결론: 인터넷에 널리 공개된 재택근무사례는 달리 양산형 모바일게임 개발팀 입장에서는 온갖 문제를 추가로 고려해야 합니다. 스탭들의 기술적 측면과 문화 측면을 특별히 주의깊게 고려해야 하며 이 과정은 예상보다 더 고통스러울 겁니다.

상황이 상황이니만큼 이전에 비해 재택근무 혹은 원격근무 이야기를 하는 사람이 늘어났습니다. 이전까지는 저 역시 단순히 '쉽지 않을 것이다'라고 생각할 뿐 하나씩 고려해본 적이 없었습니다. 2020-03-03 현재 제가 일하는 조직은 재택근무를 시작하지 않았고 다행스럽게도 국내 바이러스 확산은 이번주를 고비로 소강상태에 접어들 가능성이 있다는 예측이 나오기 시작했습니다. 하지만 만약을 대비해 재택근무를 한다면 어떤 점들을 고려해야 할지 한번쯤 점검해두고 만약의 상황을 대비해 보기로 했습니다. 제가 대비한다고 해서 뭔가 달라지지는 않겠지만 고려할 점을 미리 한번쯤 고민해두면 덜 먹먹할 거라고 생각했습니다.

조직의 특징

규모

인터넷에 주로 나타나는 비교적 규모가 작고 기술수준이 중간 이상인 조직에 비해 모바일 게임 개발은 개발팀의 양상이 상당히 다릅니다. 먼저 규모가 큽니다. 인터넷에서 찾을 수 있는 조직 규모가 10명에서 많아야 20명 수준이라면 저희는 이 수의 몇 배 정도 되고 더 커지면 배율이 두자릿수 이상이 되기도 합니다.

기술수준

모든 사람의 기술 수준이 동일하지 않습니다. 누군가는 자신이 사용하는 기계에 일어나는 문제를 스스로 해결할 수 있지만 다른 누군가는 그렇지 않습니다. 가령 주로 사용하는 형상관리도구인 퍼포스에 가장 흔하게 일어나는 인코딩 설정 문제를 스스로 해결할 수 없는 사람들도 있습니다. 위키에 트러블슈팅 문서를 참고하면 될 것 같지만 실제로는 동작하지 않습니다. 또 특정 소프트웨어에 대한 이해도는 높지만 나머지 소프트웨어에 대한 이해도는 받아들이기 어려울 정도로 낮기도 합니다. 언리얼엔진의 파티클에디터는 놀라운 수준으로 다룰 수 있지만 자신의 작업과정을 위키에 매뉴얼로 만드는데는 극도로 약한 모습을 보이거나 MS워드로 문서를 작성할 줄 알지만 위키에 문서를 작성하라고 하면 멍하니 빈 창을 보고 있기도 합니다.

이런 상황은 필연적으로 개발팀에 통역 혹은 시스템디자이너라는 기묘한 역할을 필요로 하게 만들고 한편으로는 다행스럽게도 저 같은 게임디자인으로부터 약간 유리된 일을 하는 게임디자이너도 월급을 받을 수 있게 합니다만 다른 한편으로는 인터넷으로 접하는 다른 분야의 개발팀에 비해 생산성을 개선할 수 있는 요소가 많기도 합니다.

문화

새로운 도구 사용에 굉장히 보수적입니다. 실은 수 년에 걸쳐 잘못된 도구와 잘 업데이트 되지 않는 인하우스툴에도 불구하고 '무조건 업데이트 해야 하는' 상황에 처해 고통받은 덕분에 잘 모르는 도구는 일단 경계하는 분위기가 있습니다. 잘 모르는 도구를 사용해보더라도 항상 플랜B를 마련해놔야 마음을 놓을 수 있습니다. 요즘 잘 나가는 목업도구나 커뮤니케이션도구, 문서도구를 전파하기 쉽지 않습니다. 파워포인트로 한땀한땀 버튼을 그리는 사람, 스카이프 메신저로 일대일 대화를 줄기차게 하는 사람, MS워드 문서를 퍼포스에 올리는 사람들의 습관을 바꾸기 아주 어렵습니다.

개발의 특징

팀에 온갖 직군의 사람들이 섞여서 일합니다. 간단히 기획, 아트, 프로그램으로 구분할 수도 있지만 조금만 더 들어가보면 레벨디자인, 시스템디자인, TA, 에셋PM, 원화가, 애니메이터, 모델러, 서버프로그래머, 클라이언트프로그래머, 컨텐츠프로그래머 등등등등등이 서로 다른 방식과 환경에서 일합니다. 엑셀과 위키를 기반으로 일하는 사람, 언리얼에디터만 가지고 일하는 사람, 비주얼스튜디오를 가지고 일하는 사람들은 서로 일하는 방식과 사용하는 도구, 서로 다른 작업환경의 이해도마저도 다릅니다.

개발과 기초적인 테스트를 윈도우 시스템에서 수행하지만 실제 테스트는 모바일 디바이스에서 해야 합니다. 모바일 바이너리가 빌드되면 인증된 시스템에서 인증된 디바이스로 바이너리를 다운로드한 다음 인증된 서버 환경에 접속해 테스트해야 합니다.

브랜칭 비용이 커 인터넷에 널리 알려진 방법으로 개발하기 아주 어렵습니다. 일단 바이너리파일이 엄청나게 많습니다. 당장 언리얼에디터의 에셋파일 대부분이 바이너리입니다. 브랜칭을 결정하면 퍼포스 서버가 불타오르고 개발팀 전체가 브랜치를 다운로드하느라 거의 멈춥니다. 이런 상황에서 한번 브랜칭하면 다시 메인 브랜치로 돌아오지 않는 정책을 사용합니다. 이번주에 빌드업데이트를 할 경우 트렁크에서 빌드업데이트용 브랜치로 브랜칭한 다음 소스코드와 데이터를 양쪽 모두에 머지해 빌드하고 빌드업데이트용 브랜치에서 테스트 및 수정을 거쳐 릴리즈합니다. 릴리즈 후에는 빌드업데이트용 브랜치의 필요한 부분만 트렁크에 머지한 다음 정리합니다. 이런 상황으로 인해 서로 다른 두 버전이 같은 브랜치에 섞여있을 때도 있습니다.

예상되는 문제

커뮤니케이션

아주 오랫동안 일대일 대화에 익숙해진 사람들은 여러 사람이 한 공간에서 채팅을 주고받는 상황 자체를 거북해합니다. 팀 메신저로 슬랙을 사용하기로 하고 사람들을 슬랙에 초대해놓으면 다들 익숙한 일대일 메신저 인터페이스는 어디에 있는지 묻습니다. 다이렉트메시지 기능을 한번 배우고 나면 사람들은 공개 채널에서 증발해버립니다. 공개 채널의 분위기에 익숙한 사람들 몇몇이 떠들기 시작하면 여기에 익숙하지 않은 사람들이 소외되고 관리자 통계상으로는 사람들이 많이 떠든다고 나오지만 공개 채널에는 아무도 없는 기괴한 슬랙 워크스페이스가 완성됩니다.

가시성

진행중인 업무의 가시성을 관리하는 사람들이 적습니다. MS워드에 작성해 퍼포스에 올리는 대신 위키에 문서를 작성해달라고 요구하면 문서 작성 중간에 저장해야 하는데 그 중간 과정이 공개되는 상황을 거북해합니다. 그 중간과정이 공개돼도 개인의 평판에 아무런 영향을 끼치지 않으며 중간과정이 공개되지 않고 퍼포스에 명시적으로 파일을 올려야만 업무가 가시화되는 상황이 오히려 위험하다고 이야기해도 잘 설득되지 않습니다. 잠깐 위키에 뭔가 끄적거리다가 순식간에 워드 파일의 퍼포스 경로가 적힌 메일을 받게 됩니다. 사실 이런 상황은 의 로컬 커밋과 푸시 개념으로 완화할 수 있을 거라고 생각한 적이 있지만 위에 이야기한 기술수준 문제와 거대한 바이너리 문제로 도입 자체를 검토하기조차 어렵습니다.

복잡한 환경

한때 여러 가지 보안사고로 망분리를 통해 개발환경을 구축한 회사들이 있었습니다. 요즘 세상에는 온갖 문제로 망분리를 완화하거나 통합하는 추세이지만 아직도 망분리환경을 사용하기도 합니다. 이런 환경에서는 근본적으로 인터넷에 연결할 수 없으므로 처음에 이야기한 인터넷 기반의 서비스를 사용할 수 없습니다. 일시적으로 재택근무를 위해 인터넷을 통해 개발환경에 접근할 수 있게 하더라도 윈도우 시스템 기반의 테스트까지는 가능하겠지만 모바일 디바이스에 바이너리를 다운로드해서 테스트하려면 개발환경과 분리된 테스트환경을 구축해야만 합니다. 여기에 테스트용 디바이스를 별도로 관리하고 있다면 테스트 디바이스를 모든 스탭에게 지급해야 하는 상황이 됩니다.

실행과정 예상

환경구축

망분리 환경에서 개발하는 회사들은 모든 사람들에게 머신을 두 대 줍니다. 하나는 인터넷이 되는 머신, 다른 하나는 인터넷이 안 되는 머신입니다. 원격으로 망분리된 개발환경에 접근하려면 일단 인터넷에 직접 연결 가능한 머신에 VPN을 통해 접근한 다음 여기서 다시 망분리된 머신에 접근해야 합니다. 사실 과정을 나타내면 그리 복잡하지는 않습니다만 처음에 이야기한 대로 이 환경을 서로 기술수준이 다른 모든 스탭들에게 전파하는데는 상상 이상의 노력이 필요할 겁니다. 같은 자리에 모여있었다면 누군가 가서 도와주면 되지만 서로 떨어진 환경에서 누군가에게는 일을 시작하지도 못하는 악몽이 될 수도 있습니다.

문화

고요한 슬랙 퍼블릭 채널 뿐만 아니라 이번에는 실시간이 아니면 대화하지 않으려고 하는 움직임이 있을 겁니다. 가령 '우진님 안녕하세요' 라고 쳐놓고 제가 대답할 때까지 본론을 이야기하지 않는 현상이 서로 모여있는 환경에서도 자주 일어나는데 서로 떨어져있으면 이렇게 대화하는 습관과 서로 일대일 환경이 아니면 대화하기를 꺼려하는 문화가 합쳐져 의사전달 비용이 커질 겁니다. 이런 현상을 없애기 위해 극단적으로 슬랙의 다이렉트메시지 사용을 금지하거나 이와 유사한 커뮤니케이션 수단을 없애는 방법을 고려했습니다만 방법이 폭력적인만큼 잘 돌아갈 거라고 예상하지 않았습니다.

담배타임이 급격히 줄어들어 위에 이야기한 다른 문제로 일어나는 생산성의 감소분을 채울 가능성이 있습니다. 한국의 흡연자 존중 문화는 정말 대단한데 흡연자에 대한 계도는 어떤 곳에서도 절대로 폭력적인 양상을 보이지 않습니다. 가래침과 담배꽁초와 금연구역 흡연에 대한 계도는 항상 '부탁'을 넘어서지 않습니다. 이런 관대한 문화 속에서 중요한 순간에 팀에 흡연자들 전원이 동시에 사라지는건 그리 특별한 상황이 아닙니다. 한 명이 흡연장소로 출발하기 전에 자석처럼 주변의 흡연자를 붙여 동시에 전체 팀원의 25%가 30분 이상 사라지기도 합니다. 하지만 서로 떨어져 일하기 시작하면 자연스럽게 흡연자들에게 관대한 환경의 일부가 사라져 흡연시간이 줄어들어 이 측면의 생산성 일부가 증가할 것으로 예상합니다.

목표

단기적으로

서로 한 곳에 모여서 일하기 때문에 아무리 오래 일해도 자신의 업무환경을 구축하고 유지하는 기술수준을 요구하지 않을 수 있었습니다만 서로 떨어져서 일하기 시작하면 적어도 자신의 업무환경을 구축하고 협업환경에 연결하는 정도의 업무는 스스로 수행할 수 있는 수준의 기술은 갖춰야 합니다. 이 과정을 최대한 부드럽게 만들기 위해 자동화된 환경 구축과 안정감 있는 트러블슈팅 담당자가 필요할 수 있습니다.

장기적으로

서로 공개된 장소에서 이야기하기를 꺼리고 작업 진행 중의 가시성을 회피하는 업무문화는 평소에도 효율을 떨어뜨리지만 서로 떨어져서 일할 때 더 강력하게 효율을 떨어뜨릴 가능성이 높습니다. 때문에 서로 떨어져서 일을 시작하기 전에 이런 문화를 강력하게 계도하고 심지어는 기술적인 강제수단을 도입해야 할 수 있습니다.