履歴書ではわからないプログラマ能力を評価するHackermeter。採用現場での普及を目指す

次の記事

ゼロデイ攻撃: やられてから対策するよりも事前の障害物配備を, と訴えるCyvera

hackermeter

有能なプログラマを雇おうと考えたとき、応募された履歴書を見ていくという行為はたいてい無駄なものとなる。募集要項なども見ずに応募してくる人をはじくこと程度にしか役に立たないのだ。優秀な技術者を募集したとしよう。するとプログラマを自認する人のすべてが「Cに堪能である」として応募してくることもあり得る。だまそうとするのではなく、各自の基準にて自分で信じ込んでいる場合もあるのだ。

そうした事実に対処するため、コーディング能力を数値化しようとするのがHackermeterだ。Y Combinatorに参加していたスタートアップのひとつだ。

Hakcermeterは、基本的にコーディング課題に対応する能力によってスコア付けを行う。より良いプログラミングを行えばスコアは高くなる。スコアが高ければ、それだけ有能な人材であると認知されるようになるわけだ。

Hackermeterに登録する際、まずはプログラマであるのか採用側であるのかを選択する。

プログラマであるとして登録すると、選択すべき課題範囲が表示される。もちろん基本的なものから応用レベルのものまでがある。基本的なものの方では、たとえばフィボナッチ数列ジェネレーターを作るとか、回文であるかどうかを判定するプログラムを作るといったようなものだ。難しい方ではJSONを使って特定のデータ構造をパースするツールを作るだとか、あるいは簡易暗号化モデルの限界をテストするといったようなものもある。

editor

課題はいずれもRuby、Python、Java、C++ないしCという5つの言語に対応している。コーディングおよびテストはブラウザ内で行うようになっている(大事なところなのだが、後に改めて説明する)。納得がいくものに仕上がったら、書いたプログラムを登録する。登録したプログラムが課題に適合するものであれば、ポートフォリオに登録され、スコアにも反映するようになる。

採用側であるならば、Hakcermeterのデータベースを使って検索をかけることで、自動的にふさわしいプログラマを見つけることができるようになっている。たとえばPythonのエキスパートを探しているとする。難しい課題をPythonを使って回答した人という条件を指定すれば、該当するプログラマが簡単に見つかる。レベルの高さはさほど必要ないが、ともかくRubyを使える人を探したいときはどうするか。課題レベルを検索条件から外して、Rubyで回答した人という条件のみで検索をすれば良い。こうして条件を満たすプログラマに対して、メッセージを送るなりの対応をすれば良いわけだ。あるいはこの段階でも条件があうかどうか不安であるならば、さらに「スクリーニング」を行うこともできる。

filter 2

「スクリーニング」というのは、採用者側で用意する連続(rapid-fire)課題のことだ。Hackermeterにも予めいくつか用意されているので、それを使っても良いし、作成から採用者側で行っても良い。制限時間を設定し、スキップ可能な課題数(スキップ不可でも良い)を定め、そして採用候補者に提示する。

こうしたサービスで最も問題になるのは、「Google」だ。課題内容を入手して、その課題についての回答をどこかにアップロードするという人はいるだろう。すると自分で解かなければならないはずの人も、Googleで検索をして、コピーペーストでエキスパートに成りすますことができてしまう。

ここで関係してくるのが、先に「改めて説明する」と書いていた部分だ。Hakcermeterは、システム側で用意しているエディタ内でコードの作成を行うように指示している。実は、採用者側は後に回答者のキーストロークをひとつひとつ再現できるようになっているのだ。ペースト動作一発で回答を作成しているとしたならば、それはおそらくカンニングの事実を示すものといえるだろう(あるいは使い慣れた自分のエディタで作業をしたということを示すのかもしれないが、それはしてはならないことになっている)。キーストロークひとつひとつを再現されるのは気持ちが悪いという意見もあるだろう。しかし対面式のコーディングテストなどを行う企業も増えつつあり、結局のところそれと変わらないと考えることもできる。

もちろん不満の声もあり、現在のところは次の2つが主なものだろう。

  • サイトで扱う情報が、コーディングスコアのみしかない。名前とスコアしか表示されていないのは、確かにある意味では「効率的」だろう。しかしもう少しパーソナルな情報も欲しいという考えもあろう。コーディングを行っているのがどのような人物で、どういう嗜好ないし志向をもっているのかという情報があっても良いかもしれない。あるいは2分間の自己紹介ビデオを掲載した方が良いなどという考えもあるかもしれない。「スコアも興味深いものでしょうが、こちらに私の作った素晴らしいプロダクトもありますよ」などという紹介文は双方にとって役立つ情報となり得る。おそらくこうした機能は何らかの形で組み込まれることになるはずだ。取りあえず、今のところは存在していない。
  • 透明性の問題。課題に回答すると得点が付けられる。しかし、どのような部分で減点されているのかということがよくわからない仕組みになっているのだ。Hackermeterの共同ファウンダーであるLucas Bakerによれば、得点は消費時間、コードの効率性、そして課題の難易度などを考慮してつけられているのだと言う。しかし得点についての疑問の声もある中、評価基準の客観化も進めようとしているのだそうだ。現在のところはブラックボックスとなっている。

Hackermeterは、プログラマの採用手続きから履歴書というものを排除してしまうものとなるだろうか。おそらくそうはなるまい。効率性はともかく、組織は履歴書のようなものの存在を必要としており、またHR部門も履歴書なしでは動きえない面がある(そもそも優秀なプログラマというのは一般公募の形ではなく、高額な報酬で動くヘッドハンターを経由して採用されることも多い)。しかしそうであってもHackermeterのようなサービスは面白い。優秀なプログラマを見つけ出すことはますます難しくなっているようで、さらに給与も高額化しつつあるようだ。こうした中、Hakcermeterのようなサービスを使ってみようと思う企業もあるだろう。また、職探し中のプログラマにとっても、自らのスキルを多くの採用担当者に見てもらうのは、決して悪いことではないはずだ。

Hackermeterはプログラマとしての利用は無料で、採用側は採用者数に応じたコミッションを支払うことになっている。

原文へ

(翻訳:Maeda, H)