ホワイトボードプログラミング
(筆者の知る限り)採用面接で行われることが少なくなっている課題に「ホワイトボードプログラミング」というものがある。このテストでは、ある問題を応募者に与え、それを解決するアプリケーションを記述してもらうのだが、その際にはロジックの内容とその理由を説明しながらホワイトボードに擬似コードを記述してもらうようにするのである。ある観点から見た場合、このテストは上述の「鶏の問題」の実践版と言うこともでき、これによってその人物の開発者としての力量をうかがい知ることができる。このテストにはさまざまなシナリオを用いることができるため、あなたの会社の環境に合わせてもよいし、より一般的なものにしてもよい。このテストを成功させる鍵は、ホワイトボード上で表現しきれる量の擬似コードで解決でき、ライブラリ知識をあまり必要としない問題を作り出すことにある。詰まるところ、このテストの目的はプログラミングにおける自らの思考過程を説明できる人材を探し出すことであり、応募者がツールの使えない状況にどう対処するのかということを知るためではない。以下は、ホワイトボードプログラミングに適した問題の例である。
確かに、上記の問題は極めて基本的なものであるが、それらを解決するための短く正しい擬似コードを記述できる開発者の少なさにはあなたも驚くことだろう!もちろんのことながら、募集している職種に特化した質問を行っても構わない。
筆者はある採用面接において、ホワイトボードプログラミングの変形版とでも言うべきものにお目にかかったことがある。問題を与え、擬似コードを記述させるのではなく、面接者が擬似コードを提示し、その動作を説明するよう求めるのだ。これは採用面接における優れた課題であり、コードを解析したうえでトラブルシューティングや修正を行う能力を判定するための優れたテストだと言える。