주니어 개발자에게 최고의 복지는 코드 리뷰 시간
저는 지난 10월부터 성남시에 있는 3View라는 회사에서 백엔드 개발자로 다시 일을 시작 했습니다. 애기가 연년생으로 둘이나 생겨서 부모님 집 근처로 이사 했고 비교적 출퇴근 거리가 가까운 좋은 회사를 찾다보니 이 회사에서 일 하게 되었습니다. 그 이전에는 부트캠프 학원 강사를 잠시 했었습니다.
저는 지금 일하고 있는 회사의 '신사업'팀에 있습니다. 이 팀은 제가 지금까지 소속 되어 있던 팀 중에서 가장 만족하면서 다니고 있는 팀 입니다. 제가 만족을 하면서 다닐 수 있는 이유가 단지 회사가 좋아서 만족하게 되었다기 보다는 제 연차가 쌓이면서 '개발'이라는 것을 할 수 있는 수준이 되었기 때문에 회사도 나름 만족하고 저도 만족을 하는 상황이 되었다고 생각합니다.
이 팀의 장점은 개발에 집중 할 수 있고 개발자가 일하기 좋은 시스템이 잘 되어 있다는 점이 제가 만족할 수 있는 점입니다. 그래서 제 지인들에게 많이 추천을 하고 있습니다.
이전에는 '개발'이 그저 돌아가게만 만들면 된다는 생각으로 잘 돌아가는 코드도 못 만들어내던 시절에도 개발을 했었던 것 같습니다. 이런 주니어 광야의 시절을 지나 지금은 '유연한' 코드를 만들 수 있고 요구사항이 있으면 되는 요구사항인지 시간이 더 걸리는 요구사항인지를 최소한으로 판단할 수 있는 수준이 된 것 같습니다.
최소한의 주니어
최근에 개발자를 채용을 하려고 제 지인들과 이전에 부트캠프에서 두각을 나타냈던 친구들과 대화를 하면서 흠짓 했던 것이 요즘은 개발자 신입 연봉은 4,000부터 시작하는 것 같다는 체감이 있어서 그렇습니다. 저는 11년 전에 2,200에 시작 했는데 그 만큼 물가가 2배가 오른 것 같아서 흠짓한 것입니다. 최저 시급이 오른 효과도 있지만 개발자는 다른 업계에 비해서 조금더 주는 것 같습니다. 조금 더 줄 수 있는 이유는 개발자의 생산성은 비교적 투명하게 그리고 얼마 안지나서 알 수 있기 때문입니다. 4,000이라는 숫자는 단지 부트캠프를 졸업했다고 해서 주는 입사만 하면 주는 연봉은 아닌 것 같습니다.
최소한의 커밋을 할 수 있는 개발자에 대해 4,000을 주는 것 같습니다. 여기에 조금 더 생산성 있는 코드를 만들 수 있으면 연봉이 올라가는 것입니다. 제가 말하는 '최소한의 커밋'이란 이유있는 코드를 말합니다. 예를 들면 User를 등록하라는 기능을 만들라는 요구사항을 주었을 때 단지 기능이 돌아가게만 만든다면 코드리뷰 단계에서 시니어 개발자가 머지를 해주지 않습니다.
User등록 기능을 만들었는데 그 기능은 지금 당장 돌아가지만 다른 기능에 Side Effect가 생겨 잘 되던게 안된다던지, 확장을 하려면 이 코드를 다시 리팩토링을 해서 기능을 추가해야 한다던지 하는 상황이라면 그 코드는 생산성 있는 코드가 아니고 생산성을 깎아먹는 코드가 되겠습니다.
Function 하나를 만들더라도 그 Function을 손대지 않고도 다른 기능으로 확장을 시킬 수 있게 만드는 것이 여러명이 사용할 서비스를 개발하는데는 중요하다고 할 수 있습니다.
주니어가 이유있는 Commit을 할 수 있으려면?
그래서 제가 생각 한 것은 코드리뷰를 해주는 것입니다. 많은 주니어들이 겪고 있는 고민은 '내가 성장 하고 있는게 맞는가?'하는 생각이 드는 것입니다.
개발은 하지만 피드백이 없는 개발을 하는 주니어들은 매우 많습니다. 비교적 괜찮은 연봉을 받고 입사한 스타트업에 내 코드를 리뷰해줄 시니어가 없다면 뛰어난 개발자로서 성장하는데 시간이 오래 걸릴 수 있습니다. 저도 주니어때는 같은 실수를 했던 것 같습니다. 단지 '수입이 나의 자부심'이라고 생각한 것이 제 실수입니다. '회사가 좋은 회사도 아니고 연봉이 높지도 않다면 과연 나의 자존감은 어디서 찾을 것인가?' 라는 생각을 계속 했었습니다. 하지만 내가 같은 소스코드(탄소)를 가지고 석탄을 만들어내는지 다이아몬드를 만들어 내는지에 따라 개발자의 가치는 정해지는 것입니다. 회사가 좋고 지금 얼마 받는것 보다는 과연 내가 다이아몬드가 될 수 있냐는 것이 중요한 것입니다. 하지만 주니어땐 몰랐죠.
시니어의 시간은 다이아몬드 주니어의 시간은 석탄
땔감으로 쓰는 석탄과 다이아몬드의 구성 요소는 같습니다. 하지만 그 배열이 조금 더 규칙적이면 다이아몬드가 되는 것이고 조금 덜 정리가 되어 있으면 석탄이 되는 것입니다.
저의 주니어 시절을 포함한 많은 주니어분들 께서는 구성요소(Commit되는 코드 량)가 같으니 나와 시니어는 별 차이가 없는데 시니어는 x소리를 지껄이는 것 같고 덜 일하고 더 받아가는 것 같다고 느낍니다.
이 얘기는 석탄을 집어넣으면서도 다이아몬드 값을 달라고 하는 것과 같습니다.
주니어의 코드는 참 애매하지요 버리기에는 아깝고 쓰자니 불안한 것입니다. 그래서 시니어의 코드 리뷰는 필요하다고 생각 합니다.
회사 입장에서 보면 주니어의 코드리뷰에 쓸 시간에 그냥 시니어 니가 개발해서 올리라고 말하고 싶겠지요. 이 전략이 생산성은 더 좋을 것이기 때문입니다. 하지만 코드리뷰를 한다는 것은 시니어의 시간을 주니어에게 할당 한다는 것입니다. 회사입장에서는 시니어의 시간을 할애하여 주니어에게 투자 하는 것입니다.
그래서 주니어 입장에서는 연봉을 500 더 받는 게 체감상 좋겠지만 회사입장에서는 500을 덜 주고 주니어의 코드리뷰를 해주는 것이 그 이상의 가치를 제공하는 것입니다.
경영진 입장에서는 코드리뷰에 쓸 시간에 제품을 더 만들라고 하는 것이 제무제표상으로는 올바른 판단입니다. 코드리뷰 해주는 것은 장기간의 투자이고 주니어 개발자가 성장해서 다른 회사로 이직해버리면 회사는 또한 남는 것이 없습니다.
이런 사정까지 고려할 수 있고 동료들의 코드리뷰까지 해줄 수 있는 다이아몬드 수준의 신입이라면 연봉 얼마가 아깝겠습니까. 오히려 그런 인재를 놓치는 것이 회사의 손해가 되겠지요.
잡썰이 길었는데 3View의 신사업팀으로 오신다면 코드리뷰를 해드린다는 것입니다.
다음은 프론트엔드 채용 공고 입니다. 많은 인재분들의 지원 바랍니다 ㅎㅎ
https://career.flex.team/3View/job-descriptions/WvYzRvDzZ3