초기 스타트업이 서비스를 개발하기 위해 할 수 있는 선택지는 크게 개발자 채용과 외주 개발 두 가지가 있습니다. 글을 쓰는 제가 스타트업에게 의뢰받아 서비스를 개발하는 개발 파트너의 입장이기 때문에 채용과 외주 간에 중립적인 비교가 어려울 것이라 생각하시겠지만 저는 의외로 만나는 고객사마다, 창업팀에 합류할 의사가 있는 좋은 개발자가 주변에 있다면 외주보다 채용이 낫다고 말씀드립니다.
개발자 채용을 먼저 시도해보신 후 잘 안 되시거나 채용 성공 후 개발자가 금방 이탈하거나 주니어와 개발을 하는데 너무 오랜 시간 시행착오를 겪고 있으실 때 다시 개발 의뢰를 고민하라고 말씀드리고 있고 더불어 어떤 개발자를 채용해야 하냐고 질문을 받는 경우가 많아 그에 대한 글을 정리해봤습니다.
지금은 15명의 개발팀을 운영하고 있지만 15년의 커리어 동안 스타트업을 하면서 프리랜서 개발자에게 외주 개발을 맡겨보기도 했고 기획과 프로젝트 매니지먼트를 수년간 했었으며 10년 이상 직접 개발을 하고 있고 개발팀을 이끌거나 기획팀/디자인팀/개발팀이 합쳐진 서비스 본부를 맡아보기도 했으므로 여러 가지 선택지를 경험했습니다.
몇 년차 개발자를 채용해야 하나
공동창업자급의 시니어 개발자나 같이 성장할 수 있는 태도와 학습 능력이 좋은 3~5년 차 경력 개발자가 합류한다면 이분들과 팀빌딩을 하여 자체 개발을 하는 것이 가장 좋은 선택지입니다. 처음부터 비개발자인 창업자가 2~3명의 개발자로 구성된 개발팀을 꾸리는 것은 어렵기 때문에 보통 한 명의 개발자를 채용하게 됩니다.
적어도 3~5년 차 이상이고 스타트업 서비스를 주도적으로 개발해 본 개발자를 채용하는 것이 좋습니다. 1~2년 차 이하의 개발자라면 협업 경험이 적어 창업자/기획자의 이야기를 잘 이해하지 못하거나 쉽게 구현할 수 있는 것을 복잡하게 설계하거나 자신이 짠 코드를 자신이 감당하지 못해 오류를 많이 만들고 쉽게 못 고칩니다. 이 단계에서는 아직 스스로 성장하기 어려워 사수가 없으면 좋지 않은 방법을 반복하게 되므로 혼자 개발을 해야 하는 초기 스타트업에서 주니어 개발자와 창업자는 궁합이 안 맞습니다.
그래서 스스로 개발의 방향성을 가지고 학습할 수 있고 자신감이 있으며 소통 능력이 있고 태도가 좋은 3~5년 차 이상의 개발자를 고려하시는 것이 좋습니다. 연봉과 지분을 맞춰줄 수 있고 1년 이상은 같이 할 정도로 신뢰가 형성되어야 하므로 모시고 오기 위해서는 사업에 대한 비전과 오랜 설득 과정, 어느 정도 정리된 보상 기준이 준비되어 있어야 합니다.
개발자가 원래 근무하던 회사를 그만두지 않고 파트타임으로 참여하겠다고 한다면 그만큼 개발 기간이 길어지고 집중도가 낮아지므로 창업자의 시간과 비즈니스 타이밍을 포기해야 한다는 점을 감안해야 합니다. 스타트업 초기에는 기획과 의사결정이 수시로 바뀌고 개발은 이를 발 빠르게 대응해야 하기 때문에 실력이 아주 좋은 개발자가 짬짬이 참여하는 것보다는 그 보다 실력이 좀 떨어져도 창업자 옆에서 붙어서 같이 개발해줄 개발자가 더 낫습니다.
1년 이상이라는 단서를 단 이유는, 서비스 출시 후 성과를 보이기까지는 혼자서 개발을 이어나가야 할 가능성이 높은데 서비스 출시 전에 이탈하는 것은 개발자 채용과 서비스 개발 과정을 처음부터 다시 해야 한다는 이야기이고 많은 시간과 비용이 낭비되게 됩니다.
출시 후에도 운영 과정에서 지속적인 기능 개선과 오류 대응을 해야 하는데 중간에 개발자가 이탈한다면 이를 이어서 개발해줄 개발자를 찾기는 더 어렵고 찾더라도 인수인계도 쉽지 않을뿐더러 새로운 개발자가 기존의 코드에 적응하기까지 서비스가 불안정할 수밖에 없습니다. 그래서 잠깐 개발해주고 떠날 개발자가 아니라 1년 이상 진지하게 합류하려는 개발자라 아니라면 실력이 좋다 하더라도 고민해봐야 합니다.
어떤 경험을 가진 개발자를 채용해야 하나
3~5년 차 이상이더라도 코드를 작성하지 않고 개발 관리만 해왔거나 테스트 코드만 작성해왔거나 커다란 프로젝트의 특정 파트만 담당해서 오랜 기간 발전시켜왔다면 스타트업 서비스 하나를 온전히 개발해내는 데 시행착오를 겪을 수 있습니다. 제한된 비용과 시간 안에서 요구사항을 UI와 기능으로 바꿔 해석하는 능력, 적당한 기술 타협, 그러면서도 기술 부채에 대한 적절한 컨트롤이 필요한데 이런 역량이 길러지려면 서비스 전체 레벨에서 구조를 살펴보고 코드를 직접 작성한 경험이 필요합니다.
몇 년차이냐가 똑같이 적용되지 않고 개발자마다 다르기 때문에 단기간에 빠르게 성장한 개발자와 오랜 기간 동안 평평한 성장을 한 개발자를 연차로 단순 비교하는 것은 어렵습니다. 경험의 양과 경험의 질을 모두 고려해야 하는데 1~2년 안에는 압축성장을 했다 하더라도 혼자 서비스 개발을 하기에는 어려움이 있고 3~5년 이상 개발을 했더라도 스타트업 서비스를 혼자서 만들 수 있는 역량이 쌓여 있는지 확인을 해야 하는데 비개발자인 창업가가 이를 판단하기 어려워 주변에 있는 시니어 개발자의 도움을 받는 것이 좋습니다.
경험의 양인 연차는 정량적인 지표라 그래도 파악이 쉽지만 경험의 질은 정성적인 지표이고 측정이 어렵기 때문에 개발자의 태도, 이해능력, 성장 욕구, 함께 일한 사람들의 평가, 시니어 개발자와의 면접이 필요합니다. 1~3개월의 수습 기간을 두고 협업을 원활하게 하는지 약속한 결과물을 적당한 시점에 만들어내는지, 말만 잘하는 사람인지, 겸손한데 묵묵히 좋은 성과를 내는 사람인지 같이 일해 보면서 파악을 합니다.
어떤 태도를 가진 개발자를 채용해야 하나
저는 요즘 좋은 태도를 가진 개발자들을 많이 만나고 있는데 반대로 좋지 않은 태도의 개발자들도 만나봤습니다. 고백하자면 제 스스로가 좋지 않은 태도의 개발자였던 시기가 있었으므로 좋은 태도와 그렇지 않은 태도가 협업의 난이도와 프로젝트 성공 확률을 얼마나 극과 극으로 바꾸는지 알고 있습니다.
좋은 태도라는 표현이 포괄적인데 몇 가지 요소를 말해보자면, 방어적이지 않고, 적극적으로 커뮤니케이션하려고 하며, 겸손하고, 자신의 잘못을 인정할 줄 알고, 자존감이 높으며, 지속적으로 스스로를 개선하려는 태도를 가졌다면 좋은 태도라고 할 수 있습니다. 좋은 사수가 있고 좋은 개발 환경이 있다면 태도가 좋은 개발자의 실력은 빠르게 늘게 되어 있습니다. 비즈니스 상황 변화에 적극적으로 대응하면서 도메인에 대한 이해도가 빠르게 높아집니다.
그런데 태도가 좋지 않다면 성장도 더디지만 같이 일하는 사람들을 정신적으로 힘들게 만들고 개발 진행도 더디고 프로젝트가 실패할 가능성을 높이기 때문에 채용하지 않거나, 억지로라도 채용을 하려면 좋은 태도의 개발자로 빠르게 변신시켜야 합니다. 사람을 변신시키는 것은 동기 부여와 멘토링의 영역이기 때문에 창업자 본인이 사람의 성향을 바꾸는 데 자신 있는 경우에 시도해보시길 바랍니다. 성공할 경우 평생 사업 파트너가 될 수도 있습니다.
채용의 난이도
좋은 개발자의 채용은 초기 스타트업이 할 수 있는 가장 좋은 선택지인 만큼 그 난이도가 높습니다. 시니어 개발자가 초창기 스타트업에 합류했다면 빠른 성과와 성공을 원하고 주니어 개발자가 초창기 스타트업에 합류했다면 효과적인 성장을 원합니다.
초창기 스타트업은 대기업과도 채용 경쟁을 해야 하지만 투자유치를 했거나 일단 서비스 런칭을 해서 사용자 반응을 모으고 있는 스타트업들과도 채용 경쟁을 해야 하다 보니 아직 서비스 개발을 시작하지 않은 상태에서 시니어에게 성공을, 주니어에게 성장을 상상하게 할 수 있는 포인트가 별로 없습니다. 어떻게 설득을 해서 모시고 와도 아직 이 사업과 서비스에 대한 확신이 부족하고 외부 유혹이 많아서 쉽게 이탈할 수 있습니다.
스타트업이 개발자를 선택하는 것이 아니라 스타트업이 개발자에게 선택받아야 하는 시대이기 때문에 입사 후에 서비스의 성공과 더불어 개발자로서의 커리어 성장, 비즈니스적인 경험과 흥미로운 기술 스택의 경험, 이후에 좋은 개발자/기획자/마케터들과 협업할 수 있다는 기대감, 본인의 성장에 따른 지속적인 보상 등 개발자들을 붙잡아두기 위한 장치들이 잘 마련되어 있어야 합니다.
핵심 개발자가 떠나려고 해요
스타트업에서의 개발자들의 근속 기간이 점점 짧아지고 있습니다. Z세대라고 표현하는 90년대생, 20대 중후반부터 30대 초반의 젊은 직장인들, 특히 개발자들은 연차에 따라 경험이 빠르게 성장하고 많은 기회에 노출되어 있으므로 더 좋은 보상과 성공의 기회, 성장의 기회가 있다면 변화를 추구합니다. 비개발 직군보다는 개발 직군이 상대적으로 이직 시의 연봉 인상과 새로운 기술/경험 습득의 기회가 많아 근속기간이 짧고 이직이 잦은 느낌입니다.
문제 상황이라기보다는 세대가 바뀌고 시대가 바뀌는 것이라, 그리고 수요/공급 상에 공급자인 개발자들이 유리한 상황이라 받아들여야 하고 대비해야 합니다. 떠나는 사람들에게 배신감을 느낄 필요도 없고 일단은 잘 보내주고 채용 및 보상 정책을 다듬은 후 또 다른 새로운 사람을 모시고 와야 하며 매끄럽게 인수인계가 될 수 있도록 해야 하죠. 그렇다고 짧은 근속기간을 대책 없이 지켜보라는 것은 아니고 1년 이상 붙잡아두기 위해 개발자들의 성장 장치와 보상 장치들을 마련해야 합니다.
계속 일할 수 있는 동기의 유지
'무엇이 성과를 이끄는가'라는 책에서 6가지 동기를 말하는데 일의 즐거움, 의미, 성장이 직접 동기여서 높여주어야 하고, 정서적 압박감, 경제적 압박감, 타성이 간접 동기인데 성과를 떨어뜨리기 때문에 이 동기에 대한 의존도를 줄여야 한다고 합니다. 다행히 개발이라는 직군은 비효율적으로 일하지만 않으면 기본적으로 즐거우면서 성장하기 좋은 분야이고, 스타트업은 공기업/대기업에 비해 사업의 비전과 의미를 강조하기 쉽습니다.
정서적/경제적 압박감과 타성을 줄이기 위해서는 스트레스가 적은 환경에서 다른 경제적 대안을 고민하지 않도록 충분한 보상이 있어야 하고 타성에 젖지 않도록 새로운 역할, 새로운 업무, 더 많은 책임감을 부여하면서 성장시켜야 합니다. 더군다나 개발자로서 매너리즘에 빠지지 않도록 개발자가 겪어보지 않은 새로운 기술 문제나 기술 스택을 경험하게 하는 것도 필요하고 UX나 비즈니스에 대한 고민도 개발자와 함께 나누어 수동적인 개발보다 적극적인 참여를 유도하면 좀 더 서비스에 대한 책임감을 심어줄 수 있습니다.
인썸니아도 초기에는 많은 개발자들이 빈번하게 나가고 들어오다가 회사의 평판이 개발자들 사이에서 좋아지고 보상 정책과 회사의 방향성을 정해나가자 점차 개발자들의 근속기간이 길어지고 있고 그분들이 추천한 개발자를 채용하게 되어 채용과 근속 유지의 어려움이 줄어들었습니다. 채용은 초기가 어렵고 점차 수월해지는 영역이니 희망을 가지고 파이팅하시기 바랍니다!
초기 스타트업은 어떤 개발자를 채용해야 하나
개발자 채용이냐 외주 개발이냐
초기 스타트업이 서비스를 개발하기 위해 할 수 있는 선택지는 크게 개발자 채용과 외주 개발 두 가지가 있습니다. 글을 쓰는 제가 스타트업에게 의뢰받아 서비스를 개발하는 개발 파트너의 입장이기 때문에 채용과 외주 간에 중립적인 비교가 어려울 것이라 생각하시겠지만 저는 의외로 만나는 고객사마다, 창업팀에 합류할 의사가 있는 좋은 개발자가 주변에 있다면 외주보다 채용이 낫다고 말씀드립니다.
개발자 채용을 먼저 시도해보신 후 잘 안 되시거나 채용 성공 후 개발자가 금방 이탈하거나 주니어와 개발을 하는데 너무 오랜 시간 시행착오를 겪고 있으실 때 다시 개발 의뢰를 고민하라고 말씀드리고 있고 더불어 어떤 개발자를 채용해야 하냐고 질문을 받는 경우가 많아 그에 대한 글을 정리해봤습니다.
지금은 15명의 개발팀을 운영하고 있지만 15년의 커리어 동안 스타트업을 하면서 프리랜서 개발자에게 외주 개발을 맡겨보기도 했고 기획과 프로젝트 매니지먼트를 수년간 했었으며 10년 이상 직접 개발을 하고 있고 개발팀을 이끌거나 기획팀/디자인팀/개발팀이 합쳐진 서비스 본부를 맡아보기도 했으므로 여러 가지 선택지를 경험했습니다.
몇 년차 개발자를 채용해야 하나
공동창업자급의 시니어 개발자나 같이 성장할 수 있는 태도와 학습 능력이 좋은 3~5년 차 경력 개발자가 합류한다면 이분들과 팀빌딩을 하여 자체 개발을 하는 것이 가장 좋은 선택지입니다. 처음부터 비개발자인 창업자가 2~3명의 개발자로 구성된 개발팀을 꾸리는 것은 어렵기 때문에 보통 한 명의 개발자를 채용하게 됩니다.
적어도 3~5년 차 이상이고 스타트업 서비스를 주도적으로 개발해 본 개발자를 채용하는 것이 좋습니다. 1~2년 차 이하의 개발자라면 협업 경험이 적어 창업자/기획자의 이야기를 잘 이해하지 못하거나 쉽게 구현할 수 있는 것을 복잡하게 설계하거나 자신이 짠 코드를 자신이 감당하지 못해 오류를 많이 만들고 쉽게 못 고칩니다. 이 단계에서는 아직 스스로 성장하기 어려워 사수가 없으면 좋지 않은 방법을 반복하게 되므로 혼자 개발을 해야 하는 초기 스타트업에서 주니어 개발자와 창업자는 궁합이 안 맞습니다.
그래서 스스로 개발의 방향성을 가지고 학습할 수 있고 자신감이 있으며 소통 능력이 있고 태도가 좋은 3~5년 차 이상의 개발자를 고려하시는 것이 좋습니다. 연봉과 지분을 맞춰줄 수 있고 1년 이상은 같이 할 정도로 신뢰가 형성되어야 하므로 모시고 오기 위해서는 사업에 대한 비전과 오랜 설득 과정, 어느 정도 정리된 보상 기준이 준비되어 있어야 합니다.
개발자가 원래 근무하던 회사를 그만두지 않고 파트타임으로 참여하겠다고 한다면 그만큼 개발 기간이 길어지고 집중도가 낮아지므로 창업자의 시간과 비즈니스 타이밍을 포기해야 한다는 점을 감안해야 합니다. 스타트업 초기에는 기획과 의사결정이 수시로 바뀌고 개발은 이를 발 빠르게 대응해야 하기 때문에 실력이 아주 좋은 개발자가 짬짬이 참여하는 것보다는 그 보다 실력이 좀 떨어져도 창업자 옆에서 붙어서 같이 개발해줄 개발자가 더 낫습니다.
1년 이상이라는 단서를 단 이유는, 서비스 출시 후 성과를 보이기까지는 혼자서 개발을 이어나가야 할 가능성이 높은데 서비스 출시 전에 이탈하는 것은 개발자 채용과 서비스 개발 과정을 처음부터 다시 해야 한다는 이야기이고 많은 시간과 비용이 낭비되게 됩니다.
출시 후에도 운영 과정에서 지속적인 기능 개선과 오류 대응을 해야 하는데 중간에 개발자가 이탈한다면 이를 이어서 개발해줄 개발자를 찾기는 더 어렵고 찾더라도 인수인계도 쉽지 않을뿐더러 새로운 개발자가 기존의 코드에 적응하기까지 서비스가 불안정할 수밖에 없습니다. 그래서 잠깐 개발해주고 떠날 개발자가 아니라 1년 이상 진지하게 합류하려는 개발자라 아니라면 실력이 좋다 하더라도 고민해봐야 합니다.
어떤 경험을 가진 개발자를 채용해야 하나
3~5년 차 이상이더라도 코드를 작성하지 않고 개발 관리만 해왔거나 테스트 코드만 작성해왔거나 커다란 프로젝트의 특정 파트만 담당해서 오랜 기간 발전시켜왔다면 스타트업 서비스 하나를 온전히 개발해내는 데 시행착오를 겪을 수 있습니다. 제한된 비용과 시간 안에서 요구사항을 UI와 기능으로 바꿔 해석하는 능력, 적당한 기술 타협, 그러면서도 기술 부채에 대한 적절한 컨트롤이 필요한데 이런 역량이 길러지려면 서비스 전체 레벨에서 구조를 살펴보고 코드를 직접 작성한 경험이 필요합니다.
몇 년차이냐가 똑같이 적용되지 않고 개발자마다 다르기 때문에 단기간에 빠르게 성장한 개발자와 오랜 기간 동안 평평한 성장을 한 개발자를 연차로 단순 비교하는 것은 어렵습니다. 경험의 양과 경험의 질을 모두 고려해야 하는데 1~2년 안에는 압축성장을 했다 하더라도 혼자 서비스 개발을 하기에는 어려움이 있고 3~5년 이상 개발을 했더라도 스타트업 서비스를 혼자서 만들 수 있는 역량이 쌓여 있는지 확인을 해야 하는데 비개발자인 창업가가 이를 판단하기 어려워 주변에 있는 시니어 개발자의 도움을 받는 것이 좋습니다.
경험의 양인 연차는 정량적인 지표라 그래도 파악이 쉽지만 경험의 질은 정성적인 지표이고 측정이 어렵기 때문에 개발자의 태도, 이해능력, 성장 욕구, 함께 일한 사람들의 평가, 시니어 개발자와의 면접이 필요합니다. 1~3개월의 수습 기간을 두고 협업을 원활하게 하는지 약속한 결과물을 적당한 시점에 만들어내는지, 말만 잘하는 사람인지, 겸손한데 묵묵히 좋은 성과를 내는 사람인지 같이 일해 보면서 파악을 합니다.
어떤 태도를 가진 개발자를 채용해야 하나
저는 요즘 좋은 태도를 가진 개발자들을 많이 만나고 있는데 반대로 좋지 않은 태도의 개발자들도 만나봤습니다. 고백하자면 제 스스로가 좋지 않은 태도의 개발자였던 시기가 있었으므로 좋은 태도와 그렇지 않은 태도가 협업의 난이도와 프로젝트 성공 확률을 얼마나 극과 극으로 바꾸는지 알고 있습니다.
좋은 태도라는 표현이 포괄적인데 몇 가지 요소를 말해보자면, 방어적이지 않고, 적극적으로 커뮤니케이션하려고 하며, 겸손하고, 자신의 잘못을 인정할 줄 알고, 자존감이 높으며, 지속적으로 스스로를 개선하려는 태도를 가졌다면 좋은 태도라고 할 수 있습니다. 좋은 사수가 있고 좋은 개발 환경이 있다면 태도가 좋은 개발자의 실력은 빠르게 늘게 되어 있습니다. 비즈니스 상황 변화에 적극적으로 대응하면서 도메인에 대한 이해도가 빠르게 높아집니다.
그런데 태도가 좋지 않다면 성장도 더디지만 같이 일하는 사람들을 정신적으로 힘들게 만들고 개발 진행도 더디고 프로젝트가 실패할 가능성을 높이기 때문에 채용하지 않거나, 억지로라도 채용을 하려면 좋은 태도의 개발자로 빠르게 변신시켜야 합니다. 사람을 변신시키는 것은 동기 부여와 멘토링의 영역이기 때문에 창업자 본인이 사람의 성향을 바꾸는 데 자신 있는 경우에 시도해보시길 바랍니다. 성공할 경우 평생 사업 파트너가 될 수도 있습니다.
채용의 난이도
좋은 개발자의 채용은 초기 스타트업이 할 수 있는 가장 좋은 선택지인 만큼 그 난이도가 높습니다. 시니어 개발자가 초창기 스타트업에 합류했다면 빠른 성과와 성공을 원하고 주니어 개발자가 초창기 스타트업에 합류했다면 효과적인 성장을 원합니다.
초창기 스타트업은 대기업과도 채용 경쟁을 해야 하지만 투자유치를 했거나 일단 서비스 런칭을 해서 사용자 반응을 모으고 있는 스타트업들과도 채용 경쟁을 해야 하다 보니 아직 서비스 개발을 시작하지 않은 상태에서 시니어에게 성공을, 주니어에게 성장을 상상하게 할 수 있는 포인트가 별로 없습니다. 어떻게 설득을 해서 모시고 와도 아직 이 사업과 서비스에 대한 확신이 부족하고 외부 유혹이 많아서 쉽게 이탈할 수 있습니다.
스타트업이 개발자를 선택하는 것이 아니라 스타트업이 개발자에게 선택받아야 하는 시대이기 때문에 입사 후에 서비스의 성공과 더불어 개발자로서의 커리어 성장, 비즈니스적인 경험과 흥미로운 기술 스택의 경험, 이후에 좋은 개발자/기획자/마케터들과 협업할 수 있다는 기대감, 본인의 성장에 따른 지속적인 보상 등 개발자들을 붙잡아두기 위한 장치들이 잘 마련되어 있어야 합니다.
핵심 개발자가 떠나려고 해요
스타트업에서의 개발자들의 근속 기간이 점점 짧아지고 있습니다. Z세대라고 표현하는 90년대생, 20대 중후반부터 30대 초반의 젊은 직장인들, 특히 개발자들은 연차에 따라 경험이 빠르게 성장하고 많은 기회에 노출되어 있으므로 더 좋은 보상과 성공의 기회, 성장의 기회가 있다면 변화를 추구합니다. 비개발 직군보다는 개발 직군이 상대적으로 이직 시의 연봉 인상과 새로운 기술/경험 습득의 기회가 많아 근속기간이 짧고 이직이 잦은 느낌입니다.
문제 상황이라기보다는 세대가 바뀌고 시대가 바뀌는 것이라, 그리고 수요/공급 상에 공급자인 개발자들이 유리한 상황이라 받아들여야 하고 대비해야 합니다. 떠나는 사람들에게 배신감을 느낄 필요도 없고 일단은 잘 보내주고 채용 및 보상 정책을 다듬은 후 또 다른 새로운 사람을 모시고 와야 하며 매끄럽게 인수인계가 될 수 있도록 해야 하죠. 그렇다고 짧은 근속기간을 대책 없이 지켜보라는 것은 아니고 1년 이상 붙잡아두기 위해 개발자들의 성장 장치와 보상 장치들을 마련해야 합니다.
계속 일할 수 있는 동기의 유지
'무엇이 성과를 이끄는가'라는 책에서 6가지 동기를 말하는데 일의 즐거움, 의미, 성장이 직접 동기여서 높여주어야 하고, 정서적 압박감, 경제적 압박감, 타성이 간접 동기인데 성과를 떨어뜨리기 때문에 이 동기에 대한 의존도를 줄여야 한다고 합니다. 다행히 개발이라는 직군은 비효율적으로 일하지만 않으면 기본적으로 즐거우면서 성장하기 좋은 분야이고, 스타트업은 공기업/대기업에 비해 사업의 비전과 의미를 강조하기 쉽습니다.
정서적/경제적 압박감과 타성을 줄이기 위해서는 스트레스가 적은 환경에서 다른 경제적 대안을 고민하지 않도록 충분한 보상이 있어야 하고 타성에 젖지 않도록 새로운 역할, 새로운 업무, 더 많은 책임감을 부여하면서 성장시켜야 합니다. 더군다나 개발자로서 매너리즘에 빠지지 않도록 개발자가 겪어보지 않은 새로운 기술 문제나 기술 스택을 경험하게 하는 것도 필요하고 UX나 비즈니스에 대한 고민도 개발자와 함께 나누어 수동적인 개발보다 적극적인 참여를 유도하면 좀 더 서비스에 대한 책임감을 심어줄 수 있습니다.
인썸니아도 초기에는 많은 개발자들이 빈번하게 나가고 들어오다가 회사의 평판이 개발자들 사이에서 좋아지고 보상 정책과 회사의 방향성을 정해나가자 점차 개발자들의 근속기간이 길어지고 있고 그분들이 추천한 개발자를 채용하게 되어 채용과 근속 유지의 어려움이 줄어들었습니다. 채용은 초기가 어렵고 점차 수월해지는 영역이니 희망을 가지고 파이팅하시기 바랍니다!
초기 스타트업은 어떤 개발자를 채용해야 하나
개발자 채용이냐 외주 개발이냐
초기 스타트업이 서비스를 개발하기 위해 할 수 있는 선택지는 크게 개발자 채용과 외주 개발 두 가지가 있습니다. 글을 쓰는 제가 스타트업에게 의뢰받아 서비스를 개발하는 개발 파트너의 입장이기 때문에 채용과 외주 간에 중립적인 비교가 어려울 것이라 생각하시겠지만 저는 의외로 만나는 고객사마다, 창업팀에 합류할 의사가 있는 좋은 개발자가 주변에 있다면 외주보다 채용이 낫다고 말씀드립니다.
개발자 채용을 먼저 시도해보신 후 잘 안 되시거나 채용 성공 후 개발자가 금방 이탈하거나 주니어와 개발을 하는데 너무 오랜 시간 시행착오를 겪고 있으실 때 다시 개발 의뢰를 고민하라고 말씀드리고 있고 더불어 어떤 개발자를 채용해야 하냐고 질문을 받는 경우가 많아 그에 대한 글을 정리해봤습니다.
지금은 15명의 개발팀을 운영하고 있지만 15년의 커리어 동안 스타트업을 하면서 프리랜서 개발자에게 외주 개발을 맡겨보기도 했고 기획과 프로젝트 매니지먼트를 수년간 했었으며 10년 이상 직접 개발을 하고 있고 개발팀을 이끌거나 기획팀/디자인팀/개발팀이 합쳐진 서비스 본부를 맡아보기도 했으므로 여러 가지 선택지를 경험했습니다.
몇 년차 개발자를 채용해야 하나
공동창업자급의 시니어 개발자나 같이 성장할 수 있는 태도와 학습 능력이 좋은 3~5년 차 경력 개발자가 합류한다면 이분들과 팀빌딩을 하여 자체 개발을 하는 것이 가장 좋은 선택지입니다. 처음부터 비개발자인 창업자가 2~3명의 개발자로 구성된 개발팀을 꾸리는 것은 어렵기 때문에 보통 한 명의 개발자를 채용하게 됩니다.
적어도 3~5년 차 이상이고 스타트업 서비스를 주도적으로 개발해 본 개발자를 채용하는 것이 좋습니다. 1~2년 차 이하의 개발자라면 협업 경험이 적어 창업자/기획자의 이야기를 잘 이해하지 못하거나 쉽게 구현할 수 있는 것을 복잡하게 설계하거나 자신이 짠 코드를 자신이 감당하지 못해 오류를 많이 만들고 쉽게 못 고칩니다. 이 단계에서는 아직 스스로 성장하기 어려워 사수가 없으면 좋지 않은 방법을 반복하게 되므로 혼자 개발을 해야 하는 초기 스타트업에서 주니어 개발자와 창업자는 궁합이 안 맞습니다.
그래서 스스로 개발의 방향성을 가지고 학습할 수 있고 자신감이 있으며 소통 능력이 있고 태도가 좋은 3~5년 차 이상의 개발자를 고려하시는 것이 좋습니다. 연봉과 지분을 맞춰줄 수 있고 1년 이상은 같이 할 정도로 신뢰가 형성되어야 하므로 모시고 오기 위해서는 사업에 대한 비전과 오랜 설득 과정, 어느 정도 정리된 보상 기준이 준비되어 있어야 합니다.
개발자가 원래 근무하던 회사를 그만두지 않고 파트타임으로 참여하겠다고 한다면 그만큼 개발 기간이 길어지고 집중도가 낮아지므로 창업자의 시간과 비즈니스 타이밍을 포기해야 한다는 점을 감안해야 합니다. 스타트업 초기에는 기획과 의사결정이 수시로 바뀌고 개발은 이를 발 빠르게 대응해야 하기 때문에 실력이 아주 좋은 개발자가 짬짬이 참여하는 것보다는 그 보다 실력이 좀 떨어져도 창업자 옆에서 붙어서 같이 개발해줄 개발자가 더 낫습니다.
1년 이상이라는 단서를 단 이유는, 서비스 출시 후 성과를 보이기까지는 혼자서 개발을 이어나가야 할 가능성이 높은데 서비스 출시 전에 이탈하는 것은 개발자 채용과 서비스 개발 과정을 처음부터 다시 해야 한다는 이야기이고 많은 시간과 비용이 낭비되게 됩니다.
출시 후에도 운영 과정에서 지속적인 기능 개선과 오류 대응을 해야 하는데 중간에 개발자가 이탈한다면 이를 이어서 개발해줄 개발자를 찾기는 더 어렵고 찾더라도 인수인계도 쉽지 않을뿐더러 새로운 개발자가 기존의 코드에 적응하기까지 서비스가 불안정할 수밖에 없습니다. 그래서 잠깐 개발해주고 떠날 개발자가 아니라 1년 이상 진지하게 합류하려는 개발자라 아니라면 실력이 좋다 하더라도 고민해봐야 합니다.
어떤 경험을 가진 개발자를 채용해야 하나
3~5년 차 이상이더라도 코드를 작성하지 않고 개발 관리만 해왔거나 테스트 코드만 작성해왔거나 커다란 프로젝트의 특정 파트만 담당해서 오랜 기간 발전시켜왔다면 스타트업 서비스 하나를 온전히 개발해내는 데 시행착오를 겪을 수 있습니다. 제한된 비용과 시간 안에서 요구사항을 UI와 기능으로 바꿔 해석하는 능력, 적당한 기술 타협, 그러면서도 기술 부채에 대한 적절한 컨트롤이 필요한데 이런 역량이 길러지려면 서비스 전체 레벨에서 구조를 살펴보고 코드를 직접 작성한 경험이 필요합니다.
몇 년차이냐가 똑같이 적용되지 않고 개발자마다 다르기 때문에 단기간에 빠르게 성장한 개발자와 오랜 기간 동안 평평한 성장을 한 개발자를 연차로 단순 비교하는 것은 어렵습니다. 경험의 양과 경험의 질을 모두 고려해야 하는데 1~2년 안에는 압축성장을 했다 하더라도 혼자 서비스 개발을 하기에는 어려움이 있고 3~5년 이상 개발을 했더라도 스타트업 서비스를 혼자서 만들 수 있는 역량이 쌓여 있는지 확인을 해야 하는데 비개발자인 창업가가 이를 판단하기 어려워 주변에 있는 시니어 개발자의 도움을 받는 것이 좋습니다.
경험의 양인 연차는 정량적인 지표라 그래도 파악이 쉽지만 경험의 질은 정성적인 지표이고 측정이 어렵기 때문에 개발자의 태도, 이해능력, 성장 욕구, 함께 일한 사람들의 평가, 시니어 개발자와의 면접이 필요합니다. 1~3개월의 수습 기간을 두고 협업을 원활하게 하는지 약속한 결과물을 적당한 시점에 만들어내는지, 말만 잘하는 사람인지, 겸손한데 묵묵히 좋은 성과를 내는 사람인지 같이 일해 보면서 파악을 합니다.
어떤 태도를 가진 개발자를 채용해야 하나
저는 요즘 좋은 태도를 가진 개발자들을 많이 만나고 있는데 반대로 좋지 않은 태도의 개발자들도 만나봤습니다. 고백하자면 제 스스로가 좋지 않은 태도의 개발자였던 시기가 있었으므로 좋은 태도와 그렇지 않은 태도가 협업의 난이도와 프로젝트 성공 확률을 얼마나 극과 극으로 바꾸는지 알고 있습니다.
좋은 태도라는 표현이 포괄적인데 몇 가지 요소를 말해보자면, 방어적이지 않고, 적극적으로 커뮤니케이션하려고 하며, 겸손하고, 자신의 잘못을 인정할 줄 알고, 자존감이 높으며, 지속적으로 스스로를 개선하려는 태도를 가졌다면 좋은 태도라고 할 수 있습니다. 좋은 사수가 있고 좋은 개발 환경이 있다면 태도가 좋은 개발자의 실력은 빠르게 늘게 되어 있습니다. 비즈니스 상황 변화에 적극적으로 대응하면서 도메인에 대한 이해도가 빠르게 높아집니다.
그런데 태도가 좋지 않다면 성장도 더디지만 같이 일하는 사람들을 정신적으로 힘들게 만들고 개발 진행도 더디고 프로젝트가 실패할 가능성을 높이기 때문에 채용하지 않거나, 억지로라도 채용을 하려면 좋은 태도의 개발자로 빠르게 변신시켜야 합니다. 사람을 변신시키는 것은 동기 부여와 멘토링의 영역이기 때문에 창업자 본인이 사람의 성향을 바꾸는 데 자신 있는 경우에 시도해보시길 바랍니다. 성공할 경우 평생 사업 파트너가 될 수도 있습니다.
채용의 난이도
좋은 개발자의 채용은 초기 스타트업이 할 수 있는 가장 좋은 선택지인 만큼 그 난이도가 높습니다. 시니어 개발자가 초창기 스타트업에 합류했다면 빠른 성과와 성공을 원하고 주니어 개발자가 초창기 스타트업에 합류했다면 효과적인 성장을 원합니다.
초창기 스타트업은 대기업과도 채용 경쟁을 해야 하지만 투자유치를 했거나 일단 서비스 런칭을 해서 사용자 반응을 모으고 있는 스타트업들과도 채용 경쟁을 해야 하다 보니 아직 서비스 개발을 시작하지 않은 상태에서 시니어에게 성공을, 주니어에게 성장을 상상하게 할 수 있는 포인트가 별로 없습니다. 어떻게 설득을 해서 모시고 와도 아직 이 사업과 서비스에 대한 확신이 부족하고 외부 유혹이 많아서 쉽게 이탈할 수 있습니다.
스타트업이 개발자를 선택하는 것이 아니라 스타트업이 개발자에게 선택받아야 하는 시대이기 때문에 입사 후에 서비스의 성공과 더불어 개발자로서의 커리어 성장, 비즈니스적인 경험과 흥미로운 기술 스택의 경험, 이후에 좋은 개발자/기획자/마케터들과 협업할 수 있다는 기대감, 본인의 성장에 따른 지속적인 보상 등 개발자들을 붙잡아두기 위한 장치들이 잘 마련되어 있어야 합니다.
핵심 개발자가 떠나려고 해요
스타트업에서의 개발자들의 근속 기간이 점점 짧아지고 있습니다. Z세대라고 표현하는 90년대생, 20대 중후반부터 30대 초반의 젊은 직장인들, 특히 개발자들은 연차에 따라 경험이 빠르게 성장하고 많은 기회에 노출되어 있으므로 더 좋은 보상과 성공의 기회, 성장의 기회가 있다면 변화를 추구합니다. 비개발 직군보다는 개발 직군이 상대적으로 이직 시의 연봉 인상과 새로운 기술/경험 습득의 기회가 많아 근속기간이 짧고 이직이 잦은 느낌입니다.
문제 상황이라기보다는 세대가 바뀌고 시대가 바뀌는 것이라, 그리고 수요/공급 상에 공급자인 개발자들이 유리한 상황이라 받아들여야 하고 대비해야 합니다. 떠나는 사람들에게 배신감을 느낄 필요도 없고 일단은 잘 보내주고 채용 및 보상 정책을 다듬은 후 또 다른 새로운 사람을 모시고 와야 하며 매끄럽게 인수인계가 될 수 있도록 해야 하죠. 그렇다고 짧은 근속기간을 대책 없이 지켜보라는 것은 아니고 1년 이상 붙잡아두기 위해 개발자들의 성장 장치와 보상 장치들을 마련해야 합니다.
계속 일할 수 있는 동기의 유지
'무엇이 성과를 이끄는가'라는 책에서 6가지 동기를 말하는데 일의 즐거움, 의미, 성장이 직접 동기여서 높여주어야 하고, 정서적 압박감, 경제적 압박감, 타성이 간접 동기인데 성과를 떨어뜨리기 때문에 이 동기에 대한 의존도를 줄여야 한다고 합니다. 다행히 개발이라는 직군은 비효율적으로 일하지만 않으면 기본적으로 즐거우면서 성장하기 좋은 분야이고, 스타트업은 공기업/대기업에 비해 사업의 비전과 의미를 강조하기 쉽습니다.
정서적/경제적 압박감과 타성을 줄이기 위해서는 스트레스가 적은 환경에서 다른 경제적 대안을 고민하지 않도록 충분한 보상이 있어야 하고 타성에 젖지 않도록 새로운 역할, 새로운 업무, 더 많은 책임감을 부여하면서 성장시켜야 합니다. 더군다나 개발자로서 매너리즘에 빠지지 않도록 개발자가 겪어보지 않은 새로운 기술 문제나 기술 스택을 경험하게 하는 것도 필요하고 UX나 비즈니스에 대한 고민도 개발자와 함께 나누어 수동적인 개발보다 적극적인 참여를 유도하면 좀 더 서비스에 대한 책임감을 심어줄 수 있습니다.
인썸니아도 초기에는 많은 개발자들이 빈번하게 나가고 들어오다가 회사의 평판이 개발자들 사이에서 좋아지고 보상 정책과 회사의 방향성을 정해나가자 점차 개발자들의 근속기간이 길어지고 있고 그분들이 추천한 개발자를 채용하게 되어 채용과 근속 유지의 어려움이 줄어들었습니다. 채용은 초기가 어렵고 점차 수월해지는 영역이니 희망을 가지고 파이팅하시기 바랍니다!
초기 스타트업은 어떤 개발자를 채용해야 하나
개발자 채용이냐 외주 개발이냐
초기 스타트업이 서비스를 개발하기 위해 할 수 있는 선택지는 크게 개발자 채용과 외주 개발 두 가지가 있습니다. 글을 쓰는 제가 스타트업에게 의뢰받아 서비스를 개발하는 개발 파트너의 입장이기 때문에 채용과 외주 간에 중립적인 비교가 어려울 것이라 생각하시겠지만 저는 의외로 만나는 고객사마다, 창업팀에 합류할 의사가 있는 좋은 개발자가 주변에 있다면 외주보다 채용이 낫다고 말씀드립니다.
개발자 채용을 먼저 시도해보신 후 잘 안 되시거나 채용 성공 후 개발자가 금방 이탈하거나 주니어와 개발을 하는데 너무 오랜 시간 시행착오를 겪고 있으실 때 다시 개발 의뢰를 고민하라고 말씀드리고 있고 더불어 어떤 개발자를 채용해야 하냐고 질문을 받는 경우가 많아 그에 대한 글을 정리해봤습니다.
지금은 15명의 개발팀을 운영하고 있지만 15년의 커리어 동안 스타트업을 하면서 프리랜서 개발자에게 외주 개발을 맡겨보기도 했고 기획과 프로젝트 매니지먼트를 수년간 했었으며 10년 이상 직접 개발을 하고 있고 개발팀을 이끌거나 기획팀/디자인팀/개발팀이 합쳐진 서비스 본부를 맡아보기도 했으므로 여러 가지 선택지를 경험했습니다.
몇 년차 개발자를 채용해야 하나
공동창업자급의 시니어 개발자나 같이 성장할 수 있는 태도와 학습 능력이 좋은 3~5년 차 경력 개발자가 합류한다면 이분들과 팀빌딩을 하여 자체 개발을 하는 것이 가장 좋은 선택지입니다. 처음부터 비개발자인 창업자가 2~3명의 개발자로 구성된 개발팀을 꾸리는 것은 어렵기 때문에 보통 한 명의 개발자를 채용하게 됩니다.
적어도 3~5년 차 이상이고 스타트업 서비스를 주도적으로 개발해 본 개발자를 채용하는 것이 좋습니다. 1~2년 차 이하의 개발자라면 협업 경험이 적어 창업자/기획자의 이야기를 잘 이해하지 못하거나 쉽게 구현할 수 있는 것을 복잡하게 설계하거나 자신이 짠 코드를 자신이 감당하지 못해 오류를 많이 만들고 쉽게 못 고칩니다. 이 단계에서는 아직 스스로 성장하기 어려워 사수가 없으면 좋지 않은 방법을 반복하게 되므로 혼자 개발을 해야 하는 초기 스타트업에서 주니어 개발자와 창업자는 궁합이 안 맞습니다.
그래서 스스로 개발의 방향성을 가지고 학습할 수 있고 자신감이 있으며 소통 능력이 있고 태도가 좋은 3~5년 차 이상의 개발자를 고려하시는 것이 좋습니다. 연봉과 지분을 맞춰줄 수 있고 1년 이상은 같이 할 정도로 신뢰가 형성되어야 하므로 모시고 오기 위해서는 사업에 대한 비전과 오랜 설득 과정, 어느 정도 정리된 보상 기준이 준비되어 있어야 합니다.
개발자가 원래 근무하던 회사를 그만두지 않고 파트타임으로 참여하겠다고 한다면 그만큼 개발 기간이 길어지고 집중도가 낮아지므로 창업자의 시간과 비즈니스 타이밍을 포기해야 한다는 점을 감안해야 합니다. 스타트업 초기에는 기획과 의사결정이 수시로 바뀌고 개발은 이를 발 빠르게 대응해야 하기 때문에 실력이 아주 좋은 개발자가 짬짬이 참여하는 것보다는 그 보다 실력이 좀 떨어져도 창업자 옆에서 붙어서 같이 개발해줄 개발자가 더 낫습니다.
1년 이상이라는 단서를 단 이유는, 서비스 출시 후 성과를 보이기까지는 혼자서 개발을 이어나가야 할 가능성이 높은데 서비스 출시 전에 이탈하는 것은 개발자 채용과 서비스 개발 과정을 처음부터 다시 해야 한다는 이야기이고 많은 시간과 비용이 낭비되게 됩니다.
출시 후에도 운영 과정에서 지속적인 기능 개선과 오류 대응을 해야 하는데 중간에 개발자가 이탈한다면 이를 이어서 개발해줄 개발자를 찾기는 더 어렵고 찾더라도 인수인계도 쉽지 않을뿐더러 새로운 개발자가 기존의 코드에 적응하기까지 서비스가 불안정할 수밖에 없습니다. 그래서 잠깐 개발해주고 떠날 개발자가 아니라 1년 이상 진지하게 합류하려는 개발자라 아니라면 실력이 좋다 하더라도 고민해봐야 합니다.
어떤 경험을 가진 개발자를 채용해야 하나
3~5년 차 이상이더라도 코드를 작성하지 않고 개발 관리만 해왔거나 테스트 코드만 작성해왔거나 커다란 프로젝트의 특정 파트만 담당해서 오랜 기간 발전시켜왔다면 스타트업 서비스 하나를 온전히 개발해내는 데 시행착오를 겪을 수 있습니다. 제한된 비용과 시간 안에서 요구사항을 UI와 기능으로 바꿔 해석하는 능력, 적당한 기술 타협, 그러면서도 기술 부채에 대한 적절한 컨트롤이 필요한데 이런 역량이 길러지려면 서비스 전체 레벨에서 구조를 살펴보고 코드를 직접 작성한 경험이 필요합니다.
몇 년차이냐가 똑같이 적용되지 않고 개발자마다 다르기 때문에 단기간에 빠르게 성장한 개발자와 오랜 기간 동안 평평한 성장을 한 개발자를 연차로 단순 비교하는 것은 어렵습니다. 경험의 양과 경험의 질을 모두 고려해야 하는데 1~2년 안에는 압축성장을 했다 하더라도 혼자 서비스 개발을 하기에는 어려움이 있고 3~5년 이상 개발을 했더라도 스타트업 서비스를 혼자서 만들 수 있는 역량이 쌓여 있는지 확인을 해야 하는데 비개발자인 창업가가 이를 판단하기 어려워 주변에 있는 시니어 개발자의 도움을 받는 것이 좋습니다.
경험의 양인 연차는 정량적인 지표라 그래도 파악이 쉽지만 경험의 질은 정성적인 지표이고 측정이 어렵기 때문에 개발자의 태도, 이해능력, 성장 욕구, 함께 일한 사람들의 평가, 시니어 개발자와의 면접이 필요합니다. 1~3개월의 수습 기간을 두고 협업을 원활하게 하는지 약속한 결과물을 적당한 시점에 만들어내는지, 말만 잘하는 사람인지, 겸손한데 묵묵히 좋은 성과를 내는 사람인지 같이 일해 보면서 파악을 합니다.
어떤 태도를 가진 개발자를 채용해야 하나
저는 요즘 좋은 태도를 가진 개발자들을 많이 만나고 있는데 반대로 좋지 않은 태도의 개발자들도 만나봤습니다. 고백하자면 제 스스로가 좋지 않은 태도의 개발자였던 시기가 있었으므로 좋은 태도와 그렇지 않은 태도가 협업의 난이도와 프로젝트 성공 확률을 얼마나 극과 극으로 바꾸는지 알고 있습니다.
좋은 태도라는 표현이 포괄적인데 몇 가지 요소를 말해보자면, 방어적이지 않고, 적극적으로 커뮤니케이션하려고 하며, 겸손하고, 자신의 잘못을 인정할 줄 알고, 자존감이 높으며, 지속적으로 스스로를 개선하려는 태도를 가졌다면 좋은 태도라고 할 수 있습니다. 좋은 사수가 있고 좋은 개발 환경이 있다면 태도가 좋은 개발자의 실력은 빠르게 늘게 되어 있습니다. 비즈니스 상황 변화에 적극적으로 대응하면서 도메인에 대한 이해도가 빠르게 높아집니다.
그런데 태도가 좋지 않다면 성장도 더디지만 같이 일하는 사람들을 정신적으로 힘들게 만들고 개발 진행도 더디고 프로젝트가 실패할 가능성을 높이기 때문에 채용하지 않거나, 억지로라도 채용을 하려면 좋은 태도의 개발자로 빠르게 변신시켜야 합니다. 사람을 변신시키는 것은 동기 부여와 멘토링의 영역이기 때문에 창업자 본인이 사람의 성향을 바꾸는 데 자신 있는 경우에 시도해보시길 바랍니다. 성공할 경우 평생 사업 파트너가 될 수도 있습니다.
채용의 난이도
좋은 개발자의 채용은 초기 스타트업이 할 수 있는 가장 좋은 선택지인 만큼 그 난이도가 높습니다. 시니어 개발자가 초창기 스타트업에 합류했다면 빠른 성과와 성공을 원하고 주니어 개발자가 초창기 스타트업에 합류했다면 효과적인 성장을 원합니다.
초창기 스타트업은 대기업과도 채용 경쟁을 해야 하지만 투자유치를 했거나 일단 서비스 런칭을 해서 사용자 반응을 모으고 있는 스타트업들과도 채용 경쟁을 해야 하다 보니 아직 서비스 개발을 시작하지 않은 상태에서 시니어에게 성공을, 주니어에게 성장을 상상하게 할 수 있는 포인트가 별로 없습니다. 어떻게 설득을 해서 모시고 와도 아직 이 사업과 서비스에 대한 확신이 부족하고 외부 유혹이 많아서 쉽게 이탈할 수 있습니다.
스타트업이 개발자를 선택하는 것이 아니라 스타트업이 개발자에게 선택받아야 하는 시대이기 때문에 입사 후에 서비스의 성공과 더불어 개발자로서의 커리어 성장, 비즈니스적인 경험과 흥미로운 기술 스택의 경험, 이후에 좋은 개발자/기획자/마케터들과 협업할 수 있다는 기대감, 본인의 성장에 따른 지속적인 보상 등 개발자들을 붙잡아두기 위한 장치들이 잘 마련되어 있어야 합니다.
핵심 개발자가 떠나려고 해요
스타트업에서의 개발자들의 근속 기간이 점점 짧아지고 있습니다. Z세대라고 표현하는 90년대생, 20대 중후반부터 30대 초반의 젊은 직장인들, 특히 개발자들은 연차에 따라 경험이 빠르게 성장하고 많은 기회에 노출되어 있으므로 더 좋은 보상과 성공의 기회, 성장의 기회가 있다면 변화를 추구합니다. 비개발 직군보다는 개발 직군이 상대적으로 이직 시의 연봉 인상과 새로운 기술/경험 습득의 기회가 많아 근속기간이 짧고 이직이 잦은 느낌입니다.
문제 상황이라기보다는 세대가 바뀌고 시대가 바뀌는 것이라, 그리고 수요/공급 상에 공급자인 개발자들이 유리한 상황이라 받아들여야 하고 대비해야 합니다. 떠나는 사람들에게 배신감을 느낄 필요도 없고 일단은 잘 보내주고 채용 및 보상 정책을 다듬은 후 또 다른 새로운 사람을 모시고 와야 하며 매끄럽게 인수인계가 될 수 있도록 해야 하죠. 그렇다고 짧은 근속기간을 대책 없이 지켜보라는 것은 아니고 1년 이상 붙잡아두기 위해 개발자들의 성장 장치와 보상 장치들을 마련해야 합니다.
계속 일할 수 있는 동기의 유지
'무엇이 성과를 이끄는가'라는 책에서 6가지 동기를 말하는데 일의 즐거움, 의미, 성장이 직접 동기여서 높여주어야 하고, 정서적 압박감, 경제적 압박감, 타성이 간접 동기인데 성과를 떨어뜨리기 때문에 이 동기에 대한 의존도를 줄여야 한다고 합니다. 다행히 개발이라는 직군은 비효율적으로 일하지만 않으면 기본적으로 즐거우면서 성장하기 좋은 분야이고, 스타트업은 공기업/대기업에 비해 사업의 비전과 의미를 강조하기 쉽습니다.
정서적/경제적 압박감과 타성을 줄이기 위해서는 스트레스가 적은 환경에서 다른 경제적 대안을 고민하지 않도록 충분한 보상이 있어야 하고 타성에 젖지 않도록 새로운 역할, 새로운 업무, 더 많은 책임감을 부여하면서 성장시켜야 합니다. 더군다나 개발자로서 매너리즘에 빠지지 않도록 개발자가 겪어보지 않은 새로운 기술 문제나 기술 스택을 경험하게 하는 것도 필요하고 UX나 비즈니스에 대한 고민도 개발자와 함께 나누어 수동적인 개발보다 적극적인 참여를 유도하면 좀 더 서비스에 대한 책임감을 심어줄 수 있습니다.
인썸니아도 초기에는 많은 개발자들이 빈번하게 나가고 들어오다가 회사의 평판이 개발자들 사이에서 좋아지고 보상 정책과 회사의 방향성을 정해나가자 점차 개발자들의 근속기간이 길어지고 있고 그분들이 추천한 개발자를 채용하게 되어 채용과 근속 유지의 어려움이 줄어들었습니다. 채용은 초기가 어렵고 점차 수월해지는 영역이니 희망을 가지고 파이팅하시기 바랍니다!
초기 스타트업은 어떤 개발자를 채용해야 하나
개발자 채용이냐 외주 개발이냐
초기 스타트업이 서비스를 개발하기 위해 할 수 있는 선택지는 크게 개발자 채용과 외주 개발 두 가지가 있습니다. 글을 쓰는 제가 스타트업에게 의뢰받아 서비스를 개발하는 개발 파트너의 입장이기 때문에 채용과 외주 간에 중립적인 비교가 어려울 것이라 생각하시겠지만 저는 의외로 만나는 고객사마다, 창업팀에 합류할 의사가 있는 좋은 개발자가 주변에 있다면 외주보다 채용이 낫다고 말씀드립니다.
개발자 채용을 먼저 시도해보신 후 잘 안 되시거나 채용 성공 후 개발자가 금방 이탈하거나 주니어와 개발을 하는데 너무 오랜 시간 시행착오를 겪고 있으실 때 다시 개발 의뢰를 고민하라고 말씀드리고 있고 더불어 어떤 개발자를 채용해야 하냐고 질문을 받는 경우가 많아 그에 대한 글을 정리해봤습니다.
지금은 15명의 개발팀을 운영하고 있지만 15년의 커리어 동안 스타트업을 하면서 프리랜서 개발자에게 외주 개발을 맡겨보기도 했고 기획과 프로젝트 매니지먼트를 수년간 했었으며 10년 이상 직접 개발을 하고 있고 개발팀을 이끌거나 기획팀/디자인팀/개발팀이 합쳐진 서비스 본부를 맡아보기도 했으므로 여러 가지 선택지를 경험했습니다.
몇 년차 개발자를 채용해야 하나
공동창업자급의 시니어 개발자나 같이 성장할 수 있는 태도와 학습 능력이 좋은 3~5년 차 경력 개발자가 합류한다면 이분들과 팀빌딩을 하여 자체 개발을 하는 것이 가장 좋은 선택지입니다. 처음부터 비개발자인 창업자가 2~3명의 개발자로 구성된 개발팀을 꾸리는 것은 어렵기 때문에 보통 한 명의 개발자를 채용하게 됩니다.
적어도 3~5년 차 이상이고 스타트업 서비스를 주도적으로 개발해 본 개발자를 채용하는 것이 좋습니다. 1~2년 차 이하의 개발자라면 협업 경험이 적어 창업자/기획자의 이야기를 잘 이해하지 못하거나 쉽게 구현할 수 있는 것을 복잡하게 설계하거나 자신이 짠 코드를 자신이 감당하지 못해 오류를 많이 만들고 쉽게 못 고칩니다. 이 단계에서는 아직 스스로 성장하기 어려워 사수가 없으면 좋지 않은 방법을 반복하게 되므로 혼자 개발을 해야 하는 초기 스타트업에서 주니어 개발자와 창업자는 궁합이 안 맞습니다.
그래서 스스로 개발의 방향성을 가지고 학습할 수 있고 자신감이 있으며 소통 능력이 있고 태도가 좋은 3~5년 차 이상의 개발자를 고려하시는 것이 좋습니다. 연봉과 지분을 맞춰줄 수 있고 1년 이상은 같이 할 정도로 신뢰가 형성되어야 하므로 모시고 오기 위해서는 사업에 대한 비전과 오랜 설득 과정, 어느 정도 정리된 보상 기준이 준비되어 있어야 합니다.
개발자가 원래 근무하던 회사를 그만두지 않고 파트타임으로 참여하겠다고 한다면 그만큼 개발 기간이 길어지고 집중도가 낮아지므로 창업자의 시간과 비즈니스 타이밍을 포기해야 한다는 점을 감안해야 합니다. 스타트업 초기에는 기획과 의사결정이 수시로 바뀌고 개발은 이를 발 빠르게 대응해야 하기 때문에 실력이 아주 좋은 개발자가 짬짬이 참여하는 것보다는 그 보다 실력이 좀 떨어져도 창업자 옆에서 붙어서 같이 개발해줄 개발자가 더 낫습니다.
1년 이상이라는 단서를 단 이유는, 서비스 출시 후 성과를 보이기까지는 혼자서 개발을 이어나가야 할 가능성이 높은데 서비스 출시 전에 이탈하는 것은 개발자 채용과 서비스 개발 과정을 처음부터 다시 해야 한다는 이야기이고 많은 시간과 비용이 낭비되게 됩니다.
출시 후에도 운영 과정에서 지속적인 기능 개선과 오류 대응을 해야 하는데 중간에 개발자가 이탈한다면 이를 이어서 개발해줄 개발자를 찾기는 더 어렵고 찾더라도 인수인계도 쉽지 않을뿐더러 새로운 개발자가 기존의 코드에 적응하기까지 서비스가 불안정할 수밖에 없습니다. 그래서 잠깐 개발해주고 떠날 개발자가 아니라 1년 이상 진지하게 합류하려는 개발자라 아니라면 실력이 좋다 하더라도 고민해봐야 합니다.
어떤 경험을 가진 개발자를 채용해야 하나
3~5년 차 이상이더라도 코드를 작성하지 않고 개발 관리만 해왔거나 테스트 코드만 작성해왔거나 커다란 프로젝트의 특정 파트만 담당해서 오랜 기간 발전시켜왔다면 스타트업 서비스 하나를 온전히 개발해내는 데 시행착오를 겪을 수 있습니다. 제한된 비용과 시간 안에서 요구사항을 UI와 기능으로 바꿔 해석하는 능력, 적당한 기술 타협, 그러면서도 기술 부채에 대한 적절한 컨트롤이 필요한데 이런 역량이 길러지려면 서비스 전체 레벨에서 구조를 살펴보고 코드를 직접 작성한 경험이 필요합니다.
몇 년차이냐가 똑같이 적용되지 않고 개발자마다 다르기 때문에 단기간에 빠르게 성장한 개발자와 오랜 기간 동안 평평한 성장을 한 개발자를 연차로 단순 비교하는 것은 어렵습니다. 경험의 양과 경험의 질을 모두 고려해야 하는데 1~2년 안에는 압축성장을 했다 하더라도 혼자 서비스 개발을 하기에는 어려움이 있고 3~5년 이상 개발을 했더라도 스타트업 서비스를 혼자서 만들 수 있는 역량이 쌓여 있는지 확인을 해야 하는데 비개발자인 창업가가 이를 판단하기 어려워 주변에 있는 시니어 개발자의 도움을 받는 것이 좋습니다.
경험의 양인 연차는 정량적인 지표라 그래도 파악이 쉽지만 경험의 질은 정성적인 지표이고 측정이 어렵기 때문에 개발자의 태도, 이해능력, 성장 욕구, 함께 일한 사람들의 평가, 시니어 개발자와의 면접이 필요합니다. 1~3개월의 수습 기간을 두고 협업을 원활하게 하는지 약속한 결과물을 적당한 시점에 만들어내는지, 말만 잘하는 사람인지, 겸손한데 묵묵히 좋은 성과를 내는 사람인지 같이 일해 보면서 파악을 합니다.
어떤 태도를 가진 개발자를 채용해야 하나
저는 요즘 좋은 태도를 가진 개발자들을 많이 만나고 있는데 반대로 좋지 않은 태도의 개발자들도 만나봤습니다. 고백하자면 제 스스로가 좋지 않은 태도의 개발자였던 시기가 있었으므로 좋은 태도와 그렇지 않은 태도가 협업의 난이도와 프로젝트 성공 확률을 얼마나 극과 극으로 바꾸는지 알고 있습니다.
좋은 태도라는 표현이 포괄적인데 몇 가지 요소를 말해보자면, 방어적이지 않고, 적극적으로 커뮤니케이션하려고 하며, 겸손하고, 자신의 잘못을 인정할 줄 알고, 자존감이 높으며, 지속적으로 스스로를 개선하려는 태도를 가졌다면 좋은 태도라고 할 수 있습니다. 좋은 사수가 있고 좋은 개발 환경이 있다면 태도가 좋은 개발자의 실력은 빠르게 늘게 되어 있습니다. 비즈니스 상황 변화에 적극적으로 대응하면서 도메인에 대한 이해도가 빠르게 높아집니다.
그런데 태도가 좋지 않다면 성장도 더디지만 같이 일하는 사람들을 정신적으로 힘들게 만들고 개발 진행도 더디고 프로젝트가 실패할 가능성을 높이기 때문에 채용하지 않거나, 억지로라도 채용을 하려면 좋은 태도의 개발자로 빠르게 변신시켜야 합니다. 사람을 변신시키는 것은 동기 부여와 멘토링의 영역이기 때문에 창업자 본인이 사람의 성향을 바꾸는 데 자신 있는 경우에 시도해보시길 바랍니다. 성공할 경우 평생 사업 파트너가 될 수도 있습니다.
채용의 난이도
좋은 개발자의 채용은 초기 스타트업이 할 수 있는 가장 좋은 선택지인 만큼 그 난이도가 높습니다. 시니어 개발자가 초창기 스타트업에 합류했다면 빠른 성과와 성공을 원하고 주니어 개발자가 초창기 스타트업에 합류했다면 효과적인 성장을 원합니다.
초창기 스타트업은 대기업과도 채용 경쟁을 해야 하지만 투자유치를 했거나 일단 서비스 런칭을 해서 사용자 반응을 모으고 있는 스타트업들과도 채용 경쟁을 해야 하다 보니 아직 서비스 개발을 시작하지 않은 상태에서 시니어에게 성공을, 주니어에게 성장을 상상하게 할 수 있는 포인트가 별로 없습니다. 어떻게 설득을 해서 모시고 와도 아직 이 사업과 서비스에 대한 확신이 부족하고 외부 유혹이 많아서 쉽게 이탈할 수 있습니다.
스타트업이 개발자를 선택하는 것이 아니라 스타트업이 개발자에게 선택받아야 하는 시대이기 때문에 입사 후에 서비스의 성공과 더불어 개발자로서의 커리어 성장, 비즈니스적인 경험과 흥미로운 기술 스택의 경험, 이후에 좋은 개발자/기획자/마케터들과 협업할 수 있다는 기대감, 본인의 성장에 따른 지속적인 보상 등 개발자들을 붙잡아두기 위한 장치들이 잘 마련되어 있어야 합니다.
핵심 개발자가 떠나려고 해요
스타트업에서의 개발자들의 근속 기간이 점점 짧아지고 있습니다. Z세대라고 표현하는 90년대생, 20대 중후반부터 30대 초반의 젊은 직장인들, 특히 개발자들은 연차에 따라 경험이 빠르게 성장하고 많은 기회에 노출되어 있으므로 더 좋은 보상과 성공의 기회, 성장의 기회가 있다면 변화를 추구합니다. 비개발 직군보다는 개발 직군이 상대적으로 이직 시의 연봉 인상과 새로운 기술/경험 습득의 기회가 많아 근속기간이 짧고 이직이 잦은 느낌입니다.
문제 상황이라기보다는 세대가 바뀌고 시대가 바뀌는 것이라, 그리고 수요/공급 상에 공급자인 개발자들이 유리한 상황이라 받아들여야 하고 대비해야 합니다. 떠나는 사람들에게 배신감을 느낄 필요도 없고 일단은 잘 보내주고 채용 및 보상 정책을 다듬은 후 또 다른 새로운 사람을 모시고 와야 하며 매끄럽게 인수인계가 될 수 있도록 해야 하죠. 그렇다고 짧은 근속기간을 대책 없이 지켜보라는 것은 아니고 1년 이상 붙잡아두기 위해 개발자들의 성장 장치와 보상 장치들을 마련해야 합니다.
계속 일할 수 있는 동기의 유지
'무엇이 성과를 이끄는가'라는 책에서 6가지 동기를 말하는데 일의 즐거움, 의미, 성장이 직접 동기여서 높여주어야 하고, 정서적 압박감, 경제적 압박감, 타성이 간접 동기인데 성과를 떨어뜨리기 때문에 이 동기에 대한 의존도를 줄여야 한다고 합니다. 다행히 개발이라는 직군은 비효율적으로 일하지만 않으면 기본적으로 즐거우면서 성장하기 좋은 분야이고, 스타트업은 공기업/대기업에 비해 사업의 비전과 의미를 강조하기 쉽습니다.
정서적/경제적 압박감과 타성을 줄이기 위해서는 스트레스가 적은 환경에서 다른 경제적 대안을 고민하지 않도록 충분한 보상이 있어야 하고 타성에 젖지 않도록 새로운 역할, 새로운 업무, 더 많은 책임감을 부여하면서 성장시켜야 합니다. 더군다나 개발자로서 매너리즘에 빠지지 않도록 개발자가 겪어보지 않은 새로운 기술 문제나 기술 스택을 경험하게 하는 것도 필요하고 UX나 비즈니스에 대한 고민도 개발자와 함께 나누어 수동적인 개발보다 적극적인 참여를 유도하면 좀 더 서비스에 대한 책임감을 심어줄 수 있습니다.
인썸니아도 초기에는 많은 개발자들이 빈번하게 나가고 들어오다가 회사의 평판이 개발자들 사이에서 좋아지고 보상 정책과 회사의 방향성을 정해나가자 점차 개발자들의 근속기간이 길어지고 있고 그분들이 추천한 개발자를 채용하게 되어 채용과 근속 유지의 어려움이 줄어들었습니다. 채용은 초기가 어렵고 점차 수월해지는 영역이니 희망을 가지고 파이팅하시기 바랍니다!
초기 스타트업은 어떤 개발자를 채용해야 하나
개발자 채용이냐 외주 개발이냐
초기 스타트업이 서비스를 개발하기 위해 할 수 있는 선택지는 크게 개발자 채용과 외주 개발 두 가지가 있습니다. 글을 쓰는 제가 스타트업에게 의뢰받아 서비스를 개발하는 개발 파트너의 입장이기 때문에 채용과 외주 간에 중립적인 비교가 어려울 것이라 생각하시겠지만 저는 의외로 만나는 고객사마다, 창업팀에 합류할 의사가 있는 좋은 개발자가 주변에 있다면 외주보다 채용이 낫다고 말씀드립니다.
개발자 채용을 먼저 시도해보신 후 잘 안 되시거나 채용 성공 후 개발자가 금방 이탈하거나 주니어와 개발을 하는데 너무 오랜 시간 시행착오를 겪고 있으실 때 다시 개발 의뢰를 고민하라고 말씀드리고 있고 더불어 어떤 개발자를 채용해야 하냐고 질문을 받는 경우가 많아 그에 대한 글을 정리해봤습니다.
지금은 15명의 개발팀을 운영하고 있지만 15년의 커리어 동안 스타트업을 하면서 프리랜서 개발자에게 외주 개발을 맡겨보기도 했고 기획과 프로젝트 매니지먼트를 수년간 했었으며 10년 이상 직접 개발을 하고 있고 개발팀을 이끌거나 기획팀/디자인팀/개발팀이 합쳐진 서비스 본부를 맡아보기도 했으므로 여러 가지 선택지를 경험했습니다.
몇 년차 개발자를 채용해야 하나
공동창업자급의 시니어 개발자나 같이 성장할 수 있는 태도와 학습 능력이 좋은 3~5년 차 경력 개발자가 합류한다면 이분들과 팀빌딩을 하여 자체 개발을 하는 것이 가장 좋은 선택지입니다. 처음부터 비개발자인 창업자가 2~3명의 개발자로 구성된 개발팀을 꾸리는 것은 어렵기 때문에 보통 한 명의 개발자를 채용하게 됩니다.
적어도 3~5년 차 이상이고 스타트업 서비스를 주도적으로 개발해 본 개발자를 채용하는 것이 좋습니다. 1~2년 차 이하의 개발자라면 협업 경험이 적어 창업자/기획자의 이야기를 잘 이해하지 못하거나 쉽게 구현할 수 있는 것을 복잡하게 설계하거나 자신이 짠 코드를 자신이 감당하지 못해 오류를 많이 만들고 쉽게 못 고칩니다. 이 단계에서는 아직 스스로 성장하기 어려워 사수가 없으면 좋지 않은 방법을 반복하게 되므로 혼자 개발을 해야 하는 초기 스타트업에서 주니어 개발자와 창업자는 궁합이 안 맞습니다.
그래서 스스로 개발의 방향성을 가지고 학습할 수 있고 자신감이 있으며 소통 능력이 있고 태도가 좋은 3~5년 차 이상의 개발자를 고려하시는 것이 좋습니다. 연봉과 지분을 맞춰줄 수 있고 1년 이상은 같이 할 정도로 신뢰가 형성되어야 하므로 모시고 오기 위해서는 사업에 대한 비전과 오랜 설득 과정, 어느 정도 정리된 보상 기준이 준비되어 있어야 합니다.
개발자가 원래 근무하던 회사를 그만두지 않고 파트타임으로 참여하겠다고 한다면 그만큼 개발 기간이 길어지고 집중도가 낮아지므로 창업자의 시간과 비즈니스 타이밍을 포기해야 한다는 점을 감안해야 합니다. 스타트업 초기에는 기획과 의사결정이 수시로 바뀌고 개발은 이를 발 빠르게 대응해야 하기 때문에 실력이 아주 좋은 개발자가 짬짬이 참여하는 것보다는 그 보다 실력이 좀 떨어져도 창업자 옆에서 붙어서 같이 개발해줄 개발자가 더 낫습니다.
1년 이상이라는 단서를 단 이유는, 서비스 출시 후 성과를 보이기까지는 혼자서 개발을 이어나가야 할 가능성이 높은데 서비스 출시 전에 이탈하는 것은 개발자 채용과 서비스 개발 과정을 처음부터 다시 해야 한다는 이야기이고 많은 시간과 비용이 낭비되게 됩니다.
출시 후에도 운영 과정에서 지속적인 기능 개선과 오류 대응을 해야 하는데 중간에 개발자가 이탈한다면 이를 이어서 개발해줄 개발자를 찾기는 더 어렵고 찾더라도 인수인계도 쉽지 않을뿐더러 새로운 개발자가 기존의 코드에 적응하기까지 서비스가 불안정할 수밖에 없습니다. 그래서 잠깐 개발해주고 떠날 개발자가 아니라 1년 이상 진지하게 합류하려는 개발자라 아니라면 실력이 좋다 하더라도 고민해봐야 합니다.
어떤 경험을 가진 개발자를 채용해야 하나
3~5년 차 이상이더라도 코드를 작성하지 않고 개발 관리만 해왔거나 테스트 코드만 작성해왔거나 커다란 프로젝트의 특정 파트만 담당해서 오랜 기간 발전시켜왔다면 스타트업 서비스 하나를 온전히 개발해내는 데 시행착오를 겪을 수 있습니다. 제한된 비용과 시간 안에서 요구사항을 UI와 기능으로 바꿔 해석하는 능력, 적당한 기술 타협, 그러면서도 기술 부채에 대한 적절한 컨트롤이 필요한데 이런 역량이 길러지려면 서비스 전체 레벨에서 구조를 살펴보고 코드를 직접 작성한 경험이 필요합니다.
몇 년차이냐가 똑같이 적용되지 않고 개발자마다 다르기 때문에 단기간에 빠르게 성장한 개발자와 오랜 기간 동안 평평한 성장을 한 개발자를 연차로 단순 비교하는 것은 어렵습니다. 경험의 양과 경험의 질을 모두 고려해야 하는데 1~2년 안에는 압축성장을 했다 하더라도 혼자 서비스 개발을 하기에는 어려움이 있고 3~5년 이상 개발을 했더라도 스타트업 서비스를 혼자서 만들 수 있는 역량이 쌓여 있는지 확인을 해야 하는데 비개발자인 창업가가 이를 판단하기 어려워 주변에 있는 시니어 개발자의 도움을 받는 것이 좋습니다.
경험의 양인 연차는 정량적인 지표라 그래도 파악이 쉽지만 경험의 질은 정성적인 지표이고 측정이 어렵기 때문에 개발자의 태도, 이해능력, 성장 욕구, 함께 일한 사람들의 평가, 시니어 개발자와의 면접이 필요합니다. 1~3개월의 수습 기간을 두고 협업을 원활하게 하는지 약속한 결과물을 적당한 시점에 만들어내는지, 말만 잘하는 사람인지, 겸손한데 묵묵히 좋은 성과를 내는 사람인지 같이 일해 보면서 파악을 합니다.
어떤 태도를 가진 개발자를 채용해야 하나
저는 요즘 좋은 태도를 가진 개발자들을 많이 만나고 있는데 반대로 좋지 않은 태도의 개발자들도 만나봤습니다. 고백하자면 제 스스로가 좋지 않은 태도의 개발자였던 시기가 있었으므로 좋은 태도와 그렇지 않은 태도가 협업의 난이도와 프로젝트 성공 확률을 얼마나 극과 극으로 바꾸는지 알고 있습니다.
좋은 태도라는 표현이 포괄적인데 몇 가지 요소를 말해보자면, 방어적이지 않고, 적극적으로 커뮤니케이션하려고 하며, 겸손하고, 자신의 잘못을 인정할 줄 알고, 자존감이 높으며, 지속적으로 스스로를 개선하려는 태도를 가졌다면 좋은 태도라고 할 수 있습니다. 좋은 사수가 있고 좋은 개발 환경이 있다면 태도가 좋은 개발자의 실력은 빠르게 늘게 되어 있습니다. 비즈니스 상황 변화에 적극적으로 대응하면서 도메인에 대한 이해도가 빠르게 높아집니다.
그런데 태도가 좋지 않다면 성장도 더디지만 같이 일하는 사람들을 정신적으로 힘들게 만들고 개발 진행도 더디고 프로젝트가 실패할 가능성을 높이기 때문에 채용하지 않거나, 억지로라도 채용을 하려면 좋은 태도의 개발자로 빠르게 변신시켜야 합니다. 사람을 변신시키는 것은 동기 부여와 멘토링의 영역이기 때문에 창업자 본인이 사람의 성향을 바꾸는 데 자신 있는 경우에 시도해보시길 바랍니다. 성공할 경우 평생 사업 파트너가 될 수도 있습니다.
채용의 난이도
좋은 개발자의 채용은 초기 스타트업이 할 수 있는 가장 좋은 선택지인 만큼 그 난이도가 높습니다. 시니어 개발자가 초창기 스타트업에 합류했다면 빠른 성과와 성공을 원하고 주니어 개발자가 초창기 스타트업에 합류했다면 효과적인 성장을 원합니다.
초창기 스타트업은 대기업과도 채용 경쟁을 해야 하지만 투자유치를 했거나 일단 서비스 런칭을 해서 사용자 반응을 모으고 있는 스타트업들과도 채용 경쟁을 해야 하다 보니 아직 서비스 개발을 시작하지 않은 상태에서 시니어에게 성공을, 주니어에게 성장을 상상하게 할 수 있는 포인트가 별로 없습니다. 어떻게 설득을 해서 모시고 와도 아직 이 사업과 서비스에 대한 확신이 부족하고 외부 유혹이 많아서 쉽게 이탈할 수 있습니다.
스타트업이 개발자를 선택하는 것이 아니라 스타트업이 개발자에게 선택받아야 하는 시대이기 때문에 입사 후에 서비스의 성공과 더불어 개발자로서의 커리어 성장, 비즈니스적인 경험과 흥미로운 기술 스택의 경험, 이후에 좋은 개발자/기획자/마케터들과 협업할 수 있다는 기대감, 본인의 성장에 따른 지속적인 보상 등 개발자들을 붙잡아두기 위한 장치들이 잘 마련되어 있어야 합니다.
핵심 개발자가 떠나려고 해요
스타트업에서의 개발자들의 근속 기간이 점점 짧아지고 있습니다. Z세대라고 표현하는 90년대생, 20대 중후반부터 30대 초반의 젊은 직장인들, 특히 개발자들은 연차에 따라 경험이 빠르게 성장하고 많은 기회에 노출되어 있으므로 더 좋은 보상과 성공의 기회, 성장의 기회가 있다면 변화를 추구합니다. 비개발 직군보다는 개발 직군이 상대적으로 이직 시의 연봉 인상과 새로운 기술/경험 습득의 기회가 많아 근속기간이 짧고 이직이 잦은 느낌입니다.
문제 상황이라기보다는 세대가 바뀌고 시대가 바뀌는 것이라, 그리고 수요/공급 상에 공급자인 개발자들이 유리한 상황이라 받아들여야 하고 대비해야 합니다. 떠나는 사람들에게 배신감을 느낄 필요도 없고 일단은 잘 보내주고 채용 및 보상 정책을 다듬은 후 또 다른 새로운 사람을 모시고 와야 하며 매끄럽게 인수인계가 될 수 있도록 해야 하죠. 그렇다고 짧은 근속기간을 대책 없이 지켜보라는 것은 아니고 1년 이상 붙잡아두기 위해 개발자들의 성장 장치와 보상 장치들을 마련해야 합니다.
계속 일할 수 있는 동기의 유지
'무엇이 성과를 이끄는가'라는 책에서 6가지 동기를 말하는데 일의 즐거움, 의미, 성장이 직접 동기여서 높여주어야 하고, 정서적 압박감, 경제적 압박감, 타성이 간접 동기인데 성과를 떨어뜨리기 때문에 이 동기에 대한 의존도를 줄여야 한다고 합니다. 다행히 개발이라는 직군은 비효율적으로 일하지만 않으면 기본적으로 즐거우면서 성장하기 좋은 분야이고, 스타트업은 공기업/대기업에 비해 사업의 비전과 의미를 강조하기 쉽습니다.
정서적/경제적 압박감과 타성을 줄이기 위해서는 스트레스가 적은 환경에서 다른 경제적 대안을 고민하지 않도록 충분한 보상이 있어야 하고 타성에 젖지 않도록 새로운 역할, 새로운 업무, 더 많은 책임감을 부여하면서 성장시켜야 합니다. 더군다나 개발자로서 매너리즘에 빠지지 않도록 개발자가 겪어보지 않은 새로운 기술 문제나 기술 스택을 경험하게 하는 것도 필요하고 UX나 비즈니스에 대한 고민도 개발자와 함께 나누어 수동적인 개발보다 적극적인 참여를 유도하면 좀 더 서비스에 대한 책임감을 심어줄 수 있습니다.
인썸니아도 초기에는 많은 개발자들이 빈번하게 나가고 들어오다가 회사의 평판이 개발자들 사이에서 좋아지고 보상 정책과 회사의 방향성을 정해나가자 점차 개발자들의 근속기간이 길어지고 있고 그분들이 추천한 개발자를 채용하게 되어 채용과 근속 유지의 어려움이 줄어들었습니다. 채용은 초기가 어렵고 점차 수월해지는 영역이니 희망을 가지고 파이팅하시기 바랍니다!
초기 스타트업은 어떤 개발자를 채용해야 하나
개발자 채용이냐 외주 개발이냐
초기 스타트업이 서비스를 개발하기 위해 할 수 있는 선택지는 크게 개발자 채용과 외주 개발 두 가지가 있습니다. 글을 쓰는 제가 스타트업에게 의뢰받아 서비스를 개발하는 개발 파트너의 입장이기 때문에 채용과 외주 간에 중립적인 비교가 어려울 것이라 생각하시겠지만 저는 의외로 만나는 고객사마다, 창업팀에 합류할 의사가 있는 좋은 개발자가 주변에 있다면 외주보다 채용이 낫다고 말씀드립니다.
개발자 채용을 먼저 시도해보신 후 잘 안 되시거나 채용 성공 후 개발자가 금방 이탈하거나 주니어와 개발을 하는데 너무 오랜 시간 시행착오를 겪고 있으실 때 다시 개발 의뢰를 고민하라고 말씀드리고 있고 더불어 어떤 개발자를 채용해야 하냐고 질문을 받는 경우가 많아 그에 대한 글을 정리해봤습니다.
지금은 15명의 개발팀을 운영하고 있지만 15년의 커리어 동안 스타트업을 하면서 프리랜서 개발자에게 외주 개발을 맡겨보기도 했고 기획과 프로젝트 매니지먼트를 수년간 했었으며 10년 이상 직접 개발을 하고 있고 개발팀을 이끌거나 기획팀/디자인팀/개발팀이 합쳐진 서비스 본부를 맡아보기도 했으므로 여러 가지 선택지를 경험했습니다.
몇 년차 개발자를 채용해야 하나
공동창업자급의 시니어 개발자나 같이 성장할 수 있는 태도와 학습 능력이 좋은 3~5년 차 경력 개발자가 합류한다면 이분들과 팀빌딩을 하여 자체 개발을 하는 것이 가장 좋은 선택지입니다. 처음부터 비개발자인 창업자가 2~3명의 개발자로 구성된 개발팀을 꾸리는 것은 어렵기 때문에 보통 한 명의 개발자를 채용하게 됩니다.
적어도 3~5년 차 이상이고 스타트업 서비스를 주도적으로 개발해 본 개발자를 채용하는 것이 좋습니다. 1~2년 차 이하의 개발자라면 협업 경험이 적어 창업자/기획자의 이야기를 잘 이해하지 못하거나 쉽게 구현할 수 있는 것을 복잡하게 설계하거나 자신이 짠 코드를 자신이 감당하지 못해 오류를 많이 만들고 쉽게 못 고칩니다. 이 단계에서는 아직 스스로 성장하기 어려워 사수가 없으면 좋지 않은 방법을 반복하게 되므로 혼자 개발을 해야 하는 초기 스타트업에서 주니어 개발자와 창업자는 궁합이 안 맞습니다.
그래서 스스로 개발의 방향성을 가지고 학습할 수 있고 자신감이 있으며 소통 능력이 있고 태도가 좋은 3~5년 차 이상의 개발자를 고려하시는 것이 좋습니다. 연봉과 지분을 맞춰줄 수 있고 1년 이상은 같이 할 정도로 신뢰가 형성되어야 하므로 모시고 오기 위해서는 사업에 대한 비전과 오랜 설득 과정, 어느 정도 정리된 보상 기준이 준비되어 있어야 합니다.
개발자가 원래 근무하던 회사를 그만두지 않고 파트타임으로 참여하겠다고 한다면 그만큼 개발 기간이 길어지고 집중도가 낮아지므로 창업자의 시간과 비즈니스 타이밍을 포기해야 한다는 점을 감안해야 합니다. 스타트업 초기에는 기획과 의사결정이 수시로 바뀌고 개발은 이를 발 빠르게 대응해야 하기 때문에 실력이 아주 좋은 개발자가 짬짬이 참여하는 것보다는 그 보다 실력이 좀 떨어져도 창업자 옆에서 붙어서 같이 개발해줄 개발자가 더 낫습니다.
1년 이상이라는 단서를 단 이유는, 서비스 출시 후 성과를 보이기까지는 혼자서 개발을 이어나가야 할 가능성이 높은데 서비스 출시 전에 이탈하는 것은 개발자 채용과 서비스 개발 과정을 처음부터 다시 해야 한다는 이야기이고 많은 시간과 비용이 낭비되게 됩니다.
출시 후에도 운영 과정에서 지속적인 기능 개선과 오류 대응을 해야 하는데 중간에 개발자가 이탈한다면 이를 이어서 개발해줄 개발자를 찾기는 더 어렵고 찾더라도 인수인계도 쉽지 않을뿐더러 새로운 개발자가 기존의 코드에 적응하기까지 서비스가 불안정할 수밖에 없습니다. 그래서 잠깐 개발해주고 떠날 개발자가 아니라 1년 이상 진지하게 합류하려는 개발자라 아니라면 실력이 좋다 하더라도 고민해봐야 합니다.
어떤 경험을 가진 개발자를 채용해야 하나
3~5년 차 이상이더라도 코드를 작성하지 않고 개발 관리만 해왔거나 테스트 코드만 작성해왔거나 커다란 프로젝트의 특정 파트만 담당해서 오랜 기간 발전시켜왔다면 스타트업 서비스 하나를 온전히 개발해내는 데 시행착오를 겪을 수 있습니다. 제한된 비용과 시간 안에서 요구사항을 UI와 기능으로 바꿔 해석하는 능력, 적당한 기술 타협, 그러면서도 기술 부채에 대한 적절한 컨트롤이 필요한데 이런 역량이 길러지려면 서비스 전체 레벨에서 구조를 살펴보고 코드를 직접 작성한 경험이 필요합니다.
몇 년차이냐가 똑같이 적용되지 않고 개발자마다 다르기 때문에 단기간에 빠르게 성장한 개발자와 오랜 기간 동안 평평한 성장을 한 개발자를 연차로 단순 비교하는 것은 어렵습니다. 경험의 양과 경험의 질을 모두 고려해야 하는데 1~2년 안에는 압축성장을 했다 하더라도 혼자 서비스 개발을 하기에는 어려움이 있고 3~5년 이상 개발을 했더라도 스타트업 서비스를 혼자서 만들 수 있는 역량이 쌓여 있는지 확인을 해야 하는데 비개발자인 창업가가 이를 판단하기 어려워 주변에 있는 시니어 개발자의 도움을 받는 것이 좋습니다.
경험의 양인 연차는 정량적인 지표라 그래도 파악이 쉽지만 경험의 질은 정성적인 지표이고 측정이 어렵기 때문에 개발자의 태도, 이해능력, 성장 욕구, 함께 일한 사람들의 평가, 시니어 개발자와의 면접이 필요합니다. 1~3개월의 수습 기간을 두고 협업을 원활하게 하는지 약속한 결과물을 적당한 시점에 만들어내는지, 말만 잘하는 사람인지, 겸손한데 묵묵히 좋은 성과를 내는 사람인지 같이 일해 보면서 파악을 합니다.
어떤 태도를 가진 개발자를 채용해야 하나
저는 요즘 좋은 태도를 가진 개발자들을 많이 만나고 있는데 반대로 좋지 않은 태도의 개발자들도 만나봤습니다. 고백하자면 제 스스로가 좋지 않은 태도의 개발자였던 시기가 있었으므로 좋은 태도와 그렇지 않은 태도가 협업의 난이도와 프로젝트 성공 확률을 얼마나 극과 극으로 바꾸는지 알고 있습니다.
좋은 태도라는 표현이 포괄적인데 몇 가지 요소를 말해보자면, 방어적이지 않고, 적극적으로 커뮤니케이션하려고 하며, 겸손하고, 자신의 잘못을 인정할 줄 알고, 자존감이 높으며, 지속적으로 스스로를 개선하려는 태도를 가졌다면 좋은 태도라고 할 수 있습니다. 좋은 사수가 있고 좋은 개발 환경이 있다면 태도가 좋은 개발자의 실력은 빠르게 늘게 되어 있습니다. 비즈니스 상황 변화에 적극적으로 대응하면서 도메인에 대한 이해도가 빠르게 높아집니다.
그런데 태도가 좋지 않다면 성장도 더디지만 같이 일하는 사람들을 정신적으로 힘들게 만들고 개발 진행도 더디고 프로젝트가 실패할 가능성을 높이기 때문에 채용하지 않거나, 억지로라도 채용을 하려면 좋은 태도의 개발자로 빠르게 변신시켜야 합니다. 사람을 변신시키는 것은 동기 부여와 멘토링의 영역이기 때문에 창업자 본인이 사람의 성향을 바꾸는 데 자신 있는 경우에 시도해보시길 바랍니다. 성공할 경우 평생 사업 파트너가 될 수도 있습니다.
채용의 난이도
좋은 개발자의 채용은 초기 스타트업이 할 수 있는 가장 좋은 선택지인 만큼 그 난이도가 높습니다. 시니어 개발자가 초창기 스타트업에 합류했다면 빠른 성과와 성공을 원하고 주니어 개발자가 초창기 스타트업에 합류했다면 효과적인 성장을 원합니다.
초창기 스타트업은 대기업과도 채용 경쟁을 해야 하지만 투자유치를 했거나 일단 서비스 런칭을 해서 사용자 반응을 모으고 있는 스타트업들과도 채용 경쟁을 해야 하다 보니 아직 서비스 개발을 시작하지 않은 상태에서 시니어에게 성공을, 주니어에게 성장을 상상하게 할 수 있는 포인트가 별로 없습니다. 어떻게 설득을 해서 모시고 와도 아직 이 사업과 서비스에 대한 확신이 부족하고 외부 유혹이 많아서 쉽게 이탈할 수 있습니다.
스타트업이 개발자를 선택하는 것이 아니라 스타트업이 개발자에게 선택받아야 하는 시대이기 때문에 입사 후에 서비스의 성공과 더불어 개발자로서의 커리어 성장, 비즈니스적인 경험과 흥미로운 기술 스택의 경험, 이후에 좋은 개발자/기획자/마케터들과 협업할 수 있다는 기대감, 본인의 성장에 따른 지속적인 보상 등 개발자들을 붙잡아두기 위한 장치들이 잘 마련되어 있어야 합니다.
핵심 개발자가 떠나려고 해요
스타트업에서의 개발자들의 근속 기간이 점점 짧아지고 있습니다. Z세대라고 표현하는 90년대생, 20대 중후반부터 30대 초반의 젊은 직장인들, 특히 개발자들은 연차에 따라 경험이 빠르게 성장하고 많은 기회에 노출되어 있으므로 더 좋은 보상과 성공의 기회, 성장의 기회가 있다면 변화를 추구합니다. 비개발 직군보다는 개발 직군이 상대적으로 이직 시의 연봉 인상과 새로운 기술/경험 습득의 기회가 많아 근속기간이 짧고 이직이 잦은 느낌입니다.
문제 상황이라기보다는 세대가 바뀌고 시대가 바뀌는 것이라, 그리고 수요/공급 상에 공급자인 개발자들이 유리한 상황이라 받아들여야 하고 대비해야 합니다. 떠나는 사람들에게 배신감을 느낄 필요도 없고 일단은 잘 보내주고 채용 및 보상 정책을 다듬은 후 또 다른 새로운 사람을 모시고 와야 하며 매끄럽게 인수인계가 될 수 있도록 해야 하죠. 그렇다고 짧은 근속기간을 대책 없이 지켜보라는 것은 아니고 1년 이상 붙잡아두기 위해 개발자들의 성장 장치와 보상 장치들을 마련해야 합니다.
계속 일할 수 있는 동기의 유지
'무엇이 성과를 이끄는가'라는 책에서 6가지 동기를 말하는데 일의 즐거움, 의미, 성장이 직접 동기여서 높여주어야 하고, 정서적 압박감, 경제적 압박감, 타성이 간접 동기인데 성과를 떨어뜨리기 때문에 이 동기에 대한 의존도를 줄여야 한다고 합니다. 다행히 개발이라는 직군은 비효율적으로 일하지만 않으면 기본적으로 즐거우면서 성장하기 좋은 분야이고, 스타트업은 공기업/대기업에 비해 사업의 비전과 의미를 강조하기 쉽습니다.
정서적/경제적 압박감과 타성을 줄이기 위해서는 스트레스가 적은 환경에서 다른 경제적 대안을 고민하지 않도록 충분한 보상이 있어야 하고 타성에 젖지 않도록 새로운 역할, 새로운 업무, 더 많은 책임감을 부여하면서 성장시켜야 합니다. 더군다나 개발자로서 매너리즘에 빠지지 않도록 개발자가 겪어보지 않은 새로운 기술 문제나 기술 스택을 경험하게 하는 것도 필요하고 UX나 비즈니스에 대한 고민도 개발자와 함께 나누어 수동적인 개발보다 적극적인 참여를 유도하면 좀 더 서비스에 대한 책임감을 심어줄 수 있습니다.
인썸니아도 초기에는 많은 개발자들이 빈번하게 나가고 들어오다가 회사의 평판이 개발자들 사이에서 좋아지고 보상 정책과 회사의 방향성을 정해나가자 점차 개발자들의 근속기간이 길어지고 있고 그분들이 추천한 개발자를 채용하게 되어 채용과 근속 유지의 어려움이 줄어들었습니다. 채용은 초기가 어렵고 점차 수월해지는 영역이니 희망을 가지고 파이팅하시기 바랍니다!
초기 스타트업은 어떤 개발자를 채용해야 하나
개발자 채용이냐 외주 개발이냐
초기 스타트업이 서비스를 개발하기 위해 할 수 있는 선택지는 크게 개발자 채용과 외주 개발 두 가지가 있습니다. 글을 쓰는 제가 스타트업에게 의뢰받아 서비스를 개발하는 개발 파트너의 입장이기 때문에 채용과 외주 간에 중립적인 비교가 어려울 것이라 생각하시겠지만 저는 의외로 만나는 고객사마다, 창업팀에 합류할 의사가 있는 좋은 개발자가 주변에 있다면 외주보다 채용이 낫다고 말씀드립니다.
개발자 채용을 먼저 시도해보신 후 잘 안 되시거나 채용 성공 후 개발자가 금방 이탈하거나 주니어와 개발을 하는데 너무 오랜 시간 시행착오를 겪고 있으실 때 다시 개발 의뢰를 고민하라고 말씀드리고 있고 더불어 어떤 개발자를 채용해야 하냐고 질문을 받는 경우가 많아 그에 대한 글을 정리해봤습니다.
지금은 15명의 개발팀을 운영하고 있지만 15년의 커리어 동안 스타트업을 하면서 프리랜서 개발자에게 외주 개발을 맡겨보기도 했고 기획과 프로젝트 매니지먼트를 수년간 했었으며 10년 이상 직접 개발을 하고 있고 개발팀을 이끌거나 기획팀/디자인팀/개발팀이 합쳐진 서비스 본부를 맡아보기도 했으므로 여러 가지 선택지를 경험했습니다.
몇 년차 개발자를 채용해야 하나
공동창업자급의 시니어 개발자나 같이 성장할 수 있는 태도와 학습 능력이 좋은 3~5년 차 경력 개발자가 합류한다면 이분들과 팀빌딩을 하여 자체 개발을 하는 것이 가장 좋은 선택지입니다. 처음부터 비개발자인 창업자가 2~3명의 개발자로 구성된 개발팀을 꾸리는 것은 어렵기 때문에 보통 한 명의 개발자를 채용하게 됩니다.
적어도 3~5년 차 이상이고 스타트업 서비스를 주도적으로 개발해 본 개발자를 채용하는 것이 좋습니다. 1~2년 차 이하의 개발자라면 협업 경험이 적어 창업자/기획자의 이야기를 잘 이해하지 못하거나 쉽게 구현할 수 있는 것을 복잡하게 설계하거나 자신이 짠 코드를 자신이 감당하지 못해 오류를 많이 만들고 쉽게 못 고칩니다. 이 단계에서는 아직 스스로 성장하기 어려워 사수가 없으면 좋지 않은 방법을 반복하게 되므로 혼자 개발을 해야 하는 초기 스타트업에서 주니어 개발자와 창업자는 궁합이 안 맞습니다.
그래서 스스로 개발의 방향성을 가지고 학습할 수 있고 자신감이 있으며 소통 능력이 있고 태도가 좋은 3~5년 차 이상의 개발자를 고려하시는 것이 좋습니다. 연봉과 지분을 맞춰줄 수 있고 1년 이상은 같이 할 정도로 신뢰가 형성되어야 하므로 모시고 오기 위해서는 사업에 대한 비전과 오랜 설득 과정, 어느 정도 정리된 보상 기준이 준비되어 있어야 합니다.
개발자가 원래 근무하던 회사를 그만두지 않고 파트타임으로 참여하겠다고 한다면 그만큼 개발 기간이 길어지고 집중도가 낮아지므로 창업자의 시간과 비즈니스 타이밍을 포기해야 한다는 점을 감안해야 합니다. 스타트업 초기에는 기획과 의사결정이 수시로 바뀌고 개발은 이를 발 빠르게 대응해야 하기 때문에 실력이 아주 좋은 개발자가 짬짬이 참여하는 것보다는 그 보다 실력이 좀 떨어져도 창업자 옆에서 붙어서 같이 개발해줄 개발자가 더 낫습니다.
1년 이상이라는 단서를 단 이유는, 서비스 출시 후 성과를 보이기까지는 혼자서 개발을 이어나가야 할 가능성이 높은데 서비스 출시 전에 이탈하는 것은 개발자 채용과 서비스 개발 과정을 처음부터 다시 해야 한다는 이야기이고 많은 시간과 비용이 낭비되게 됩니다.
출시 후에도 운영 과정에서 지속적인 기능 개선과 오류 대응을 해야 하는데 중간에 개발자가 이탈한다면 이를 이어서 개발해줄 개발자를 찾기는 더 어렵고 찾더라도 인수인계도 쉽지 않을뿐더러 새로운 개발자가 기존의 코드에 적응하기까지 서비스가 불안정할 수밖에 없습니다. 그래서 잠깐 개발해주고 떠날 개발자가 아니라 1년 이상 진지하게 합류하려는 개발자라 아니라면 실력이 좋다 하더라도 고민해봐야 합니다.
어떤 경험을 가진 개발자를 채용해야 하나
3~5년 차 이상이더라도 코드를 작성하지 않고 개발 관리만 해왔거나 테스트 코드만 작성해왔거나 커다란 프로젝트의 특정 파트만 담당해서 오랜 기간 발전시켜왔다면 스타트업 서비스 하나를 온전히 개발해내는 데 시행착오를 겪을 수 있습니다. 제한된 비용과 시간 안에서 요구사항을 UI와 기능으로 바꿔 해석하는 능력, 적당한 기술 타협, 그러면서도 기술 부채에 대한 적절한 컨트롤이 필요한데 이런 역량이 길러지려면 서비스 전체 레벨에서 구조를 살펴보고 코드를 직접 작성한 경험이 필요합니다.
몇 년차이냐가 똑같이 적용되지 않고 개발자마다 다르기 때문에 단기간에 빠르게 성장한 개발자와 오랜 기간 동안 평평한 성장을 한 개발자를 연차로 단순 비교하는 것은 어렵습니다. 경험의 양과 경험의 질을 모두 고려해야 하는데 1~2년 안에는 압축성장을 했다 하더라도 혼자 서비스 개발을 하기에는 어려움이 있고 3~5년 이상 개발을 했더라도 스타트업 서비스를 혼자서 만들 수 있는 역량이 쌓여 있는지 확인을 해야 하는데 비개발자인 창업가가 이를 판단하기 어려워 주변에 있는 시니어 개발자의 도움을 받는 것이 좋습니다.
경험의 양인 연차는 정량적인 지표라 그래도 파악이 쉽지만 경험의 질은 정성적인 지표이고 측정이 어렵기 때문에 개발자의 태도, 이해능력, 성장 욕구, 함께 일한 사람들의 평가, 시니어 개발자와의 면접이 필요합니다. 1~3개월의 수습 기간을 두고 협업을 원활하게 하는지 약속한 결과물을 적당한 시점에 만들어내는지, 말만 잘하는 사람인지, 겸손한데 묵묵히 좋은 성과를 내는 사람인지 같이 일해 보면서 파악을 합니다.
어떤 태도를 가진 개발자를 채용해야 하나
저는 요즘 좋은 태도를 가진 개발자들을 많이 만나고 있는데 반대로 좋지 않은 태도의 개발자들도 만나봤습니다. 고백하자면 제 스스로가 좋지 않은 태도의 개발자였던 시기가 있었으므로 좋은 태도와 그렇지 않은 태도가 협업의 난이도와 프로젝트 성공 확률을 얼마나 극과 극으로 바꾸는지 알고 있습니다.
좋은 태도라는 표현이 포괄적인데 몇 가지 요소를 말해보자면, 방어적이지 않고, 적극적으로 커뮤니케이션하려고 하며, 겸손하고, 자신의 잘못을 인정할 줄 알고, 자존감이 높으며, 지속적으로 스스로를 개선하려는 태도를 가졌다면 좋은 태도라고 할 수 있습니다. 좋은 사수가 있고 좋은 개발 환경이 있다면 태도가 좋은 개발자의 실력은 빠르게 늘게 되어 있습니다. 비즈니스 상황 변화에 적극적으로 대응하면서 도메인에 대한 이해도가 빠르게 높아집니다.
그런데 태도가 좋지 않다면 성장도 더디지만 같이 일하는 사람들을 정신적으로 힘들게 만들고 개발 진행도 더디고 프로젝트가 실패할 가능성을 높이기 때문에 채용하지 않거나, 억지로라도 채용을 하려면 좋은 태도의 개발자로 빠르게 변신시켜야 합니다. 사람을 변신시키는 것은 동기 부여와 멘토링의 영역이기 때문에 창업자 본인이 사람의 성향을 바꾸는 데 자신 있는 경우에 시도해보시길 바랍니다. 성공할 경우 평생 사업 파트너가 될 수도 있습니다.
채용의 난이도
좋은 개발자의 채용은 초기 스타트업이 할 수 있는 가장 좋은 선택지인 만큼 그 난이도가 높습니다. 시니어 개발자가 초창기 스타트업에 합류했다면 빠른 성과와 성공을 원하고 주니어 개발자가 초창기 스타트업에 합류했다면 효과적인 성장을 원합니다.
초창기 스타트업은 대기업과도 채용 경쟁을 해야 하지만 투자유치를 했거나 일단 서비스 런칭을 해서 사용자 반응을 모으고 있는 스타트업들과도 채용 경쟁을 해야 하다 보니 아직 서비스 개발을 시작하지 않은 상태에서 시니어에게 성공을, 주니어에게 성장을 상상하게 할 수 있는 포인트가 별로 없습니다. 어떻게 설득을 해서 모시고 와도 아직 이 사업과 서비스에 대한 확신이 부족하고 외부 유혹이 많아서 쉽게 이탈할 수 있습니다.
스타트업이 개발자를 선택하는 것이 아니라 스타트업이 개발자에게 선택받아야 하는 시대이기 때문에 입사 후에 서비스의 성공과 더불어 개발자로서의 커리어 성장, 비즈니스적인 경험과 흥미로운 기술 스택의 경험, 이후에 좋은 개발자/기획자/마케터들과 협업할 수 있다는 기대감, 본인의 성장에 따른 지속적인 보상 등 개발자들을 붙잡아두기 위한 장치들이 잘 마련되어 있어야 합니다.
핵심 개발자가 떠나려고 해요
스타트업에서의 개발자들의 근속 기간이 점점 짧아지고 있습니다. Z세대라고 표현하는 90년대생, 20대 중후반부터 30대 초반의 젊은 직장인들, 특히 개발자들은 연차에 따라 경험이 빠르게 성장하고 많은 기회에 노출되어 있으므로 더 좋은 보상과 성공의 기회, 성장의 기회가 있다면 변화를 추구합니다. 비개발 직군보다는 개발 직군이 상대적으로 이직 시의 연봉 인상과 새로운 기술/경험 습득의 기회가 많아 근속기간이 짧고 이직이 잦은 느낌입니다.
문제 상황이라기보다는 세대가 바뀌고 시대가 바뀌는 것이라, 그리고 수요/공급 상에 공급자인 개발자들이 유리한 상황이라 받아들여야 하고 대비해야 합니다. 떠나는 사람들에게 배신감을 느낄 필요도 없고 일단은 잘 보내주고 채용 및 보상 정책을 다듬은 후 또 다른 새로운 사람을 모시고 와야 하며 매끄럽게 인수인계가 될 수 있도록 해야 하죠. 그렇다고 짧은 근속기간을 대책 없이 지켜보라는 것은 아니고 1년 이상 붙잡아두기 위해 개발자들의 성장 장치와 보상 장치들을 마련해야 합니다.
계속 일할 수 있는 동기의 유지
'무엇이 성과를 이끄는가'라는 책에서 6가지 동기를 말하는데 일의 즐거움, 의미, 성장이 직접 동기여서 높여주어야 하고, 정서적 압박감, 경제적 압박감, 타성이 간접 동기인데 성과를 떨어뜨리기 때문에 이 동기에 대한 의존도를 줄여야 한다고 합니다. 다행히 개발이라는 직군은 비효율적으로 일하지만 않으면 기본적으로 즐거우면서 성장하기 좋은 분야이고, 스타트업은 공기업/대기업에 비해 사업의 비전과 의미를 강조하기 쉽습니다.
정서적/경제적 압박감과 타성을 줄이기 위해서는 스트레스가 적은 환경에서 다른 경제적 대안을 고민하지 않도록 충분한 보상이 있어야 하고 타성에 젖지 않도록 새로운 역할, 새로운 업무, 더 많은 책임감을 부여하면서 성장시켜야 합니다. 더군다나 개발자로서 매너리즘에 빠지지 않도록 개발자가 겪어보지 않은 새로운 기술 문제나 기술 스택을 경험하게 하는 것도 필요하고 UX나 비즈니스에 대한 고민도 개발자와 함께 나누어 수동적인 개발보다 적극적인 참여를 유도하면 좀 더 서비스에 대한 책임감을 심어줄 수 있습니다.
인썸니아도 초기에는 많은 개발자들이 빈번하게 나가고 들어오다가 회사의 평판이 개발자들 사이에서 좋아지고 보상 정책과 회사의 방향성을 정해나가자 점차 개발자들의 근속기간이 길어지고 있고 그분들이 추천한 개발자를 채용하게 되어 채용과 근속 유지의 어려움이 줄어들었습니다. 채용은 초기가 어렵고 점차 수월해지는 영역이니 희망을 가지고 파이팅하시기 바랍니다!
초기 스타트업은 어떤 개발자를 채용해야 하나
개발자 채용이냐 외주 개발이냐
초기 스타트업이 서비스를 개발하기 위해 할 수 있는 선택지는 크게 개발자 채용과 외주 개발 두 가지가 있습니다. 글을 쓰는 제가 스타트업에게 의뢰받아 서비스를 개발하는 개발 파트너의 입장이기 때문에 채용과 외주 간에 중립적인 비교가 어려울 것이라 생각하시겠지만 저는 의외로 만나는 고객사마다, 창업팀에 합류할 의사가 있는 좋은 개발자가 주변에 있다면 외주보다 채용이 낫다고 말씀드립니다.
개발자 채용을 먼저 시도해보신 후 잘 안 되시거나 채용 성공 후 개발자가 금방 이탈하거나 주니어와 개발을 하는데 너무 오랜 시간 시행착오를 겪고 있으실 때 다시 개발 의뢰를 고민하라고 말씀드리고 있고 더불어 어떤 개발자를 채용해야 하냐고 질문을 받는 경우가 많아 그에 대한 글을 정리해봤습니다.
지금은 15명의 개발팀을 운영하고 있지만 15년의 커리어 동안 스타트업을 하면서 프리랜서 개발자에게 외주 개발을 맡겨보기도 했고 기획과 프로젝트 매니지먼트를 수년간 했었으며 10년 이상 직접 개발을 하고 있고 개발팀을 이끌거나 기획팀/디자인팀/개발팀이 합쳐진 서비스 본부를 맡아보기도 했으므로 여러 가지 선택지를 경험했습니다.
몇 년차 개발자를 채용해야 하나
공동창업자급의 시니어 개발자나 같이 성장할 수 있는 태도와 학습 능력이 좋은 3~5년 차 경력 개발자가 합류한다면 이분들과 팀빌딩을 하여 자체 개발을 하는 것이 가장 좋은 선택지입니다. 처음부터 비개발자인 창업자가 2~3명의 개발자로 구성된 개발팀을 꾸리는 것은 어렵기 때문에 보통 한 명의 개발자를 채용하게 됩니다.
적어도 3~5년 차 이상이고 스타트업 서비스를 주도적으로 개발해 본 개발자를 채용하는 것이 좋습니다. 1~2년 차 이하의 개발자라면 협업 경험이 적어 창업자/기획자의 이야기를 잘 이해하지 못하거나 쉽게 구현할 수 있는 것을 복잡하게 설계하거나 자신이 짠 코드를 자신이 감당하지 못해 오류를 많이 만들고 쉽게 못 고칩니다. 이 단계에서는 아직 스스로 성장하기 어려워 사수가 없으면 좋지 않은 방법을 반복하게 되므로 혼자 개발을 해야 하는 초기 스타트업에서 주니어 개발자와 창업자는 궁합이 안 맞습니다.
그래서 스스로 개발의 방향성을 가지고 학습할 수 있고 자신감이 있으며 소통 능력이 있고 태도가 좋은 3~5년 차 이상의 개발자를 고려하시는 것이 좋습니다. 연봉과 지분을 맞춰줄 수 있고 1년 이상은 같이 할 정도로 신뢰가 형성되어야 하므로 모시고 오기 위해서는 사업에 대한 비전과 오랜 설득 과정, 어느 정도 정리된 보상 기준이 준비되어 있어야 합니다.
개발자가 원래 근무하던 회사를 그만두지 않고 파트타임으로 참여하겠다고 한다면 그만큼 개발 기간이 길어지고 집중도가 낮아지므로 창업자의 시간과 비즈니스 타이밍을 포기해야 한다는 점을 감안해야 합니다. 스타트업 초기에는 기획과 의사결정이 수시로 바뀌고 개발은 이를 발 빠르게 대응해야 하기 때문에 실력이 아주 좋은 개발자가 짬짬이 참여하는 것보다는 그 보다 실력이 좀 떨어져도 창업자 옆에서 붙어서 같이 개발해줄 개발자가 더 낫습니다.
1년 이상이라는 단서를 단 이유는, 서비스 출시 후 성과를 보이기까지는 혼자서 개발을 이어나가야 할 가능성이 높은데 서비스 출시 전에 이탈하는 것은 개발자 채용과 서비스 개발 과정을 처음부터 다시 해야 한다는 이야기이고 많은 시간과 비용이 낭비되게 됩니다.
출시 후에도 운영 과정에서 지속적인 기능 개선과 오류 대응을 해야 하는데 중간에 개발자가 이탈한다면 이를 이어서 개발해줄 개발자를 찾기는 더 어렵고 찾더라도 인수인계도 쉽지 않을뿐더러 새로운 개발자가 기존의 코드에 적응하기까지 서비스가 불안정할 수밖에 없습니다. 그래서 잠깐 개발해주고 떠날 개발자가 아니라 1년 이상 진지하게 합류하려는 개발자라 아니라면 실력이 좋다 하더라도 고민해봐야 합니다.
어떤 경험을 가진 개발자를 채용해야 하나
3~5년 차 이상이더라도 코드를 작성하지 않고 개발 관리만 해왔거나 테스트 코드만 작성해왔거나 커다란 프로젝트의 특정 파트만 담당해서 오랜 기간 발전시켜왔다면 스타트업 서비스 하나를 온전히 개발해내는 데 시행착오를 겪을 수 있습니다. 제한된 비용과 시간 안에서 요구사항을 UI와 기능으로 바꿔 해석하는 능력, 적당한 기술 타협, 그러면서도 기술 부채에 대한 적절한 컨트롤이 필요한데 이런 역량이 길러지려면 서비스 전체 레벨에서 구조를 살펴보고 코드를 직접 작성한 경험이 필요합니다.
몇 년차이냐가 똑같이 적용되지 않고 개발자마다 다르기 때문에 단기간에 빠르게 성장한 개발자와 오랜 기간 동안 평평한 성장을 한 개발자를 연차로 단순 비교하는 것은 어렵습니다. 경험의 양과 경험의 질을 모두 고려해야 하는데 1~2년 안에는 압축성장을 했다 하더라도 혼자 서비스 개발을 하기에는 어려움이 있고 3~5년 이상 개발을 했더라도 스타트업 서비스를 혼자서 만들 수 있는 역량이 쌓여 있는지 확인을 해야 하는데 비개발자인 창업가가 이를 판단하기 어려워 주변에 있는 시니어 개발자의 도움을 받는 것이 좋습니다.
경험의 양인 연차는 정량적인 지표라 그래도 파악이 쉽지만 경험의 질은 정성적인 지표이고 측정이 어렵기 때문에 개발자의 태도, 이해능력, 성장 욕구, 함께 일한 사람들의 평가, 시니어 개발자와의 면접이 필요합니다. 1~3개월의 수습 기간을 두고 협업을 원활하게 하는지 약속한 결과물을 적당한 시점에 만들어내는지, 말만 잘하는 사람인지, 겸손한데 묵묵히 좋은 성과를 내는 사람인지 같이 일해 보면서 파악을 합니다.
어떤 태도를 가진 개발자를 채용해야 하나
저는 요즘 좋은 태도를 가진 개발자들을 많이 만나고 있는데 반대로 좋지 않은 태도의 개발자들도 만나봤습니다. 고백하자면 제 스스로가 좋지 않은 태도의 개발자였던 시기가 있었으므로 좋은 태도와 그렇지 않은 태도가 협업의 난이도와 프로젝트 성공 확률을 얼마나 극과 극으로 바꾸는지 알고 있습니다.
좋은 태도라는 표현이 포괄적인데 몇 가지 요소를 말해보자면, 방어적이지 않고, 적극적으로 커뮤니케이션하려고 하며, 겸손하고, 자신의 잘못을 인정할 줄 알고, 자존감이 높으며, 지속적으로 스스로를 개선하려는 태도를 가졌다면 좋은 태도라고 할 수 있습니다. 좋은 사수가 있고 좋은 개발 환경이 있다면 태도가 좋은 개발자의 실력은 빠르게 늘게 되어 있습니다. 비즈니스 상황 변화에 적극적으로 대응하면서 도메인에 대한 이해도가 빠르게 높아집니다.
그런데 태도가 좋지 않다면 성장도 더디지만 같이 일하는 사람들을 정신적으로 힘들게 만들고 개발 진행도 더디고 프로젝트가 실패할 가능성을 높이기 때문에 채용하지 않거나, 억지로라도 채용을 하려면 좋은 태도의 개발자로 빠르게 변신시켜야 합니다. 사람을 변신시키는 것은 동기 부여와 멘토링의 영역이기 때문에 창업자 본인이 사람의 성향을 바꾸는 데 자신 있는 경우에 시도해보시길 바랍니다. 성공할 경우 평생 사업 파트너가 될 수도 있습니다.
채용의 난이도
좋은 개발자의 채용은 초기 스타트업이 할 수 있는 가장 좋은 선택지인 만큼 그 난이도가 높습니다. 시니어 개발자가 초창기 스타트업에 합류했다면 빠른 성과와 성공을 원하고 주니어 개발자가 초창기 스타트업에 합류했다면 효과적인 성장을 원합니다.
초창기 스타트업은 대기업과도 채용 경쟁을 해야 하지만 투자유치를 했거나 일단 서비스 런칭을 해서 사용자 반응을 모으고 있는 스타트업들과도 채용 경쟁을 해야 하다 보니 아직 서비스 개발을 시작하지 않은 상태에서 시니어에게 성공을, 주니어에게 성장을 상상하게 할 수 있는 포인트가 별로 없습니다. 어떻게 설득을 해서 모시고 와도 아직 이 사업과 서비스에 대한 확신이 부족하고 외부 유혹이 많아서 쉽게 이탈할 수 있습니다.
스타트업이 개발자를 선택하는 것이 아니라 스타트업이 개발자에게 선택받아야 하는 시대이기 때문에 입사 후에 서비스의 성공과 더불어 개발자로서의 커리어 성장, 비즈니스적인 경험과 흥미로운 기술 스택의 경험, 이후에 좋은 개발자/기획자/마케터들과 협업할 수 있다는 기대감, 본인의 성장에 따른 지속적인 보상 등 개발자들을 붙잡아두기 위한 장치들이 잘 마련되어 있어야 합니다.
핵심 개발자가 떠나려고 해요
스타트업에서의 개발자들의 근속 기간이 점점 짧아지고 있습니다. Z세대라고 표현하는 90년대생, 20대 중후반부터 30대 초반의 젊은 직장인들, 특히 개발자들은 연차에 따라 경험이 빠르게 성장하고 많은 기회에 노출되어 있으므로 더 좋은 보상과 성공의 기회, 성장의 기회가 있다면 변화를 추구합니다. 비개발 직군보다는 개발 직군이 상대적으로 이직 시의 연봉 인상과 새로운 기술/경험 습득의 기회가 많아 근속기간이 짧고 이직이 잦은 느낌입니다.