Thoughts2013.12.11 17:07

좋은 개발자를 뽑기 위한 환경을 갖추었다고 칩시다. 그런데 대관절 좋은 개발자는 어떻게 알아볼 수 있을까요? 좋은 개발자와 그렇지 않은 개발자를 가려내는 것은 생각보다 어렵습니다. 



일단 개발자를 만났다면: 


1. 어떤 프로그램을 만들어 보았는지 물어보라.


만일 '재미삼아' 만들어 본 프로그램이 있다면, 그리고 그 프로그램을 아직도 유지보수하고 있다면, 혹은 그 프로그램을 공개 소프트웨어로 만들어 많은 사람들에게 배포해 본 경험이 있다면, 그 사람은 좋은 개발자일 가능성이 아주 높습니다. 


2. 어떤 프로젝트를 진행했었는지 물어보라. 


자신이 진행했던 프로젝트 이야기를 하면서 많은 개발자들은 자기 어필을 하려고 시도합니다. 가급적이면 그 이야기를 끝까지 들어주면서 그 개발자의 역할이 어느 정도였는지 파악하세요. 가능하면 무엇이 어려웠고, 그 어려움을 극복하기 위해 어떤 노력을 했는지 들어보세요. 그런 이야기를 듣다 보면, (1) 독야청청 독불장군형 개발자인지 (2) 협업 중심의 개발자인지 (3) 문제 방임형 개발자인지 (4) 문제 해결형 개발자인지 (5) 자기를 잘 포장할 줄 아는 개발자인지 (5) 말에는 별 소질이 없는 개발자인지 (6) 문제를 깊이있게 들여다보고 개발을 진행하는 사람인지 (7) 일단 만들어 보고 문제를 몸으로 이해하는 유형의 개발자인지 등등의 중요한 정보를 알아낼 수 있을 겁니다. 


3. 간단한 문제를 던져주고 어떤 접근법으로 풀 지를 물어보라.


보통 '코딩 인터뷰'를 진행하기도 하는데, 문법을 다 기억 못하거나 관련 자료를 찾아보면서 프로그래밍하는 사람도 많으니 코딩을 실제로 해 보라고 요구하기 보다는 어떤 접근법을 사용할 것인지 물어보는 것도 괜찮습니다. (물론 대부분의 외국 IT 업체는 종이에라도 프로그램을 만들어 보라고 요구하죠.) 답변을 들어보면 꽤 많은 정보를 얻을 수 있는데 (1) 예전에 이 개발자는 어떤 식으로 문제를 풀었는지를 알 수 있고 (2) 필요한 분야에 맞는 최신 지식을 많이 갖추고 있는지 알 수 있고 (3) 실질적으로 문제를 해결할 능력이 있는 지를 알 수 있습니다. 


덤으로, '당신의 해결방법에는 이러저러한 문제가 있을 것 같은데, 그건 어떻게 해결할 건가요?' 같은 질문도 던져 보면 좋습니다. 


4. 개발자의 입장에서 대화해 보라.


개발자의 입장에서 술 한잔 하면서 이런 저런 이야기를 하다보면, (결국에는) 일과 관련된 무용담을 털어놓게 되기 마련입니다. 가능하면 솔직하게 가감없이 자기 이야기를 먼저 하세요. '저도 그런 문제를 겪었었는데 저는 이렇게 해결했습니다' 같은 답변을 듣게 된다면, 아마 술이나 커피 값이 아깝지는 않을 겁니다. 


5. 옷차림에는 신경쓰지 마라.


허술한 옷차림을 하고 있는 개발자라면, 일 이외의 다른 문제에는 아예 관심이 없는 사람일 가능성이 있습니다. 의외로 갖춰입고 면접에 임한 개발자라면, 세상에 대한 열정이 가득한 사람일 가능성이 높습니다. 어느 쪽이라도 손해날 것은 없으니 웬만하면 옷차림은 신경쓰지 마세요. 


6. 회사 문화에 잘 동화될 만한 사람인지 알아보라. 


자만심, 아집, 편견 등등은 협력이나 조화같은 보편적인 가치에 굉장히 적대적인 속성들입니다. 이런 속성들을 갖춘 사람인지 살펴보시고, 능력이 기대치를 훨씬 상회하지 않는 한 그런 사람은 뽑지 마세요. 결국에는 팀이 아작납니다. 남 이야기를 잘 들으려 하지 않는 사람, 열 명이 아니라고 해도 자기 고집대로 하는 사람은 전부 이 부류에 넣을 수 있습니다. 냉소적이거나 빈정대는 습관이 있는 사람도 좋지 않습니다. 다른 사람 기분을 상하게 만드니까요. 


7. 가르칠 수 있을만한 사람인지 알아보라. 


즐겁게 배울 준비가 되어 있는 사람은 설사 배경지식이 부족해도 뽑아볼 만 합니다. 의외의 분야에 사람이 필요한데 거기 지원해 볼 생각은 있느냐, 같은 질문을 던져보고 반응을 보면 좋습니다. 물론 거짓된 반응을 보일 수도 있으니, 일정 기간 동안은 함께 일하면서 살펴볼 기회를 갖는 것도 좋습니다. 새로운 업무에 대한 파악 능력이 좋은 사람은 어떤 상황에 처하더라도 도움이 됩니다. 


8. 이전 직장에서의 평판을 알아보라. 


요즘은 전직을 통해 새로운 기회를 찾는 것이 보편화되고 있는 추세이므로, 직장을 많이 옮기는 것은 그다지 흠이 되지 않습니다. 오히려 전 직장에서 사람들과 어떻게 어울렸고, 어떤 리더십을 발휘했고, 어떤 결과를 만들어 낸 다음에 퇴사했는지를 알아보면 뽑는 사람 입장에서는 리스크를 줄일 수 있으므로 도움이 됩니다. 다만 너무 뒷조사하듯 할 필요는 없고, 그냥 아는 사람이 있다면 (이 바닥에서는 한 다리 건너면 다 아는 사람이죠) 한번 넌지시 물어보는 것으로 충분하겠죠. 


저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Thoughts2013.12.11 09:16

모든 스타트업에게 '좋은 개발자를 뽑는 것'은 아주 중요한 일입니다. 혼자서 모든 개발을 다 할 생각이 아니라면 더더욱 그렇죠. 그렇다면, 좋은 개발자를 뽑으려면 어떻게 해야 하는 걸까요?


1. 어떤 개발자가 필요한지를 명확하게 하라


개발자는 만능이 아니므로 '필요한 개발자가 어떤 부류인지' 명확하게 해 놓으면 도움이 됩니다. 필요한 분야에 맞지 않는 개발자를 전부 경력 부족으로 치부할 필요는 없겠지만, 뽑아야 하는 개발자가 갖추어야 할 기술이 어떤 것인지 명확하게 해 놓으면 도움이 되죠. 


2. 회사의 비전을 공개하라


비전은 여러 가지 측면으로 구성되는데, '성공할 것으로 보이는 아이템'도 그 중 하나겠지만, 유무형의 적절한 보상 체계도 거기 포함됩니다. 자기 개발 가능성도 빼 놓을 수 없겠죠. 그런데 어쨌든 중요한 것은, 이런 비전들이 내부적으로만 공유되는 것이 아니라 외부로도 공개되어야 한다는 것입니다. 회사 웹 사이트를 잘 구축해 놓거나, 회사가 자체적으로 운영하는 블로그 등이 그런 목적을 달성하는 데 유용합니다. 그러니 그런데 쏟는 노력을 아까와 하지 않는 것이 좋겠어요.


3. 회사의 문화를 명확하게 하라 


애플, 마이크로소프트, 구글 등등은 전부 회사의 개발 문화가 명확합니다. 좀 단순한 면이 없잖아 있지만 이 세 회사의 개발 문화를 각각 한줄로 요약해 보면:


(1) 애플: 까라면 까라. 대신 너희는 세상을 바꾸는 일에 동참하게 된다.

(2) 마이크로소프트: 인재를 인재답게 대우해준다. 최대한의 대우를 약속하지만 자유는 포기하라.

(3) 구글: 개발자가 원하는 모든 형태의 자유를 준다. 그 자유를 회사를 위해 써라. (?) 


회사의 문화가 명확하고 공개되어 있으면, 개발자가 회사를 선택하는 일이 좀 수월해집니다. 여러분의 회사도 마찬가지입니다. 이 때 중요한 것은 회사 문화에 대해서 거짓말을 하면 곤란하다는 겁니다. 그런 짓을 하면 나중에 '악평'을 덤으로 얻을 수 있습니다.


4. 쾌적한 근무환경을 만들어라


몇 명으로 시작하는 초기 단계에서는 어쩔 수 없는 일일지도 모릅니다만, 그렇더라도 회사의 근무환경은 최대한 쾌적하게 꾸밀 필요가 있습니다. 초기 단계에서 이 작업은 파티션 등을 쌓아올리는 구조적인 작업이라기 보다, 자유와 자율을 중시한다는 느낌을 주는 심미적인 측면에서 접근할 필요가 있습니다. 





5. 인맥을 적절히 활용하라


언제나 그렇습니다만, 구인 광고만 올린다고 사람이 오진 않습니다. 회사 홍보는 좋은 개발자를 뽑는 데 필수일 수밖에 없고, 지명도가 올라간 이후에도 꾸준히 이루어져야 하는 활동입니다. 그리고 보통 이 바닥에서 '홍보'의 한 수단으로 가장 효과적인 것 중 하나가 바로 인맥이죠. '한 다리 건너 아는 사람'이 좋은 개발자일 확률은 굉장히 높습니다. 중간에 낀 '한 다리'가 바로 그 '아는 사람'과 일해본 경험이 있는 경우가 대부분이기 때문이죠. 일해본 사람은 그 사람이 어떤 사람인지 알고, 서로 무엇이 아쉬운지 잘 알게 마련이죠. 


저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^