エンジニアの採用選考で、応募者の技術スキルを把握するために「技術面接」を設けている企業があります。技術面接では、一般的な面接と異なり、応募者のスキルや経験に焦点を当てた、技術的に踏み込んだ面接が行われます。履歴書を通した一般的な面接だけでは正確に測れないエンジニアとしてのスキルを把握したい企業にとって、技術面接は効果的な手法です。 技術面接には、ペーパーテストや、ホワイトボードにコードを書くなど、様々な形式が使われますが、今注目されているのが「ペアプログラミング」を通した技術面接です。ペアになってプログラミングを行うこの手法は、応募者のスキルや経験、問題解決能力、コミュニケーション能力、トラブルシューティングスキルなどを測るうえで大変効果的です。 本記事では、ペアプログラミングとは何か、技術面接にペアプログラミングを導入するメリット、そしてペアプログラミングを導入する際に事前に準備すべきものや心構えについて解説します。

ペアプログラミングとは?

ペアプログラミングとは、1台のPCを使って2人でプログラムを共同開発する手法のことです。2人で同時にプログラミングを行うのではなく、「ドライバー」と「ナビゲーター」の役割に分かれてペアで業務を行います。ドライバーがコーディングを担当して、ナビゲーターがコードを評価しながら問題解決をしたり提案をしたりしてドライバーのサポート業務を担います。プログラミング初心者がドライバーを、上級者がナビゲーターを務めることが一般的です。 一人のコードを書く時間が半分になるというデメリットはありますが、チーム内で業務内容を共有し合うことで作業効率化がアップし、チーム内のスキル全体的に向上するメリットがあることから注目されています。

ペアプログラミングのやり方とは?

ペアプログラミングを実施するには、1台のPCにマウスとキーボードを2台接続して、2人が同時に同じPCを操作できる状態が作業環境として理想的です。一人がプログラミングを行いながら、プログラミングでつまずいた際に、ペアの人にすぐ相談できることで、プログラミングの品質が向上します。またペアでコーディングを行うので作業ミスも軽減できます。 ペアプログラミングは、一般的に上級者が「ナビゲーター」を、初心者が「ドライバー」を担当します。一定時間や区切りのよいところで担当を交代するのが望ましいとされています。定期的にペアや役割を変えることで、業務内容の共有やチーム内のスキルの向上がより加速されます。 ペアプログラミングで開発をする場合は、テスト駆動開発(TDD:Test-Driven Development)の形式でお互いに大まかな動作を確認しながら進めるとよいでしょう。テスト駆動開発とは、テストコードを先に作ってから機能の実装を進めていくプログラミング方法です。最初から完成度の高いプログラムを目指すと、お互いの考えが相反する可能性が出てきます。そのためテストと実装、ブラッシュアップを繰り返せるテスト駆動開発が、ペアプログラミングに効果的だと言えます。

ペアプログラミングを技術面接に活用しよう!

技術面接とは、応募者の技術レベルを確認するための面接です。技術的な内容の質問をされり、プログラミングの課題を受けたりするなど、様々な方法で行われます。この技術面接にぴったりなのがペアプログラミングです。面接官と応募者が、コーディングプラットフォームを共有して、技術的な問題を一緒に解決するという方法でペアプログラミングテストが行えます。 ペアプログラミングのテストは、約45分程度の時間でできる課題が理想的です。テスト中は、面接官は応募者のサポート役に徹して、応募者がコードを書きます。コーディングをしながら互いにプロセスについて議論したり、意見を述べあったりできるのがペアプログラミングテストの特徴です。

ペアプログラミングを技術面接に導入するメリットとは?

エンジニア採用の技術面接に、ペアプログラミングを導入することには、いくつかのメリットがあります。

①応募者のスキル・経験を確認できる

エンジニアの採用では、即戦力となることを求めるため、応募者の経験やスキルが最も重視されます。ペアプログラミングテストであれば、応募者のスキルを実際に見て評価できるため、企業が求めるスキルを持っているかどうか確認できます。書類審査や一般的な面接だけでは正確に測りきれない応募者のスキルや経験を把握するためにも、ペアプログラミングは効果的です。

②論理的思考力やコミュニケーション能力を確認できる

技術面接では、相手がどのようなスキルを持っているのかを確認するだけでなく、未知のトラブルや分からないことが発生した際にどのように対応するかを見ることも重要です。応募者が課題に対して、物事を筋道立てて考える「論理的思考」的なアプローチをとっているかを企業は確認できます。この論理的思考力があれば、想定していないような壁にぶつかっても、柔軟に対応ができます。また、未知のトラブルに遭遇したときに、面接官の指示を待っているのではなく、自ら質問をして自分で問題解決をしようとするコミュニケーション能力も確認できます。エンジニアの業務では、トラブルシューティングスキルは欠かせません。どんなトラブルが起きたときにも、冷静かつ臨機応変に対応できるかどうかを、このペアプログラミングで判断することができます。

③客観的な面接が行える

面接には客観的な視点が不可欠です。客観的に応募者のスキルを評価するためには、ペアプログラミングのように、実際にコーディングをしている様子を確認できる手法は最適です。採用のミスマッチを未然に防ぐためにも、ペアプログラミングで客観的に面接が行えるのは重要です。

④採用プロセスの短縮化

ペアプログラミングを導入すると、実際のスキルを見て候補者を絞り込めるので、採用プロセスがよりスピードアップします。ペアプログラミングはその人のスキルを全体的に見ることができるため、何度もテストを行って確認する必要はありません。

⑤応募者へのフィードバック

ペアプログラミングは、面接官だけでなく、応募者にとっても実際に面接官とコーディングができるという貴重な体験です。チームがどのように業務を行っているかなどを、面接官からのフィードバックを通して応募者は把握することが可能です。互いに楽しみながらペアプログラミングができるなど、チームメンバーとして最適な人材かどうかを技術面接で見極めることができます。

⑥より高い投資対効果(ROI)が期待できる

技術面接やスキルアセスメントを導入している企業は、選考プロセスとして、人材のテクニカルスキルやソフトスキル、職務との適性を判断して、スキルベース採用を行っています。業界調査によると、スキルアセスメントを導入している企業は、業績目標を上回る採用を行う確率が24%高くなることがわかっています。

ペアプログラミングによる技術面接を行う際に必要な事前準備と心構えとは?

一般的な採用プロセスでは、書類選考だけでエンジニアのスキルを評価することが多いでしょう。ただ、応募者が多い時には、選考プロセスのはじめに応募者のスキルが、自分たちが求めているスキルとマッチしているかどうかを確認することは欠かせません。 ペアプログラミングは、まだまだエンジニア採用面接では珍しいプロセスなため、応募者が緊張することなく面接に臨めるようにサポートしましょう。以下は、ペアプログラミングを導入する上で必要な事前準備と心構えについて解説します。

ペアプログラミングのテストがどのようなものになるかを説明する

応募者には事前にペアプログラミングテストがあることを伝えましょう。一次面接時でも、対面で会う前にメールや電話でもいいので、事前に技術面接があることを説明します。ペアプログラミングテストと聞くと、応募者は少し緊張してしまうかもしれませんが、「リラックスして受けてください」などと緊張せず受けてもらえるような声かけを心がけましょう。

実際の業務で必要になるコーディングを使う

ペアプログラミングで使う課題は、できるだけ実際の業務に近いものを選ぶようにしましょう。これは、実際の業務で求められるスキルを持っているかどうかを確認することができるからです。応募者が苦戦したとしても、質問を通してどのように問題解決をするかといった問題解決能力も、このペアプログラミングを通して見ることができます。

プログラミング言語を選択する

ペアプログラミングテストの課題で使用する言語を決めましょう。これは事前に決めることもできますし、応募者に得意な言語を選んでもらうのもよいでしょう。

1時間以内に終わる課題を使う

ペアプログラミングで使う課題は、45分程度で完了するものを使いましょう。複雑で1時間以上かかるような課題では、応募者も疲れてしまい本領を発揮できなくなってしまいます。短めの時間でできる簡単な課題を用意するようにしましょう。

技術面接にチームメンバーに参加してもらう

ペアプログラミングのテストに、チームのメンバーに同席してもらうことも効果的です。実際にペアプログラミングの「ナビゲーター」役を担ってもらったり、近くで座って応募者のコーディングの様子を見るだけでもよいでしょう。他のチームメンバーにも参加してもらうことで、様々な視点からチームや自社とのマッチ度を評価できるようになります。

面接官の研修(トレーニング)

技術面接にペアプログラミングを導入する場合、面接官が面接の進め方や評価の仕方を知っておく必要があります。一般的な面接とは異なり、ペアプログラミングでは、面接官は応募者が普段の力を発揮できるような環境を整え、応募者のスキルを評価します。緊張している応募者を安心させながら、ペアプログラミングの流れを説明できるかどうか。課題に行き詰まった応募者にどのような声かけをすべきか。事前にペアプログラミングテストに備えて、面接官に研修を行う必要があります。

技術面接では、さまざまな解決策を受け入れる

コーディングでは、正しい答えは1つとは限りません。人によって同じ結果に行き着くまでに異なる道のりをたどることもあるでしょう。技術面接では、決まった回答例に固執せず、応募者の様々なアイデアに耳を傾けながら、その人のスキルを見ることが望ましいと言えます。

応募者と対話をしながらペアプログラミングテストを行う

面接官が質問をするだけの一般的な面接とは異なり、ペアプログラミングテストでは互いに対話をしながら課題を進めていくことが重要です。面接官は応募者がコードを書いているのを座って見ているのではなく、自ら質問をしたり、議論を展開したりして、相手と一緒にペアプログラミングをするように心がけます。常に話をする必要はありませんが、隣で監視するように応募者を見るのではなく、会話を促しながら課題に取り組んでもらいましょう。

ペアプログラミングを技術面接に活用しよう!採用面接から管理まですべてトータルサポート

Ichizokuでは、エンジニアチームを必要としている日本のIT企業に、グローバルエンジニア人材の採用からプロジェクト管理まで、トータルサポートいたします。イチゾクのグローバルタレントシステムを使うことで、英語を話せない日本人の採用担当者が、外国人エンジニアの採用から管理までを一括で行うことができます。イチゾクのシステムであれば、多言語環境での一般的な面接、そしてペアコーディングによる技術面接が行えます。海外の優秀なエンジニアを採用したい企業が、言語の壁を感じることなくスピーディーに採用が行えるよう、イチゾクが手厚くサポートいたします。グローバルエンジニアの採用・管理方法については、詳しくはこちらをご覧ください。

IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。