축구와 소프트웨어 개발 - 01 역할과 협업

Posted by 엘키의 주절 주절 on August 1, 2017

개요

요즘 많은 개발은 팀 개발이다.

컨텐츠 단위로 나누던, 모듈 단위로 나누던, 서비스 단위로 나누던 어떻게든 협업을 해야하고, 나뉘어진 일을 누가 어떻게 가져갈 것인가도 매우 중요한 문제다.

사람마다 선호하는 것이 다르다

어떤 사람은 컨텐츠 개발을 좋아하고, 또 다른 사람은 라이브러리 개발, 툴 개발을 좋아한다.

이걸 축구로 비유하면, 사람 마다 다른 포지션 (공격수, 수비수, 미드필더)를 선호한다.

멀티플레이어가 분명히 있긴하지만 그런 사람은 특별 케이스로 봤을 때, 각자 주 포지션이냐 아니냐가 퍼포먼스와 모티베이션에서 굉장히 큰 차이를 준다.

축구 처럼 주전 11명과 대회 마다 각기 다른 교체 인원 수가 고정되어 있는 것은 아니지만, 해야만 하는 일과 잘 할 수 있는 일, 그리고 하고 싶어하는 일의 밸런스는 무척 중요하다.

주전 경쟁에서 밀려서, 자기 포지션에서 뛰지 못해서, 감독의 생각과 자신의 축구 관이 달라서, 팀 성적이 좋지 않아서 등등 여러가지 이유로 선수들은 이적을 결심한다.

마찬가지로 개발팀도 팀원들에게 동기부여를, 성취감을, 만족도를 줄 필요가 있다.


역할

팀의 철학과 전술에 따라 다르지만, 어떠한 팀은, 또 어떠한 감독은 궂은 일을 할 선수가 필요한 경우가 있다.

소프트웨어 개발도 비슷하게, 굳은 일을 도맡아서 해주는 선수가 있어야 팀이 매끄럽게 운영된다는 사실을 알고 있다.

많은 소프트웨어 에세이나 블로그 등에서 볼 수 있듯, 이 포지션을 주로 관리자에게 할당함으로써 문제를 해결하곤 한다.

하지만 흔히 궂은 일이라 불리우는 일 들을 즐기는 사람들도 있으며, 어떤 일이 궂은일이라고 생각되는 범주도 개인마다 다르기에 적합한 사람을 배치하는 것은 여러모로 의미가 크다.

리더의 역할중 하나를 덜어줌으로써, 다른 부분에서 리더의 영향력과 기량을 보일 수 있는 계기가 될 수도 있기 때문이다.

이에 대한 자세한 이야기는 관리자에 대한 이야기에서 다시금 이어가겠다.


이해

구성원 중에 궂은 일을 해주는 동료가 있고, 그가 하는 일이 팀에 얼마나 긍정적인 영향을 끼치고 의미가 큰 일인지 공감대를 형성 할 수 있다면, 그 것으로 추가적인 부가 효과를 얻을 수 있다.

필요는 하지만, 선뜻 나서지 않는 빌드 마스터라는 업무가 있었는데, 이 업무를 번갈아서 진행하는 팀이 있었다.

그 팀에서 그 일을 하는 날은 평소 업무가 아닌, 빌드를 챙기고, 업무 관리 시스템 일감 관리, 문서화 보강 등의 작업을 진행하게 했는데, 이게 얼마나 번거로운 일인지 모두가 깨닫는 계기가 됐다.

그 후 해당 업무에 비중을 좀 더 크게 둔 팀원이 생기자, 팀에선 모두 그를 고마워했고, 그의 업무에 도움이 되는 일들 (문서화나 일감 관리)를 좀 더 신경써서 하게 됐다.

물론 이는 긍정적인 효과였던 사례중 하나 일 뿐이지만, 그 일을 하는 사람이 만족한다면 그것만으로도 가치는 크다.


협업

또 의외로 많이 느낀 것은, 개발을 축구로 비유하면 패스를 하지 않는 선수가 꽤 많았다.

소통과 협업에서 큰 리스크를 가졌으나, 개인 플레이에 최적화 되어있어 결과물이 좋은 경우도 있다.

이 경우, 이 사람의 작업을 분석하거나 재작업 해야 될 때 코드 작성에서 마저 독특한 취향을 띄는 경우가 있었고, 연동을 해야 할 때 문제가 생기는 경우가 생기곤 한다.

이런 사람을 협업이 어려운 개발자 내지는 커뮤니케이션 역량 부족로 모는 경향이 있는데, 나는 이런 사람마저도 개발 기량이 기준 이상이라면 선택적 업무 할당으로, 협업 할 수 있다고 보는 입장이다.

물론 이런 사람에게 다른 사람과 다른 기대치와 잣대를 적용하는 것에 대한, 합의가 이루어져야 하는데 이 부분이 쉽지 않아 또다른 문제로 대두되기도 한다.

우리는 모두가 형평성 있게 대해지길 바란다.

그럼에도 누군가에게 예외가 적용 되는 것을 받아들일 수 하는 것도 팀과 관리자의 역할이다.

모든 부분에서 평균적인 재능을 가진 사람을 만나기란 무척이나 어렵다. 그런 인재는 모든 팀에서 원하기 때문이다.

개발자의 한 두가지 부분에서 아쉬움을 팀이 케어 할 수 있다면, 개발자가 부족하고, 최적합 인재는 더더욱 구하기 어려운 입장에서 대안이 될 수 있다.


마치며

이렇듯 직접적 협업을 하던, 간접적 협업을 하던 팀으로 혹은 한 회사에 묶여 있는 이상 영향을 작게나마 미칠 수 밖에 없다.

굳이 축구와 비유하지 않더라도, 여러 사람이 함께 해야 하는 모든 일들은 비슷한 상황을 여럿 맞이하게 될 것이다.

그럼에도 유독 소프트웨어 개발팀의 문제를 겪으면서 축구를 자주 떠올린 것은, 내가 축구를 좋아하기도 하고, 축구 팀들은 이런 문제를 오랜 시간 겪어오며 나름의 결론과 해결책을 가진 팀들이 좋은 성적을 냈기 때문이다.

여러 축구 감독/선수의 에세이 등에서 다뤄지는 축구 팀에 대한 이야기를 읽으며 꼭 한번 얘기하고 싶었던, 축구팀과 소프트웨어 개발 이야기였다.