Here's my dents in the universe

팀러너스, 합류를 결심하다


2023년은 나에게 팀러너스로 기억되는 해가 될 것이다. 제품을 바라보는 관점에서부터, 어떻게 일해야 하는지, 개발은 어떻게 해야하고, 의사결정은 어떤 데이터를 기반으로 할 것인지 등에 대해 정말 많이 배웠다. 코드를 작성하는 개발자가 아니라, 팀이 비즈니스 성과를 만들어내는데에 필요한 모든 행동을 하는, 내 모든 자원을 활용해 팀에 헌신하는 그런 경험을 했다.

시작

인스타그램보다 오래 쓰는 AI 사진 앱의 탄생 | 팀러너스

![[Pasted image 20240421124706.png]]

시작은 어느 광고였다. 페이스북의 개발 그룹에 팀러너스의 팀원을 구한다는 공고가 올라왔다. 팀원을 구한다는 공고는 심심치 않게 올라오는 것이기에 대단할 것도 없었지만 이상하게도 팀원 모집 공고가 SNS에서 바이럴이 되고 있었다. 어떤 팀이길래? 공고를 클릭해서 들어가보니, 회사를 창업한 대표들의 약력이 적혀있었다. 토스의 굵직한 프로젝트를 성공시킨 PO, 콴다의 글로벌 진출을 담당했던 그로스 매니저가 코파운더로 모인 팀이었다. 무엇보다 흥미로운 것은 이들의 hungry함이었다.

‘방법은 상관 없다. 어떤 방법을 동원해서라도 목표를 달성한다’는 그들의 사냥개 같은 정신. ‘직업인으로 남고 싶지 않다, 큰 목표를 성취하고 싶다’는 그들의 포부. 공고 하단에는 하루 일해보기를 통해 서로의 핏을 맞춘 후 채용하고 있음을 알리고 있었다. 코딩 과제나 면접이 아니라, 하루를 통으로 같이 일해보고 채용을 결정한다니 이거 참 재미있네. 그래 같이 일해보지 않고는 모르지. 당시의 나는 이직 의사가 없었기 때문에 공고를 닫고 한동안 잊고 지냈다.

![[Pasted image 20240421124839.png]]

지인에게 팀러너스를 권하다.

한편, 당시 내가 속해있던 개발 팀에는 일주일에 이틀 정도 사무실에 출근해, 아키텍쳐 자문 역할을 해주시던 선배 개발자 분이 계셨다. 그 분은 오랜 기간 프리랜서로 일해오셨는데, 커리어의 다음 스텝으로 합류할 팀을 찾고 계셨다. 문득 이전에 보았던 공고가 생각이 났다. 이런 팀이 있는데, 재미있게 일하는 것 같다고, 관심 있으시면 한 번 하루일해보기 체험해보시라고. 그렇게 또 몇 주가 지나갔다.

한참 뒤에, 선배가 하루 일하기를 다녀온 후기를 말씀해주셨다. 지금 팀이 데이팅 앱을 개발하고 있는데, 성장 속도가 장난이 아니라고. 정말 똑똑한 사람들이 매일 밤까지 치열하게 일하고, 매일 아침에 전날의 데이터를 리뷰하면서 다음 퍼 결정하는 팀이라고, 진우 너도 꼭 경험해보았으면 좋겠다고 하셨다. 이미 선배는 하루 일하기, 일주일 일하기를 거쳐 정식으로 합류를 결정하신 상태였다. ‘어느 정도이길래?’ 진행하던 프로젝트가 어느정도 마무리 되는 주간에 휴가를 쓰고, 하루 일하기를 등록했다.

![[Pasted image 20240421125253.png]]

하루 일해보기

어느 아침, 사무실에 들어서니 좁은 사무실에 열 명 정도의 사람이 있었다. 벽에는 종이에 슥슥 휘갈긴 글씨들이 적혀있었는데, 이런 식이었다. ‘그 일을 해내지 못했을 때 죽는다면, 지금 무엇을 해야할까요?’, ‘오직 목표’, ‘배포 후 지표까지 봐야 개발 완료다.’, ‘피흘리는 아이에게 초콜릿을 주고 있지 않나요?’ 업무용 책상이 들어선 공간에는 삼탠바이미가 3대 서있었는데 5분마다 리프레시되는 데이터가 표시되어 있었다. 소개팅앱의 어제 매출과 유저 리텐션, 남녀 유저의 가입 퍼널, 실험군/대조군을 비교하는 그래프였다.

아침 스크럼 시간이 되었고, 다같이 스탠바이미를 보면서 이야기를 시작했다. 어제 매출은 어땠고, 개선하려 했던 퍼널은 어떻게 변했는지 결과를 확인했다. 이 퍼널이 개선되었으니 우리의 가설이 맞았다, 저 퍼널은 개선되지 않았으니 우리의 가설이 틀렸다는 이야기를 나눴다 (DB의 데이터는 grafana를 통해, 퍼널은 amplitude를 이용했다) 이후에 다음 실험을 위한 가설을 세웠다. 당시에는 데이팅 앱을 개발하고 있었는데, 남자 회원들의 가입 퍼널이 여성 회원에 비해 낮은 것이 이슈였다. amplitude 분석을 이용해 어느 구간에서 가입률이 크게 낮아지는지를 보고 액션을 정했다.

![[image.png]]

그리고 나서 다같이 자기소개를 했다. 팀러너스의 1분 자기소개 문화가 있었는데, 하루일하기, 투자사 방문 등으로 회사에 새로운 이가 방문하면 둥그렇게 모여 앉아 각자 자신에 대해 소개했다. 새로 오신 분이 긴장을 푸실 수 있게 회사 구성원들이 먼저 자기소개를 해주었는데, 가능하면 기억에 남는 재미있는 특징도 한 가지씩 말하곤 했다. ‘창업의 꿈’, ‘오버워치 그랜드마스터 출신’, ‘아이스하키 국가대표 상비군’ 같은 이야기를 들으면서 한 마디씩 주고 받다보니 어느새 긴장이 조금 풀리는 느낌이 들었다. 나도 재미있다고 생각하는 경험인 ‘총학생회장’, ‘축제준비위원장’ 등을 이야기하며 화답했다. 간단한 문답을 주고 받고, 곧바로 내가 투입될 수 있는 일감에 대해 이야기 해보았다.

모든 수단을 동원해 목표를 달성하라.

‘진우님 어떤 지표 개선하고 싶으세요?’

나는 무의식에 당연히

러너스가 나에게 기대한 목표는 나의 기능적 역할(서버 개발)에 국한되지 않았다. 러너스는 내가 동원할 수 있는 수단을 동원해, 러너스의 목표 달성에 도움이 되기를 기대했다. 가슴이 뛰었다. 그래, 개발자의 역할은 좋은 코드를 작성하면 땡이 아니다. 나는 엔지니어링에 specialty가 있지만, 이것은 팀의 목표를 서브하기 위한 수단에 불과하다. 개발자 역할의 가장 근본은, 팀이 겪는 문제를 해결하고 팀이 목표를 달성하도록 서브하는 것에 있었다.

첫 flutter를 설치하다

![[Pasted image 20240421130147.png]]

나는 그날 아침 스크럼에서 논의 되었던 남자 회원 가입 퍼널 지표를 개선해보겠다고 말했다. 그러려면 flutter로 개발된 앱 코드를 수정해야했다. ‘진우님 flutter 관련해서 질문 있으시면 희명님께 여쭤보세요.’ 다행히 팀에는 이 코드를 처음부터 개발해온 팀원이 있었고, 막히는 부분이 생기면 이 분의 도움을 받으면 될 것이었다. 챙겨간 맥북 에어에 안드로이드 스튜디오와 simulator를 설치하고, 처음으로 로컬 환경에 앱을 띄웠다. 당연히 앱을 실행하기까지 많은 시행착오를 겪었다. 당연하게도 이 서비스에 대한 어떤 docs도 작성되어 있지 않았고(빠른 실험을 위해 이슈 트래킹조차 하고 있지 않는다는 팀의 기조에 맞게) 나는 그 앱을 개발하신 분의 옆자리에 간이 의자를 놓고 앉아서 너무 오랜 시간 막혀있을 때마다 그 분께 도움을 청했다.

이렇게 많이 물어봐도 되나

문득 걱정이 들었다. 나는 오늘 ‘하루 일하기’로 이 자리에 와있고, 이것은 팀이 나를 하룻동안 지켜보고 평가하는 시간이다. ‘이 사람이 팀의 성공에 기여할 수 있을 것인가?’ 내가 너무 많은 질문을 하는 것이 ‘이 사람 아무 것도 모르잖아’라는 생각을 하게 만들까봐 걱정되었다. 질문을 최대한 적게 하는 것이 좋을까 하는 생각을 했다.

그러다가 마음을 고쳐먹었다. 팀이 원하는 것은 어떻게든 문제를 해결하는 것이다. 팀이 나에게 flutter를 맡긴 것은 좋은 코드의 앱을 만들기 위한 것이 아니었다. 지표를 개선하기 위한 것이었다. 내가 flutter를 잘하는 사람이었더라도, 지표가 개선되지 않았다면 그것은 목표를 달성하지 않은 것이다. 내가 flutter를 뜨문뜨문하는 사람이더라도, 지표가 개선되었다면 그것은 목표를 달성한 것이다. 팀이 나에게 기대하는 것은 지표를 개선하는 것이지, flutter를 잘하는 것이 아니다. 그런 생각을 하니 마음이 편해졌다. 나는 모든 수단을 동원해서 기존 코드 베이스를 이해하고, 팀의 지표를 개선하기 위한 액션을 하기만 하면 된다.

희명님을 옆에 앉히고, 궁금한 것을 모두 질문했다. 희명님의 시간을 너무 많이 뺐는 것이 아닐지 미안했다가도, 내가 코드베이스를 이해하게 된 것이 팀의 목표를 달성하는 속도를 단축시킨다면, 그것이 팀 차원에서 더 큰 효용이라는 데에 생각이 미치자 미안한 마음이 줄어들었다. 오히려 나를 더 빨리 이해시키는 것이 희명님 차원에서 팀에 기여하는 더 좋은 방법일 것이다.

![[Pasted image 20240421124645.png]]

회사에서 점심을, 회사에서 저녁을

팀러너스에서의 일상 중 가장 특이한 점을 꼽는다면, 점심과 저녁을 모두 회사에서 먹는다는 것이다. 푸딩이라는 오피스 배달 전문 서비스를 이용해 10개의 배달음식을 시키고, 회사에서 먹은 후 곧바로 다시 일을 한다. 이는 점심 시간마다 무엇을 먹을지 고민하고, 나가서 주문하고 나와서 돌아오는 시간까지 1시간 정도의 시간을 세이브한다는 이점이 있다. 무엇을 먹을지는 푸딩 업체에서 정해준다, 이미 배달이 완료된 상태이기 때문에 먹기만 하면 된다. 먹고 쓰레기까지 수거해준다. 일하다가 밥을 먹기로 결정했으면 그 자리에서 푸딩을 열어 밥을 먹고 다시 일을 한다. 시간이 10분 정도 밖에 소요되지 않는다. 처음에는 이 방식이 매우 신기하다가도, 어느 순간 이것이 너무 효율적이라 이것 이외의 방식으로는 충분히 집중을 유지하기 어렵다는 데에까지 생각이 이르렀다.

![[메인2.jpeg]]

PR, 그리고 merge

개발은 아침부터 밤까지 계속되었다. 시간이 어느새 자정이 되었는데, 사무실의 열기는 여전히 뜨거웠다. 그 열기에 나도 감화되어 시간이 가는 줄도 모르고 개발을 했다. 다행히 지난 회사에서 React 개발을 1년 이상 해왔기 때문에 flutter로 개발하는 것이 낯설지는 않았다. Fluter의 widget을 이용한 개발이, 잘 짜인 react 컴포넌트를 이용해서 개발하는 것처럼 느껴졌다.

마침내 작업을 완료했고, PR을 만들어 올렸다.

나: '희명님 리뷰 부탁드립니다.'
희명: '진우님 로컬에서 돌렸을 때 잘 돌아가나요?'
나: '네 잘 돌아가는 것 확인했습니다.'
희명: '그럼 master에 머지하시죠'
나: '네?'

그 날 clone 받은 프로덕션 앱에, 그 날 배우면서 작성한 flutter 코드는, 그날 곧바로 master에 머지되었다.

개발부터 배포까지의 중간 과정을 없앤다. 모든 것은 개발자가 책임진다.

내가 기대했던 것은 다른 사람으로부터의 코드 리뷰와 QA였다. 하지만 그런 것은 없었다. 모든 것은 만든 사람이 끝까지 책임진다. 내 코드의 퀄리티는 내가 책임져야 한다. 내 코드의 수정사항이 문제가 없다는 것은 내가 스스로 확신할 수 있어야 한다. 그래야 속도가 빨라진다.

‘코드 리뷰, QA 등의 개발부터 배포까지 거쳐야하는 프로세스가 많아질수록 팀의 속도가 느려진다. 그럼 과연 프로세스가 생기면 버그가 사라지고 앱의 완성도가 높아지느냐? 그렇지도 않다. 코드 리뷰와 QA는 지금 단계에서 필요하지 않다. 필요한 경우에만 요청하고, 대부분의 경우에는 개발자가 스스로 판단한다.’

내가 수정한 코드는 곧바로 플레이스토어/앱스토어 심사에 올라갔다. 결과는 심사가 마무리되고 앱이 공개되는 며칠 뒤에 확인할 수 있을 것이었다.

합류를 결심하다. 그리고 합류를 결정하다.

하루 일하기를 마무리하고, 집으로 돌아가는 길에 많은 생각이 스쳤다. 앞으로도 이렇게 일하고 싶다. 이정도로 똑똑한 사람들이, 이정도의 몰입도로 일하는 곳이라면 나도 빠르게 성장할 수 있을 것이라는 생각이 들었다. 커리어의 언젠가는 이곳에서 꼭 일해보고 싶다는 생각을 하며 집으로 돌아갔다.

거짓말처럼 기존에 몸담고 있던 팀(플립필드)이 임원진의 의사결정에 의해 해체되었다. 당시에 NFT를 사용하는 게임과 마켓플레이스를 만들고 있었는데, ‘루나 사태’가 터지고, 회사에서도 주력으로 미는 ‘쿠키런’ 게임의 주 유저층이 NFT에 대한 반발심을 가지고 있는 것에 대한 경영상의 리스크라고 판단한 것이다. 데브시스터즈 내의 다른 팀으로 옮길 수 있었지만, 초기 스타트업에 조인할 수 있게 신이 나에게 준 기회라고 생각했다.

그렇게 나는 팀러너스에 조인하게 되었다.