회고

떡상중인 스타트업의 변방 개발자 회고

자유로운 오랑우탄 2019. 12. 4. 15:59

유명한 퇴사짤이라길래

 

지난주 금요일에 다니던 회사를 퇴사했다. 빠르게 성장 중인 스타트업이었는데 내가 들어왔을 당시에 60명이던 인원이 지금은 110명을 바라보고 있다. 나는 주로 앱(RN)과 서버 개발을 맡았고 강의를 구매한 고객들을 위한 서비스를 주로 개발하였다. 그리고 마지막즘엔 PO(Project Owner)를 맡아 주로 앱의 의사결정에 참여했다.

 

요즘은 온종일 카페에 앉아 다리를 꼬고 앉아 여유를 만끽하고 있다. 지금 되돌아보면 6개월의 시간이 정말 체감이 안 될 정도로 빠르게 지나갔다. 그래서 정리를 해보려고 한다.

 

이 글엔 경험, 깨달은 점 그리고 후회하는 부분이 포함되어 있으며 저의 주관 하에 쓰여졌음을 알려드립니다. 피드백은 언제나 환영합니다.

 

회사는 성장을 시켜주는 곳이 아니다.

 

 

냉정하게 이야기하자면, 내 앞길은 내가 챙겨야 한다. 특히 스타트업이라면. 모두가 바쁘게 움직여야 하는데 누가 나를 챙겨주겠는가. 물론 정서적으로는 챙겨주겠지만.

 

보통 스타트업에선 함께 성장해나가는 거라고 이야기하는데, 함께 성장하려면 전제조건으로 내가 피똥 싸도록 열심히 해서 남도 성장시켜줄 수 있어야 한다는 점이다. Give & Take에서 Take만 할 수는 없으니까. 내가 줄 수 있는 것보다 배워야 할 게 더 많다면 더 열심히 공부해서 줄 수 있는 사람이 되어야 한다. 그렇지 않으면 점점 함께 하는 성장에서 멀어질 수밖에 없다. 잠깐 회고를 해보면 난 정말 남들에게 도움이 되는 존재였겠느냐는 생각을 해본다. 항상 배우려고만 했던 사람은 아니었는지.

 

입사하고 나서 초기엔 모든 것을 아는듯한 Flex를 풍기며 출근을 했었다. 그러나 점점 시간이 지날 수록 겸손해질 수밖에 없더라. 모르는 것을 물어보는 건 당연한데, 이렇게 계속 물어보면 '날 완전히 못하는 사람으로 보는 건 아니겠지' 라는 걱정이 들었던 적도 있었다. 그래도 눈치 없이 주변 개발자들에게 물어봐도 다 잘 잘 알려주더라(너희들은 참 착한 친구들이다). 다만 물어보기 전에 이게 물어볼 만한 것인지 한 번은 되물어 보자. 다른 친구들에겐 집중이 끊기는 요소가 될 수도 있고 이게 반복될 때 귀찮게 생각할 건 뻔하니까.

 

내가 노력해야 큰다. 주변 사람들에게 도움을 요청하는 것도 다 본인이 적극적으로 해야 한다. 기다리기엔 스타트업은 너무 빠르다.

 

일의 우선순위 정하기

 

 

사실 여기에 할 말이 정말 많다. 내가 가장 못 했었고 후회하고 있는 부분이다. 이전에 창업을 했을 때는 내가 일의 우선순위를 잘 정하고 일을 잘한다고 생각했었다. 그러나 막상 전쟁터인 스타트업에 들어가니 내가 예측하지 못했던 일들이 막 들어오기 시작했다. 즉 내가 통제하지 못하는 불확실성이 큰 환경이었다.

 

1. 불확실한 환경 속에서 하나에 집중하기

 

보통 오후 1시에 스크럼을 통해 오늘 할 일을 정하지만 쉽게 정해진 일만 할 수 없다. CS가 그 예인데, 나는 앱과 웹의 수강환경을 맡았었다. 문제는 이 환경이 기기나 브라우저를 탈 때도 있고, 수강 관련해서도 버그들이 있어서 CS가 꽤 들어온다. 그러면 가장 먼저 CS를 해결해야 하고, 자연스럽게 내가 하기로 했었던 일들은 밀려난다. 그 외에도 주변 팀원이 요청한 데이터를 뽑아 줘야 할 수도 있고 회의가 길어질 때도 많다. 이렇게 치고 들어오는 일들이 많을수록 정신은 없어지게 된다.

 

문득 깨달았던 건 난 멀티태스킹이 잘 안 되더라. 싱글 태스킹을 했어야 했다. 일이 많이 들어오게 되면 다 중요한 것 같고 빨리 해줘야 할 것 같았다. 어느새 우선순위를 따지기 보단 빨리 이걸 끝내야겠다는 생각만 들었다. 그러나 만일 정말 급한 게 아니었다면 뚝심으로 중요시 한다고 판단되는 일에 더 집중했으면 어땠을까 싶다.

 

처음에 욕을 먹더라도 나중에 돌아보면 한 가지를 확실하게 끝낸 친구가 더 신뢰를 얻고 능력을 인정받더라. 자잘하게 일을 많이 하기보단, 하나를 하더라도 제대로 확실하게 하는 게 시간이 걸리더라도 더 낫다.

 

2. 성장할 수 있도록 일하기

 

급하게 찍어봄

 

애자일 코칭으로 유명하신 김창준님의 저서 '함께 자라기'를 읽으면서 공감 가는 부분들이 꽤 많았다(선물해준 처리에게 경의를 표합니다)

 

경력과 일을 잘하는 것 사이엔 큰 상관관계가 없다고 한다. 경력이 많을수록 일하는 절대적인 시간은 많을 수 있다. 그러나 '의식적인 연습'이 들어간 시간과는 비례하지 않는다고 한다. 여기서 의식적인 연습이란 내가 성장하기 위해 의식적으로 연습하는 것이다. 수동적으로 일하면 할수록 남는 건 뭐가 있을까.


성장을 하면서 일한다는 건 현재 일하는 환경에 안주해 개발하는 게 아닌 환경 자체를 개선하려고 시도하고 노력하려는 것이 아닐까 싶다. 나는 초반에 서버 에러 DRI(책임자)를 맡았었다. 서버에서 뱉는 에러에 비해 로그가 잘 남지 않았기 때문이었다. 그때 서버 에러를 제대로 남기고 에러에 대한 형식을 분류해서 적용하고 끝냈다. 그러나 만일 클라이언트와 서버의 에러 인터페이스를 맞췄다면? 모니터링할 수 있는 환경을 구축했었다면? 시간이 걸렸을지라도 결과적으로 우리 개발팀은 더 떡상한 셈이 된다.


 

일에는 ABC 종류가 있다고 한다.

  • A는 회사에서 주어진 일이다. 예를 들면 앱 디자인을 토대로 개발을 하는 일이다.
  • B는 A를 개선하는 일이다. 앱 디자인의 패턴이 정해져 있다면 아예 컴포넌트로 만들어 중복 작업을 개선할 수 있다.
  • C는 B를 개선하는 작업이다. 컴포넌트를 계속 만들었더니 정리가 안 되어 있고 다른 개발자들은 이를 어떻게 쓰는지 모른다. 그래서 UI 컴포넌트를 문서화 하거나 혹은 디자이너와 이야기하면서 디자인 시스템을 만들어갈 수도 있다.

회고해 보자면 나는 보통 A를 많이 했었다. 많이 들어오는 일들을 빠르게 처리하는 것에만 집중했었고, 이를 개선할 수 있는 B, C에는 노력을 많이 들이지 못했다.

 

근본적인 문제를 해결하거나 그 환경을 개선하는데 더 많은 시간을 썼다면 어땠을까. 시간이 걸리더라도 하나씩 조져보는건 어땠을까.

 

사람들을 만나야 한다.

 

현대인의 필독서가 될 것이어라

 

'함께 자라기'에서는 뛰어난 개발자일수록 커뮤니케이션 능력이 우수하고 사회적 자본(상호 간 신뢰)을 많이 가지고 있다고 한다. 결국 개발을 잘한다는 건 컴퓨터만 이해한다고 될 것이 아니라 사람도 잘 이해해야 한다는 것이다.

 

새로운 언어를 쓰거나 새로운 라이브러리를 도입할 때도 결국은 사람을 설득해야 한다. 이에 대한 장점들에 대해서 객관적으로 이야기하는 것만이 중요한 게 아니다. 결국엔 사람이 내리는 이성적인 판단에 감정이 들어갈 수 밖에 없기 때문에 인간관계가 좋을 수록 설득에도 유리할 것이다.


불확실성이 높은 환경에서 개발자는 어떤 의사결정을 내리냐와 어떤 방식으로 코드를 짜냐가 중요하다고 본다. 내가 열심히 만들어놓은 코드가 하루아침에 쓸모없어질 수도 있고 도메인을 모른 채 개발하면 오히려 더 많은 에러를 업고 있을 수도 있다. 이런 불확실성을 극복하기 위해 많은 기업이 에자일 프로세스를 도입해 실행과 피드백을 얻는 주기를 최소화하고 있긴 하다. 또한 이 과정에서 PO가 태스크 관리를 확실하게 해주면 좀 더 낫긴 하겠지.

 

하지만 결국 개발은 개발자가 하는 거다. 회사 내의 다양한 정보와 방향을 담고 있는 코드일수록 가치는 달라질 수 밖에 없다. 코드가 회사의 비즈니스 방향을 담고 있다면 나중에 매몰차게 버려지는 일은 줄지 않을까. 이는 재사용성, 추상화, SOLID 원칙을 완수한 쩌는 코드와는 느낌과는 다르다고 본다. (갑자기 생각난 김에 DDD 방식으로 프로젝트나 얼른 해봐야겠다.)


 

그렇기 때문에 개발자라면 더더욱 주변의 많은 정보에 귀 기울여야 한다. 주변의 다른 직군인 사람들과도 만나서 프로젝트에 대해 이야기 해봤을 때 접근법이 나와는 다른 경우가 많다는 것을 느꼈다. 다른 방식을 통해 새롭게 얻을 수 있는 정보들도 많고 식견도 넓어짐을  느꼈다. 또 혹시 모르지. 이성친구 소개받을 수도 있고

 

아는 것보단 경험하는 게 최고다. 그러나 모르는 것보단 아는게 백배 낫다.

 

결론

 

뒤돌아보면 여유가 없었던 듯하다. 항상 바쁜 일정에 앞만 보고 달려고 내가 제대로 하고 있는지에 대한 생각을 거의 해보지 못했다. 그러다 보니 어느 순간 잘하고 있냐는 질문에 답을 내릴 수가 없더라. 그래서 우선 회사를 나와야지 뒤돌아볼 수 있다고 판단했다.

 

사실 두렵다. 이렇게 압축적인 성장을 할 수 있는 곳을 나왔기 때문에 그 전 만큼의 성장을 못 할 것이라는 막연한 불안감이 있다. 짧은 6개월 동안도 많은 걸 느꼈고 익혔는데 앞으로도 더 하겠지.

 

그래도 이 여유가 있는 것에 정말 감사함을 느낀다. 덕분에 되돌아보고 다른 곳에도 눈을 돌릴 수 있게 됐다. 앞으로 복학하기 전까진 더 큰 도약을 하기 전에 더 단단해져야겠다. 얼른 3대 400도 찍어야 되는데

 

 

 

[개인 광고]

1. 모든 개발자의 실무를 위한 올인원 개발 기본기 클래스 (클린 코드, 객체 지향, 테스트 작성법, 소프트웨어 아키텍처 등)

https://bit.ly/3maXZSr

 

모든 개발자의 실무를 위한 올인원 기본기 클래스 - 인프런 | 강의

분야 무관! 개발자라면 실무에서 꼭 알고 있어야 할 핵심 기본기를 쉽게 + 코드 위주로 다루는 강의입니다. 성장하고 싶은 모든 주니어 개발자와 취준생에게 이 강의를 적극 추천합니다., 실무

www.inflearn.com

2. 자바스크립트 하나로 웹, 서버, 모바일, 머신러닝까지 전부 익히는 올인원 클래스(베스트 셀러 & 리뷰 만점)

bit.ly/3h9MN6S

 

비전공자를 위한 진짜 올인원 개발 클래스 - 인프런 | 강의

왕초보도 할 수 있는 웹, 서버, 모바일 앱, 머신러닝까지 익히는 끝판왕 풀스택 강의입니다. 개발을 어디서부터 시작할지 막막했다면 이 강의를 강력 추천할게요. Javascript 하나로 진행합니다!, [

www.inflearn.com

3. IT 회사에서 살아남기 위한 모든 개발 지식

bit.ly/3uzesSS

 

IT 회사에서 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com