세상을 놀라게 하자!

사람 뽑기 본문

Social skill

사람 뽑기

유진호 2015. 11. 30. 01:54
시작하기 

 "팀에 사람을 뽑아봐요"라고 말을 들었을 때, 속으로 '야호~'라고 했습니다. '이제 내 팀에도 사람을 내가 맘대로 배치해볼 수 있구나' 하고 말이죠. 그런데 어떤 사람을 어떻게 뽑아야 할지 고민이 되었습니다. 예전부터 '사람 함부로 뽑지 말아라'하고 잔소리를 했지만 정작 내가 어떻게 잘 뽑을 수 있을지 두려웠던 것입니다. 그래서 마음을 편하게 먹고 MVP(Minimum Viable Product, 최소기능 제품)을 만든다 생각하고 시작했습니다. 

이를 위해서 아래와 같은 가설을 세워봤습니다. 이제 이 가설들이 어떻게 깨져나가는지 하나하나 즐겨보시기 바랍니다. T_T 

       이 인간이 돌았나... -.-;; 이봐, 가설이라나... 

  1. 자세한 자격조건이 들어간 구인공고는 좋은 사람들을 불러 모을 것이다
  2. 배경조사는 처절하게 해야 한다. 구글신, 도와줘요. 
  3. 개인 상향 테스트는 가장 적합한 사람을 고르는데 중요한 자료로 이용될 것이다
  4. 서류면접-원격코딩테스트-방문테스트의 순서로 하는게 시간자원도 아끼고 많이 심사할 수 있을 것이다. 


가설1: 자세한 자격조건이 들어간 구인공고는 좋은 사람들을 불러 모을 것이다 

처음 구인공고를 쓰면서 아주 신나게 적었습니다. 평소에 애매모호하게 적혀있거나 어떤 일을 할 지 너무 불분명한 공고들을 보면서 스스로 답답했었기 때문에 신나게 적었습니다. 첫번째 버전은 아래와 같습니다.   (단순 회사 소개/근무 조건등등은 뺐어요.) 



직무 내용(Job description)

아래와 같은 일을 하게 됩니다. 

  1. 기존의 RDBMS나 CSV/Text와 같은 크고 다양한 형식의 Data를 ETL(추출/변환/가져오기) 처리.
  2. Cluster를 구축해서 기존에 구현된 Machine learning 알고리즘을 병렬처리 하게 구현하기
  3. 분석기능을 손쉽게 통합하거나 사용할 수 있도록 RESTful API를 구현하기 
  4. 빠른 실행속도를 보장하기 위해 끊임없는 분석/최적화하기 
  5. 이를 안전하게 이용할 수 있게 보안 기능을 적용하기
  6. 지속적으로 시스템을 배치할 수 있게 하기.

현재 저희가 사용하는 Platform/Open source는 다음과 같습니다. 
  • 모든 시스템은 Linux로 동작하게 됩니다. 
  • Python으로 구현하고 있습니다. Celery(비동기 작업큐), Flask(가벼운 웹 프레임워크)를 이용하고 있습니다. 
  • Spark로 Cluster를 구성하고 big data를 가져오고 변환하고 병렬처리하는데 이용하고 있습니다. 
  • Vagrant를 이용해서 작업환경을 통일하고 있습니다.
  • 최종 Deployment(출시)를 하는데는 Docker를 이용합니다. 
  • 전체 빌드와 출시까지의 과정은 Jenkins를 이용합니다. 
  • 모든 기능들에 대한 Unit test / Integration test를 합니다. 
  • 모든 개발 계획/실행은 애자일 방식으로 진행하게 됩니다.
  • 그 외에 계속해서 필요한 open source framework들을 상황에 맞게 찾아서 적용하고 있습니다.  

자격요건(Qualification)
  • Python으로 코딩이 가능해야 합니다. 
  • MapReduce에 대한 이해가 필요합니다. 
  • Vagrant / Docker를 사용해본 적이 있어야 합니다.
  • RESTful API에 대한 개념을 이해해야 합니다.
  • 영어로 된 문서를 읽고 일정 수준의 대화가 가능해야 합니다. 
  • 아래와 같은 Big data / Machine learning / Data engineering 관련 경력 중 하나 필수
  • Stackoverflow와 같은 사이트에 Q&A
  • 관련 온라인 커뮤니티 활동 
  • Blog 활동 

아래의 사항을 우대합니다. 
  • Scala 사용자 우대
  • TDD (Test-Driven development) 경험자 우대 
  • SQL 경험자 우대
  • 컴퓨터 과학 분야에서 논문 발표 실적이 있으신 분
  • 특정 서비스를 만들어서 운영하는 것까지 경험이 있으신 분
  • 오픈소스에 기여한 경험이 있으신 분 
  • 애자일/XP에 대한 경험이 있거나 이해가 있으신 분



 그리고 이 입사공고를 사림인, 인쿠르트, 로켓펀치, 심지어 KLDP등등까지 다 올려놓고 그것도 모자라서 모교에 이메일로 교수님들에게 소개를 부탁했습니다. 그런데 대부분 저에게 온 답변은 이거였습니다. 

"너무 무서워요, 입사요건이 지나치게 높은거 아니에요?"
"나도 지원하기 힘들거 같아요. 이런 사람 찾을 수 있어요?"

 여러분, 해치지 않습니다만... 



어? 뭐라고? 개인적으로 좀 놀랐습니다. 심지어는 다른 회사에서 팀장 급인 분들까지도 이런 피드백을 주는 것이었습니다. 자세하게 입사공고를 보기 시작했습니다. 그런데 '자격요건'부분이 계속 걸렸습니다. 스스로 이 질문들을 해봤습니다. 

"현재 일을 하는데 반드시 가지고 있어야 하는 자격과 와서 습득할 수 있는 자격에 구분을 하고 있는가?"
"이 자격요건에 딱 맞는 한 사람을 떠올려볼 수 있는가? 있다면 그런 사람을 어떤 조건이면 데려올 수 있는가? 없다면 어떻게 그런 사람을 만들 수 있을까?"

그래서 이를 아래와 같이 바꿨습니다. (실제는 이렇게 올라갔습니다. )



직무내용
  • Data engineering

자격요건
  • 데이터를 다룰 수 있는 능력
  • Python 코딩 능력
  • Blog 활동이나 Stackoverflow와 같은 사이트에 Q&A, 혹은 관련 온라인 커뮤니티 활동

우대요건
  • 아래의 사항을 우대합니다.
  • TDD 경험자 우대
  • 컴퓨터 과학 분야에서 논문 발표 실적이 있으신 분
  • 특정 서비스를 만들어서 운영하는 것까지 경험이 있으신 분
  • 오픈소스에 기여한 경험이 있으신 분
  • 애자일/XP에 대한 경험이 있거나 이해가 있으신 분

제출서류 및 접수방법

:아래 2개 서류는 (자유 양식) 필수 제출 서류이며, 추가로 본인을 설명할 수 있는 자료가 있으시면 추가 첨부 바랍니다.
  • 이력서 (연락처 꼭 표기)
  • 경력 기술서
    • 경험해 본 웹/앱/서버 개발 관련 프레임워크, 라이브러리 기술 상세 기재
    • (해당시) 운영하는 블로그 주소 및 완수한 프로젝트 주소



 차이가 없어보이죠? 가장 많이 달라진 것이 자격요건입니다. 딱 세가지로 간략하게 줄였습니다. 이렇게 만든 이유는 1. 사람은 3가지 이상 기억 못한다. 2. 원래의 자격요건을 완전히 갖춘 사람은 원래 없을 것이다. 3. 그러나 똑똑한 사람이라면 커뮤니티나 자신의 블로그등을 통해서 반드시 노출될 수 밖에 없고 글쓰기를 할 수 있는 사람은 코드도 잘 쓴다는 조엘 스폴스키의 조언을 받아들이자 였습니다. 여기에다가 회사 사무실 사진들도 몇 장 찍어서 같이 올렸습니다.

 그 변화는 이랬습니다. 10월 6일 처음 공고가 올라가고 10월 14일 간략버전이 올라갔습니다. 그 사이에 약 2건이던 지원자가 그 이후로 급격하게 늘었습니다. 물론 시간이 지나야 사람들에게 번져나가겠지만 초기에 너무 없다가 비교하기 불가능할 만큼 많이 지원을 해주셔서 그 효과가 좋았다고 생각합니다. 사람욕심을 많이 부리는게 나쁜 것은 아니지만 지나치게 '이상화'된 입사공고는 숨은 보물을 찾을 수도 없게 한다는 것을 알았습니다.

그리고 사무실 실제 환경을 찍은 사진들의 효과는 솔직히 잘 모르겠습니다. 사진을 이렇게 넣어본 이유는 많은 다른 회사들에서 했던 것을 흉내낸 것이라 어떻게 사람들이 반응할 지 몰라서 우선 넣어본 것입니다. 하지만 제가 보기에는 예전보다는 좀 더 구체적으로 일하는 환경을 그려볼 수 있었을 것이라 생각합니다. 

결론: 지나치게 자세한 요구사항이 적힌 구인공고를 보고 구직자는 겁을 먹는다. 정말 필요한 요구사항만 적어라. 


가설2: 배경조사는 처절하게 해야 한다. 구글신, 도와줘요. 

  많은 이력서가 도착하자 제일 먼저 한 일은 이 사람들에 대한 배경을 조사해야 했습니다. 그런데 뭘로 할지 막막하죠. 그렇다고 직전 회사들에 다 전화해서 '이 사람 괜찮았어요?'라고 물어보면 대부분 '아, 괜찮아요'라고 말하는 경우가 더 많을 것이라 생각했습니다. (저 스스로도 차마 정말 나쁜 사람아니면 그렇게 말하기는 어려울 것 같아요.) 

 그래서 한 방법은 이력서 전체에서 단어들만 적당히 추출해서 구글에 넣어보는 것이었습니다. 예를 들어 다녔다는 회사나 참여했다는 행사, 경쟁대회 등등이 다 실존 하는지 부터 그 경력이 맞는지 조사한겁니다. 당연히 논문, 외부기고등 모든 것들을 다 확인했습니다.  실제 몇몇 지원자들의 경우 이러한 서류심사 과정에서 이상이 있어서 더 진행을 안한 경우도 있었습니다

신이시여, 이 자를 뽑아야 합니까? 



 네, 시간 무척 걸립니다. 그런데 지금 안 거르면 나중에 더 후회합니다. 고용계약서를 쓴 다음에는 늦은 겁니다. 게다가 이제는 구글과 네이버가 검색해주는 능력은 우리가 바라볼 수 있는 것 이상을 찾아볼 수 있게 해줍니다. 조금만 고생하면 미래가 편합니다. 

결론: 미친듯이 뒤져라. 뒤지면 다 나온다. 


가설 3: 개인 성향 테스트는 가장 적합한 사람을 고르는데 중요한 자료로 이용될 것이다

개인성향을 테스트를 넣어야 겠다라고 생각한 것은 AC2 교육에서 배웠던 사람들의 다른 성향에 대한 내용 때문이었습니다. 우리는 다르지 나쁘거나 옳지 않은 존재들이 아닙니다. 이런 사람들이 모여서 일을 하고 같이 하는 것입니다. 그러니 서로가 서로를 이해할 수 있는 도구가 필요했습니다. 제가 이용한 것은 Big-5 test 였습니다.

네, 사실 온라인으로 공짜로 할 수 있어서....


 성격검사를 이용할 때 반드시 고려해야 하는 것이 몇가지 있습니다. 첫번째, 이것은 절대적인 기준이 아닙니다, 참고자료일 뿐입니다. 어떤 사람의 성향도 단순한 성격검사로 완벽하게 알 수 없습니다. 두번째 이 테스트를 반드시 기존에 있는 멤버들도 모두 해봐야 합니다. 그렇게 해서 전체 구성원들이 주로 어떤 성향의 사람들로 구성되었는지를 파악해야 합니다. 조직에 낙관주의자만 있으면 위기를 못보고 바관주의자만 있으면 에너지를 잃어버리고 아무것도 못 하기 때문입니다. 세번째, 지금 필요한 자리에 맞는 성향이 어떤 사람인가를 고민해야 합니다. 예컨대 새로운 기술을 미친듯이 빨리빨리 배워야 하는 자리에 개방성(Openness)가 떨어지는 사람을 뽑아놓으면 어떻게 될까요? 

 특별히 개인 성향 검사에 의해 당락이 결정된 사람은 없습니다. 다만 해당 면접자와 이야기를 할 때 어떤 성향인지 알기 때문에 면접자의 행동에 대한 해석을 쉽게할 수 있었습니다. 그래서 “왜 이 사람이 이렇게 반응하지?”라는 부분의 의문을 덜고 시작했습니다. 예컨대 지나치게 신경증(Neuroticism)수치가 높은 사람의 경우에는 긴장을 풀어주기 위해 사전에 농담을 좀 많이 하고 코딩테스트에서 압박을 가하지 않도록 조심해서 면접자가 최대한 자신의 기량을 발휘할 수 있게 배려해줄 수 있었습니다. 

결론: 개인 성향 테스트는 반드시 하자. 이것은 당락결정이 아니라 면접자와 의사소통할 때 이용하는 것이다.   


서류면접-원격 코딩테스트-방문테스트의 순서로 하는게 시간자원도 아끼고 많이 심사할 수 있을 것이다. 

 이 부분에 대해서는 좀 이견이 있습니다. 좋은 사람을 뽑기위한 과정으로선 반드시 필요한 시간이었다고 생각합니다. 하지만 솔직히 말해서 굉장히 많은 시간을 들여야 했습니다. 원격 코딩 테스트는 30분 일반 면접, 30분 코딩테스트를 거쳤습니다. 이를 위해 면접전에 미리 이력서를 리뷰해서 꼭 해야 할 질문들을 다 적어놨습니다. 코딩 테스트 문제도 준비해 놔야 했습니다. 그렇게 약 10여분을 여러날에 거쳐서 면접을 보다보니 저도 많이 지치더라고요. 그래도 보람은 분명히 있었습니다. 만약 이런 과정들만 전문적으로 어느정도 해주는 Recruiter 가 있다면 저는 아무래도 시간을 줄일 수 있었겠지요. (이미 이런 부분에 대한 자동화 서비스를 준비하는 곳들도 있다고 알고 있습니다.)

서울같이 복잡한 곳에서 여러번 얼굴보면서 보자고 하면 그것도 자원낭비죠. 


 또 하나 놀라운 것은 실제 멀리 사시는 분들의 경우 굳이 서울까지 오시는 시간을 줄일 수 있어서 부담은 없었다는 피드백도 받았습니다. 실제 많은 회사들이 서류 리뷰후 그냥 무턱대고 ‘와보라’한 다음 준비없이 대충 의미없는 질문만 던지고 마는 경우가 많습니다. 이렇게 하면 면접자의 시간과 면접관의 시간을 맞춰서 약속을 잡아야 하겠지요. 그런데 실제 방문하는 약속을 잡기위해서는 당장 면접관의 일정에서 빈 시간이 언제인지, 또 면접자는 언제가 되는지 맞춰야 합니다. 이때 실제 오가는 시간도 고려해야 하고 업무시간에 방해안되는 시간 찾아야 하고 하니 힘듭니다. 그러나 화상통신으로 보는 약속을 잡으면 상대적으로 유연한 일정을 잡을 수 있었습니다. 그래서 많은 사람들을 면접볼 수 있게 해줍니다. 그리고 이렇게 1차로 걸러진 분들 모두 놓치기 아까운 분들이었습니다. 

 실제 최종면접 합격자 분 중에서는 지방에서 학교를 나오신 분이 있었습니다. 이런 분들에게는 실제 원격 코딩 테스트를 한 것이 많은 도움이 되었습니다. 

 참고로 원격 코딩 테스트를 할 때는 주로 행아웃으로 화상통신을 하면서 구글닥스 문서하나를 주고 거기에 30분간 답을 적게 했습니다. 그동안에 같이 의사소통을 계속했었습니다. 


 결론: 원격 코딩 테스트 준비 시간은 많이 걸리지만 좋은 사람을 뽑을 확률을 높여 준다. 면접자, 면접관 둘 다 이익이었다. 


최종결론: 사람은 자원이 아니다. 

 정말 운이 좋게도 이번 채용 프로세스 개선을 통해서 좋은 분들을 많이 만나봤고 또 좋은 분들과 함께 일을 하는 영광을 누리게 되었습니다. 이런 일들이 반드시 모든 경우에 더 나은 채용을 하게 해줄지는 잘 모르겠습니다. 언제나 제도가 처음 만들어진 정신을 잊어버리고 절차로만 남는다면 이것은 또 다른 벽이 되어버릴 것입니다. 그래서 반드시 모든 상황에 유연하게 대처하겠다는 마음을 잊어선 안됩니다

네, 맞습니다. 저는 국민TV조합원입니다. 


 이 모든 과정에서 꼭 붙들고 있었던 것이 있습니다. 과거 최동석 국민TV 경영담당 이사님 강의에서 들었던 말씀입니다. “사람은 자원이 아니다”. 사람은 어떠한 목적을 위해 만들어진 존재가 아니고 그 자체로 의미가 있는 존재라는 것입니다. 그러므로 어떤 경우에도 사람을 도구로 사용하거나 이를 위해 측정하는 모든 것을 다 버려야 한다는 것이지요. 

 한국 기업 대부분의 문제는 여기에서 출발한다고 생각합니다. “나와 당신”의 관계가 아닌 “나와 그것”의 관계로 바라보게 되면서 모든 의사소통 구조가 막히며 자신들을 혁신시킬 인재보다는 그저 말 잘 듣고 조직의 잘못에 입을 다무는 자들을 채용하려 드는 것이지요. 이것들이 모두 정교하게 사회내부에 녹아들어 젊은이들의 지옥을 만들어내는 것을 알만한 사람들은 다 압니다. 저는 사실 너무나 운이 좋게 회사 경영진의 지원을 받아서 채용 전 과정에 대한 실험을 할 권한을 받았던 것입니다. 보통의 경우에는 쉽지 않을 것입니다. 하지만 아직 작은 규모의 조직이거나 혁신을 꿈꾸는 조직이라면 이 경험의 내용이 도움이 되리라 생각합니다. 

 사실 채용은 그저 모든 것의 시작입니다. 이제 이 사람들과 같이 함께 문제를 해결해 나가는 조직을 꾸려가야 합니다. 이 안에서 정말 많은 문제들이 생길것입니다. 책이나 훈련에서 접해보지 못한 복잡미묘한 문제들이 세상에는 많을 것입니다. 그러니 가 봐야죠. 분명히 우리는 실패합니다. 성공할 확률보다 과학적으로도 그럴 확률이 더 높습니다. 하지만 우리는 함께 문제들을 해결해 나갈것입니다. 그리고 답을 찾을 것입니다. (이봐, 뭐라구요?-.-;;) 


Comments