Member preview

エンジニア採用面接の難しさ

エンジニアを採用していく中で「採用面接」は非常に難しい問題と言える。
経験上、今までかなり多くの面接をこなしてきたが、未だに「完璧な面接」というものにはほど遠い。
60分といった短い時間でお互いを知るには時間が足りない。
また面接は「お見合い」であり、極々短い時間の間にお互いに「相手と結婚するか」を決めなければならない。
失敗するとお互い不幸なことになることが解っているのにもかかわらず。
……とはいえ、数百回と繰り返してきた面接の中で見えたこともあり、それを書いていくようにする。
主にゲーム関連のエンジニアを対象にしてきたケースが多いが、領域としては、クライアント、サーバ、インフラと一通りの人を見ている。

担当したプロダクトに使われている技術をどれくらい理解しているかを尋ねる

面接の質問において「職務経歴書」に記載されている技術の周辺をどれくらい理解しているかを問う。

例えばJavaプログラマ。
もちろんJavaプログラマの職務経歴書には様々なプロダクトの名前、StrutsやSpring、S2、Swing、Servlet、MyBatisなどなどが様々なワード並んでいるのだが、思った以上に自分が使っていた技術に精通していない人が多い。
また、DojaのようなクライアントJavaをやっていてもGCの挙動についてもあやふやなままJavaを使っているケースがよく見られる。

一例としてJVMに関する仕事をしている相手などには「ガベージコレクションに回収されるオブジェクトはどんなオブジェクトか?」と問うようにしている。
すると多くの場合は「使われていないオブジェクト」となるが、では「使われていないの定義は何か?」と訊くことにしている。

オブジェクトの状態が頭の中に入っていない人は、オブジェクトが解放されて良い状態なのか、そうではないのか理解できていない事が多い。
使ったオブジェクトはJVMが良い感じで何とかしてくれているのだと考えているとすると厳しい。
相手によってはヒープとスタックすら理解していないこともある。

経験で重要視するべきなのは「知っていること」「使ったことがある」ではなく「理解しているか」である。
「Javaを使ったことがある」は誰にでも主張できる。
しかし、「JVMを理解している」はなかなか言えないことだ。
自分の使ってきた技術をきちんと理解してきたエンジニアは、新しい技術に対しても同様の姿勢で挑むだろうと考えられる。
職務経歴上では経験が2年、3年、時には5年となっている技術でさえ、本質的に理解できていないことはよくあるのだから。

曖昧な要件の案件をどう処理するかを尋ねる

曖昧な要件の案件をどう処理するかを尋ねることもよくする。
例えば、
「社長が会社のWebサイトを構築したい、と言ってる。
指定は『こんなの』といって表示されたWebサイトのみ、そんな案件が降ってきたらどうする?」
という質問。
これには明確な答えはない。
なぜなら会社の背景によって求められるWebサイトは変わるからだ。

そもそも「会社のWebサイト」というものは要件として曖昧すぎるわけで成立していない。
しかしながら、相手がそんな曖昧な状況にどう対応しようとするかは解る。
「ブログを契約する」
「VPSを使ってWordPressをセットアップする」
「Webの開発会社に依頼する」
「そもそも要件を詰めて予算を確認する」
いろんな答えがある。どれも正解ではなく、間違いではない。

見たいのは相手がどの領域に気をかけており、答えのない問題をどう解決するかだ。
はっきり言って、どんな答えでも良い。
ただ、曖昧な案件を目の前にしたとき、どの領域をどのように気にかけて処理しようとするかを確かめる必要があると考えているだけで。

ゲーム開発では特に「要件として成立していない要求」を受けることがままあることも大きい。

強みは何かと尋ね、それについて深く尋ねる

「強み」は即ちその人の武器である。
「ネットワーク」
「アルゴリズム」
「データベース」
「アニメーション」
「マネジメント」
「リファクタリング」
「全体の設計」
様々な単語が飛び出てくる。
続いて、その単語についてさらに尋ねるようにしている。
アルゴリズムであれば二分探索木やハッシュテーブル、乱数のこと、ネットワークであればTCP/IPやHTTPサーバ、セキュリティのこと。
「マネジメント」であればエンジニアの評価軸を尋ねたりする。

「強み」に関する質問は非常に良いと感じている。
ただし、問題は相手が答えた「強み」に関してこちらもそれなりの知見を持っていなければ会話が成立しないことだ。

なお、業界年数にもよるが5年、10年やっていて「強み」がない人は採用しない方が良い。

絶対に解らない質問を尋ねる

これもあえてそうしている。
ある程度話をしていればだいたいどれくらいのスキルレベルかはわかるので、その人では答えられない関連技術の質問をするようにしている。
答えを知らない質問に関して答えることは通常不可能だ。
だから、反応は様々だが
「知っているかのように答える」
「わからない、と答える」
「考えさせてほしいといって考えてから、合っているかは解らないけれどと前置きをして答える」
のようなことが多い。

これで解るのは「解けない問題に面したときどう振る舞うか」だ。

スキルレベルだけではわからないこと

実は高いスキルレベルを持っているかどうかは簡単に解る。
慣れてくればこれは絶対である。
問題は、
「採用したとき、自分がこの高いスキルを生かせるか」
「この人を会社が生かせる状況にあるか」
「会社のステージに共感してもらえるか」
などスキルレベルの外が大きな課題になる。
これらはまた別の機会にまとめる。

面接官に必要なこと

面接は相手を試す場でもあり、自分も試される場でもある。
要するに相手と対等な立場で向かい合い、技術に関しても真摯に向き合うべきである。
生半可や曖昧な知識で相手に向かい合うべきではない。
人間は経歴をどれだけでも盛ることができる。
嘘や嘘ではないとしても本質的に嘘の返答をすることもある。
「〜できますか?」という問いをして「はい」という答えが返ってきても何の意味もない。
「できるかできないか」を見抜く質問をすべきなのは面接官なのである。

最後に「面接はお見合いである」

面接は面接官が選んでいるのではない。
むしろ会社は選ばれなくてはならない。
内定を出す側が強いのではなく、内定を出しても受けてもらわなければ、選ばれなくては意味が無いのだ。
最後に決断をするのは「応募者」なのである。

だから、面接を受ける側の人に大切にしてほしいのは「この会社が本当に自分が働くに足る会社なのか、成長できる場所なのか」を見極めることである。
そして、入りたかった会社に落とされたとしてもそれはタイミングの問題もあるのでクヨクヨせずに次に挑むことが必要となる。
(会社には入りやすい/入りにくいタイミングというものが明確にある)

要するにお互い妥協してはいけないのである。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.

Responses
Only members of Medium may see responses to this story.