2 분 소요

어떤 채용 절차를 거치는지, 면접에서 어떤 사람을 만나는지는 그 회사에 들어갈 것이냐 말 것이냐를 결정짓는 매우 중요한 요소다. 좋은 인재를 놓치지 않기 위해서 면접을 할 때 무엇을 피해야할지 알아보자.

똑똑한 척하는 면접관을 세운다

지원자 앞에서 겸손하고 정직해야 한다. 지원자를 프로페셔널 개발자로서 대하고, 채용을 위한 평가나 취조가 아니라 당신이 존중하는 누군가와의 유익한 기술 토론이 되도록 면접을 이끌어야 한다.

수수께끼식 질문을 던진다

직무와 전혀 관계 없는 바보같은 질문은 하지 말아야 한다. 수수께끼 같은 질문들에 답할 수 있느냐 없느냐는 좋은 코드를 작성하고, 좋은 팀 플레이어가 되고, 프로페셔널다운 태도를 가지는 것과 전혀 관계가 없다. 구글의 면접관들도 잘못된 것을 깨닫고 이런 질문을 그만둔 지 오래되었다.

답을 모르는 질문을 한다

면접 전에 구글에서 질문과 답변을 검색해보는 것은 의미 없는 행위다. 면접관으로서 어떤 질문에 어떤 답변이 나와야 하는지 잘 모르겠다면 채용중인 직무와 관련해서는 그다지 중요한 질문이 아닐 가능성이 높다. 팀 동료에게 흔히 하지 않는 질문이라면, 팀 동료가 짜증을 낼 질문이라면, 지원자에게도 삼가해야 한다.

인터넷 접속을 막는다

솔루션들을 탐색하고 더 나은 문제 대응 방법을 찾는 것은 소프트웨어 개발자로서 갖추어야 할 핵심적인 능력이다. 인터넷 접속을 막는 것은 전혀 합당하지 않다. 인터넷 검색 때문에 코딩 면접이 변별력을 잃을 수 있다면 면접 과제 자체에 문제가 있다고 본다.

종이에 코드를 작성하게 한다

지원자에게 종이나 화이트보드에 코드를 작성토록 하는 것은 참으로 바보같은 면접 방법이다. 실제 도구를 이용해서 생산된 실제 코드를 평가해야 한다.

알고리즘 문제를 낸다

알고리즘 연습문제를 코딩 면접 과제로 선택하는 면접관들이 많다. 시스템 개발에 필요한 상당수의 업무들이 알고리즘에 대한 깊은 이해를 필요로 하지 않는다. 물론 틀린 이야기는 아니지만 알고리즘 문제 대신 회사의 실제 프로젝트와 가까운 다른 연습문제를 통해서도 ‘문제 해결 능력’을 평가할 수 있다.

여러 시스템들의 문제들 중 거의 대부분이 알고리즘이 어떻게 작성되었느냐와는 관계가 없었다. 테스트가 덜 되었거나 또는 좋은 테스트 방법이 준비되지 못했거나, 잘못된 설계, 떨어지는 응집성, 깊은 종속성, 새 기능 추가시 부족했던 리펙토링, 지속적인 요구사항 변경, 도메인 모델이 꼼꼼하지 못했거나 등이 가장 흔한 문제였다.

시스템의 주요 문제가 알고리즘이 아니라면 코딩 면접 때 알고리즘 문제 대신 실제 문제에 가까운 과제를 제시해야 한다.

요지는 코딩 면접에 알고리즘 문제를 내야 하느냐의 여부가 아니라 프로젝트를 위해 실제 필요한 역량이 무엇인지, 무엇이 가장 가치 있는지를 면접용 코딩 문제에 잘 반영하고 있어야 한다는 것이다.

전화 면접을 한다

전화 면접은 사전 선별 작업이 부족할 때만 필요하다. 많은 회사들이 오프라인 면접을 수행하기 전에 전화 면접을 하고 있는데 이는 지원자가 최소한의 채용 요건을 갖추고 있는지 확인하는 것이다. 불필요한 오프라인 면접 시간 낭비를 막는다는 나름의 목적이 있기는 하지만, 전화 면접을 진행할 때 인간미가 없고 상당히 기계적인 경우를 많이 봤다. 해외에 있는 지원자를 면접해야 할 경우와 같이 어쩔수 없을 때만 전화면접을 사용하자. 오프라인에서 직접 얼굴을 마주보는 면접이 가장 바람직하다.

요약

좋은 개발자에 대한 수요는 매우 높다. 뛰어난 개발자와 일하고 싶다면 그들과의 면접을 어떻게 수행해야 좋은지 알고 있어야 한다. 면접은 지원자의 입장에서 회사를 가늠하는 자리라는 것을 잊지 말아야 한다. 즉 좋은 개발자들은 거꾸로 회사를 면접하여 평가하고 나쁜 회사들을 걸러낸다.

참조

댓글남기기