Pocket

今日はわりとエンジニアorエンジニア採用担当寄りな内容になりますが、海外でのエンジニアの人材採用関連で面白いものを発見したのでそれについての記事です。

(もちろん技術周りに長けてない人事の方でも最後まで読み進められるようになっていますので、最後までお付き合いいただければと思います。)

先程、Github 内のトレンドを見ていたら面白いファイル(リポジトリ)を発見しました。

このページは何?

これは、「ホワイトボードを使った技術テストをしない企業」の一覧を作成したものです。

「え?どういうこと?」と、一見意味がわからない話に聞こえるのですが、簡単に言えば人前でホワイトボードにコードを書いてもらって優秀かどうかを判別するのは意味がない、だからそういう事をしない優良企業を集めたファイルだというお話です。

英語の概要を補足的に意訳すると、

これは、ホワイトボードを使った典型的な情報科学的な質問を面接中に”行わない”企業のリストです。 HackerRank のようなオンラインプログラミング試験サイトを使用しているサイトはリスト内に含みません。

その代わりここに記載されている企業やチームは、
・現実世界で起こる問題を組み合わせたもの
・自宅での宿題(有償無償問わず)
など、日々の仕事で扱うような内容を出題したり、そういった面接手法を用いている会社です。

つまり、
・実世界の問題について議論することは GOOD
・基本的な情報科学の問題、技術的なパズル、謎掛け、脳トレのようなものを解かせるのは BAD

といった内容のようですね。(意訳がミスってたらすみません)

何故それらの指標を使って求職者のスキルに対し良い悪いと判断しているのかについて後ほど記載していきます。

昨今の技術的な面接

今、皆さんの所属する企業では、あるエンジニアを採用する時にどういったフローで採用を進めていってるでしょうか?エンジニアは採用に関わっているでしょうか?技術的な質問はどんな内容をしているでしょうか?コードは書いてもらったり提出してもらったりしているでしょうか?

もちろん企業によって様々かと思いますが、今までの技術的な面接を振り返ってみると、アカデミックな内容を出題し、その問題が解けるかどうかで次のステップに進めるかどうかが決定されてきているケースが多かったのではないでしょうか。例えば、「100000番目の素数を求めてください」だとか、「クイックソートアルゴリズムを書いてください」だとかいった内容ですね。


HackerNews のこちらのスレッドでもここ数日議論されているように、日本でも海外でもそういったアカデミックな問題を出していた企業は今でも無きにしも非ずなのではないかと思います。

※めちゃめちゃ面白いんですが、超長い議論&&英語になってるので流し読みをオススメします
※ちなみに今閲覧されているこの記事は HackerNews の議論を翻訳した記事ではなく、それに対する考えをまとめた記事ですので、議論されている内容からズレていたらご容赦ください
※この議論を経て、リポジトリが作成されてきたみたいですね

なぜホワイトボードを使った技術面接は良くないのか

スレッド内にありますが、「ホワイトボードを使って人前でコーディングすると緊張して実力が出せない」ということが挙げられるようです。10年、20年もエンジニアをやっていても慣れていない作業なので訓練が必要だと主張している方もいらっしゃいます。

エンジニアの僕自身、作業をしている時はわりとリラックスし話しかけられにくい状態で集中している環境の上でコーディングしている事が多いです。以前、面接でホワイトボードにコーディングさせられた時に頭が真っ白になってまともともなコミュニケーションすら出来なかった事を思い出しました。わりとエンジニアの方だとご経験があるのではないでしょうか。

ホワイトボードが緊張せずうまく使えることは、実際に現場で活躍できるかという話ではなく、面接テクニックの一種に近いように思えます。必ずホワイトボード上で何か作業をしてもらうのではなく、補助的に求職者の必要に応じてホワイトボードを使える選択肢を残しておくべきってところですね。ホワイトボードを絶対に使わないってわけでもないニュアンスのよう。

ビジネスを進めるためには、ビジネス上の問題を解決することが本質

議論の中に出てくるのですが、
「会社(ビジネス)はビジネス上の問題を解決するためにあなたを採用したい」(意訳)
という部分があります。

原文: “A business wants to hire you to solve business problems.”
引用元: HackerNews スレッド

つまりは、アカデミックな問題や脳トレのような問題を出したところでそれはビジネス上の問題を解決するのとはまた別な可能性が高いですよね。

素晴らしいアルゴリズムがわかるからといってすさまじくいい成果を出すかはまた別かもしれませんし、チームとして機能するコードが書けるかどうかも測定できるものではないでしょう。もちろんそれができることがチームとして戦力になる可能性もあるので会社の状況に合わせて次の採用フローに進めるようにするかの判断は会社次第かなと思います。

ビジネスで成果を出したいのであれば、ビジネス上の課題を解決できる人を採用するのが正しい、ということですね。

採用ために世界の企業が行っていること

先程のスレッドを見ていくと世界各国各企業での試行錯誤が書かれていたりしますが、要約すると 2つくらいかなと思います。

  • 求職者の体験談の議論
  • 現場を想定したプログラミング試験

求職者にしかわからない体験談を語ってもらい、議論する

これはわりと低コストですぐにでもできそうな内容です。

具体的に、

  • 「あなたが[一番面白かった|苦労した|挫折した|今取り組んでいる]プロジェクトの概要と成果などその体験談について教えてください。」
  • 「その時にどういった技術を使って実装しましたか?何が難しかったですか?」
  • 「今だったらどうすればより良くなると思いますか?」

といった質問に対してのやりとりをするとその人の考え方が見えてきたり、実際に使った技術についての質問が可能になります。(上記は引用ではなく自分が作成した一例です)

途中で疑問に思ったことがあれば、「○○という選択肢もあると思いますが、何故××を選択したのですか?」とも質問したりできそうですね。

実際の現場で起こった/起こりそうな問題を解決してもらう

現場で開発をしていると、教科書通りにいかないような内容がいくつか出てきます。

例えば、

  • 今後すぐにボトルネックになりそうなこの DB をどう処理するか
  • Rails で ○○の処理をする際に計算量が多くなってしまうがどう工夫するか
  • React-Redux で特定の UI を一部実装してもらう

など、企業が扱ってる技術や内容を使って問題になった部分を一般化し出題するなどができそうです。(こちらの例は自分が作成した一例です)

とある海外の企業では HR コンサルタントとこういった出題すべき問題を検討しながら採用を進めているようです。

改めて「ホワイトボードなしで採用を行う企業」について

海外ではわりと実務寄りの質問や技術的な宿題を課される事で求職者のスキルを見極めてきている事が理解できたかと思います。

そこで、このリポジトリです。

ホワイトボードなしで採用を行う企業、つまりアカデミックな問題をホワイトボードで解かせない企業を集めたリポジトリです。どういった内容の問題が出題されるのかがリスティングされていると共に、リモートで面接が受けられるかなどが一覧で記載されています。

US や UK を中心に 300 以上の企業が記載されています。海外転職の際にも参考になると思いますし、スレッドの議論と合わせてリストを見たりすることで自社のエンジニア採用フローも検討し直せそうだなと思いました。

日本の企業はまだ全然載ってないみたいなのでご興味あればプルリクエストを送ってみてはいかがでしょうか。

また、Findyのエンジニア採用支援にご興味のある方はこちら

採用マーケティング研究所の更新を購読する