게임개발팀 수용성에서 <협업 지향점>이라는 주제로 발표했습니다.
협업에 관한 제 생각을 짧막하게 정리했습니다.
원래 본 주제는 협업방법이었습니다.
하지만 협업 방법은 결국 팀의 성격에 맞게 그리고 우리가 하는 개발에 맞게가는 것이므로 왕도(王道)는 없습니다.
또한 게임개발과 웹개발은 소프트웨어를 만드는 것이고 이 소프트웨어를 만들며 벌어지는 협업은 대개 비슷하지 않을까요?
따라서 주제를 '협업지향점'으로 비틀었고요.
여러분들에게 나눌 얘기는 크게 두 파트로 나뉩니다.
우선 협업의 정의와 종류를 알아보고, 우리들이 지향해야 될 협업에 대해 다뤄봅니다.
협업은 뭘까요?
네이버 국어사전이 제시한 뜻으로는 '많은 노동자들이 협력하여 계획적으로 노동하는 일'입니다.
비슷한 말로 '분업'이라는 단어가 있습니다.
이런저런 정의를 살펴보면 결국 한 목표를 위해 다 같이 일을 한다. 라는 맥락으로 쓰여집니다.
사람들과 부대끼면서 일을 하는 것 자체가 협업이라는거죠.
그러면 개발자 입장에서의 협업은 무엇일까요?
개발자 입장에서의 협업을 얘기하기 전에 협업은 이런 입장에서 이루어질 수 있습니다.
회사와 회사 혹은 클라이언트와 회사로 이루어진 외부협업과
팀과 팀, 팀원과 팀원이 하는 내부협업이 있습니다.
B2B 솔루션 제품을 납품한 회사쪽으로부터 요청이 들어와 미팅을 하면 그게 외부협업입니다.
신규 기능 개발을 위해 디자인, 기획, 개발팀이 모여 회의를 하는 것
버그 픽스를 위해 팀원끼리 모여서 페어프로그래밍을 하거나 코드리뷰를 하는 것도 내부협업입니다.
그리고 협업은 두 가지 형태가 있습니다.
바로 동기와 비동기식입니다. 실시간으로 이루어지냐 아니냐의 차이가 있습니다.
화상미팅, 문서편집 등 사람들과의 상호작용이 동시에 이뤄지는 게 동기식입니다.
QA팀에서 들어온 이슈를 기획팀과 상담해 개발팀이 우선순위를 만들어 나중에 처리하는게 비동기식이라 할 수 있습니다.
그렇다면 개발자의 협업은 이럴 수 있습니다.
마케팅팀이 구글 애널리틱스 분석을 위해서 특정 영역에 이벤트 코드 추가를 요청하는 경우
사내 백오피스 툴의 리뷰를 받고 수정을 위해 기획팀과 상의하는 경우
서버의 API 스펙을 서버 개발자분과 논의하는 경우
버그의 원인을 모르겠어서 옆자리 개발자분과 함께 live share로 같이 코딩하는 경우
프로젝트나 서비스의 방향성에 대해 회의를 하는 경우
기획 문서에 궁금한게 있어서 기획자분과 대화하는 경우
그외에도 수 많은 상황에서 협업이 발생할 수 있습니다.
그런 수 많은 상황을 정리해보자면 '협업'은 자신이 처리해야 될 일이 자신의 능력과 책임, 권한을 넘어서는 상황이 될 때 발생한다고 볼 수 있습니다.
그러면 우리의 협업은 어떻게 나아가는게 좋을까요?
지금은 개발을 하며 발생할 수 있는 몇 가지 사례를 나눠볼겁니다.
첫번째로, 당신에게 하는 의문이나 질문은 당신에 대한 비난이 아니라는겁니다.
그냥 궁금해서 그러는 거죠.
질문을 하는 이유는 상대방에 대한 맥락이 없기 때문입니다.
버스팩터와 관련이 있는데 다음에 기회가 있다면 이야기를 풀어보도록 합시다.
본인의 문제해결능력 향상을 위해서 문제를 계속 담아두는 건 좋지만 시간은 돈이라는 점입니다.
사실 시간도 돈이라는건 우리 모두가 알고 있습니다.
협업이 발생할만큼의 문제는 같이 헤쳐나갑시다.
브랜치를 따고 개발할 때 하나의 기능만 개발하자입니다.
그래야지 PR리뷰할 때 편하고 프로젝트의 형상관리가 쉬워집니다.
커밋 메세지는 적어도 내가 무엇을 했는지 알려주는 이정표입니다.
asdf, 1, temp... 이런 커밋 메세지는 당신이 어떤 작업을 했는지 전혀 모릅니다.
참고로 제 커밋 메세지 변화는 이렇습니다.
20년과 21년의 차이는 문장 시작에 대문자를 붙이기 시작했다는 겁니다.
올해부터는 add, fix, refactor와 같은 Prefix를 붙이고 한국어로 작성합니다.
메세지를 두줄로 작성할 때가 있는데 추가 정보가 필요하거나 왜 그렇게 했는지 이유를 기입할 때 작성합니다.
'그럴수있지' 정신이 필요합니다.
타인이 이상하거나 그릇된 모습을 보여도 그럴 수 있습니다.
괜찮습니다. 책임은 그 사람이 지는것이기 때문이죠.
<하지만, 우리는> 그 사람이 그렇게 책임을 지지 않게 하기 위해 약간의 설득을 시도해 볼 수는 있습니다.
지금까지 우리는 협업의 정의와 종류, 협업 지향점에 대해 살펴봤습니다.
감사합니다.