개발팀 리드하기
팀 인원 (개발자 7명)이 갑자기 늘어남에 따라 엔지니어링 개발팀 리소스가 함께 늘어났다. 전에는 팀 리소스가 적어 이것저것 포기하는 게 많았는데, 이제는 무엇을 해야 할지 정하지 않으면 누군가는 태스크 없이 방황을 하는 상황이다.
개발자로 누군가처럼 20년을 살아온 것도 아니고 과연 내가 팀 리드를 할 수 있을까? 스스로에게 며칠간 냉정하게 질문을 해 보았다. 솔직히 2018년 말까지 팀 리드와 함께 개발 욕심도 있기에 코딩에서 손을 떼고 싶지 않았다. 개발팀 리드와 개발 두 마리 토끼를 언제나 잡고 싶은 욕심이었다. 언제나 커밋은 많지 않지만 저녁 시간이나 주말에 몰래몰래 커밋을 해서 올리곤 했다. 그러나 이제는 스스로 개발에 욕심을 내서는 팀 어딘가 리소스 운영 미스로 누수가 나게 될 것이고 그 책임은 내가 져야 한다.
그래서 2019년에는 과감하게 개발 욕심을 버리기로 했다. 대신, 우리 개발팀 분들이 최상의 퍼포먼스를 낼 수 있도록, 개발 문화 정착에 힘써 보기로 했다. 가장 먼저 Continuus Integration (CI)가 정착되도록 단위 테스트 및 TDD를 도입하기로 했다. 각 엔지니어가 기능을 만들면 그 기능에 대한 테스트를 스스로 만들도록 가이드드를 준비 중이다. 또한, 모든 도메인별 프로젝트에 코드 스타일 규칙인 eslint rule을 적용케 했고, 터무니없이 계정 공유를 해 왔던 AWS의 경우도 좀 더 철저히 AWS IAM 계정 분할 작업에 들어갔다. (아직 고생 중이다)
또한, 그동안 없어서 아쉬웠던 코드 리뷰 문화를 위해 리서치를 시작했다. 어떻게 하면 code merge 병목현상에 영향을 크게 주지 않으면서, 동시에 팀 내부에서 코드 리뷰가 활발히 이루어질 수 있을까 고민을 했다. 18년 말부터 어설프게나마 흉내내기 시작한 애자일 스크럼 개발 방법론 역시 19년에는 좀 더 성숙해진 예측과 수행이 필요하다는 결론으로 플래닝 포커 방식의 개발 예상 시간 산출 등, 기존의 스크럼 방식을 더욱 적극 활용하기 시작했다.
우리 회사 동시에 진행되고 있는 프로젝트 도메인이 좀 많다.
1. 홈페이지 및 학생 데이터, 코스 커리큘럼을 제어하는 어드민 대시보드
2. 학생들의 학습 콘텐츠를 관리하는 LMS
3. 초기 단계인 학생들이 코드로 시험을 보고 테스트 케이스가 돌아 pass 여부를 알려주는 코플릿 프로젝트
어느 하나 중요하지 않은 게 없어 내가 좋아하는 버티컬(vertical) 집중이 어려운 상황이다. 그나마 새롭게 요구되는 프로젝트도 거절한 상태이다.
작년까지는 모든 팀 인원이 모든 프로젝트에 익숙해져 있어야 한다는 생각으로 모두가 모든 프로젝트를 건드리고 있었다. 그런데 생각해보면 이렇게 되면 하루에 개발자가 프로젝트 도메인을 2개 이상 왔다 갔다 해야 하는데 아무리 생각해봐도 context switching cost가 너무 컸다. 실제로 엔지니어 분들의 고충 피드백을 자주 듣게 되었다. 따라서 인원이 보충됨에 따라 도메인을 확실하게 나누었다. 1달, 2달만큼이라도 한 명의 엔지니어 배정을 집중력 있게 한 도메인으로 몰아서 배분을 드리게 되었다. 당장 2개월간 버티컬로 집중해서 속도를 내고 이후에 다시 배정을 생각해보자.
어차피 또 시행착오가 있을 것이다. 다만 시행착오의 주기를 짧게 가져가서 빨리 해보고 넘어지고 빨리 배워보자는 취지는 예나 지금이나 다르지 않다.
내가 자격이 될까? 누가 처음부터 자격이 있었을까. 생각해보면 SW 세일즈를 3년 동안 할 때 독일에 있던 Flash Bootloader 팀장과 수시로 이야기하면서 커뮤니케이션하지 않았었나. 세계 1위 자동차 임베디드 소프트웨어의 한 도메인을 책임지고 있던 팀장님의 팀 리드를 3년이나 간접 경험하지 않았었나. 그 여러 자동차 회사에서 모셔가려고 애를 썼던 벡터코리아 팀장님과 바로 옆에서 일하며 팀 리드를 관찰하기도 했다. 내 직속 상사인 테크니컬 세일즈 팀장님 역시 내게 리더쉽, 빠른 결정, 책임에 대해 역시 많은 가르침을 주셨었다. 내게 지난 직장생활은 돈주고도 경험하기 어려운 긴 시간이었다. 누가 처음부터 팀 리드를 잘 할 수 있을까.
처음이라 어려울것 같다는 것은 핑계일 뿐이다. 당시 팀장님이 괴로워했던 순간들, 그가 협상하던 순간들, 팀원들을 위해 스스로 책임지고 어려운 상황을 떠맡았던 상황이 기억난다. 그래, 결정하고 책임지고 하다 보면 분명 나도 성장하겠지. 언제나 팀원을 먼저 생각하는, 그러나 때로는 책임감을 가지고 과감하게 결정하는 리더십을 키워가야겠다. 오늘도 나는 성장 중 이다.