「心」「技」「体」で見る技術者面接の設計
最近、「◯◯さんは採用面接にも関わられているんですか〜」という事を聞かれることが何回かあり、あらためて自分の採用面接の取り組み方について整理するタイミングがありました。
この記事では、以前、だいたい2年前くらいに、技術者面接の面接官としての姿勢や、フォーマットについて整理するために作成した資料を元に記載します。今と多少価値観が異なる部分もありますが、自分はどのような形で採用面接に関わっているかを自分なりに振り返るために記録に残します。
採用プロセスは非常に長く複雑なプロセスになり全部を網羅するのは大変なので、この記事では主にIT技術者が関わることが多い「1次面接」あたりにフォーカスをおいています。
技術者面接(1次面接)の目的
専門職であるIT技術職について、技術者面接は 「心技体」 ともに職務を満たす水準にあるかを見極める場、と認識しています。
概ね、「技」 と 「体」 は連動している傾向があります。
「技」 は不足しているが 「体」 に見るべきところがある人は、経験を積むことで技術者として成長する傾向があります。
(よく「ポテンシャル採用」として採用される人は、この部分に見るべき点がある人のケースが多いです。そして育て方が上手くいけば伸びるケースも多い)
「技」 が優れているように見えるが 「体」 の部分が不足している人は、責任ある立場・結果を求められる場での経験が不足していたり、そういう場を避けてきた人というケースもあります。
(もちろん修羅場含めた経験を積むことで解消することも多い)
「技」「体」 が優れていても 「心」 に課題がありそうな人は、組織の中でよからぬ行動に出る可能性があります。
といっても 「心」 だけ誠実でモチベーションが高くても 「技」「体」 が不足していると現場ではついていけないこともあるかもしれません。
ということで、基本的には 「心」「技」「体」 のバランスが整っていることを見極めるのが面接では大事となります。
多くの会社における1次面接は、応募者に対する技術的な評価を行う場なので、主に 「技」「体」 について十分水準に足りているかを確認する場として考えるのが、全体の流れとしてはスムーズになると思われます。
そして「心」の部分、カルチャーマッチという言葉などに置き換えても良いですが、この点は1次面接以降、最終面接などで確認されるケースも多いと思います。
実際は会社ごとの採用プロセスの設計に多分に左右されると思います。
技術者評価の方法
スキル・経験と、エンジニアとしての基礎体力をバランスよく見るためには、面接において以下で述べるような流れで実施することをおすすめします。
重要さの順番で並べていますが、実際の面接での実施順は柔軟に変更するのが良いと思います。
1. Coding Test
多くの会社ではコーディングテストは一次面接前の「足切り」に用いていることが多い印象です。多くは、オンラインツールを用いて課題を提出し、テストケースが All Green にならないなど水準に満たない場合は落選、といった形。
基本的にコーディングテストでは、基礎的なアルゴリズム能力やプログラミング能力、そして課題の読解力などを評価します。
また短時間でどこまでつきつめて物事を考え、コードに表現をしているか、エンジニアとしての集中力や論理性についても評価します。
そして、一次面接時にもコーディングテストをテーマに時間を割くことで、応募者のスキルを把握することができます。以下では、コーディングテストが実施され、通過した応募者に対して、1次面接でどのように対応するかを例に記載しています。
0.コーディングテストの内容チェック(事前)
面接の前に、一応以下については確認しておきます
この辺で問題があったりズレがある場合は、即評価につなげるのではなく、以下の感想戦の質問の材料にします。
1.コーディングテストの感想戦
以下のようなことを質問します。ここでのやり取りで基礎的なアルゴリズム能力、プログラミング能力について判断します。
2.コーディングテストの拡張
コーディングテストで実装した内容を、より洗練させて、プロダクションレベルにするために何が必要かを質問します。より実戦経験に基づいた能力を判断します。
注意:コーディングテストで評価しない事
以下については、評価対象に加えないことを推奨します。
2. System Design Interview
いわゆる 「ホワイトボードディスカッション」
ホワイトボード上にシステムの概要図や要件など抽象的な条件を記載し提示した上で、その構築方法や改善案などを尋ねる方法を指します。
この方法を通して、技術を用いたシステム構築能力や課題解決能力、およびそれらの経験についてを評価します。
また、この課題はディスカッションをしながら進めていくので、課題解決の際の論理性やコミュニケーションスキルについても評価をします。
System Design Interview については以下の記事なども参考にしてくさい。
System Design Interview の進め方
まず、課題を提示した上で、応募者とディスカッションや質疑応答をしながら進めていきます。
ツールとしては、口頭でやり取り可能であれば口頭でも良いと思いますが、必要であれば Jamboard などの相互インタラックション可能なホワイトボードツールを使うことをおすすめします。
課題例
以下は適当に考えた例ですが、会社の中の実際のシステムでの課題に紐付いた内容を例示すると、課題を提出する側としても理解度も高く、実践的な話になると思います。
注意:見るべき点
もちろん誰が見ても理想的で完璧なシステム構成を提示できることが望ましいですが、短い時間でのやり取りなので誤解や勘違いなども生じることが多く、提示されたシステムの完成度や採用した技術スタックの妥当性についてはあまりあら捜しをしないほうが良いです。
どちらかというと 「システムを考える際のプロセス」 について注視して見るべきと思います。
また、やり方として、Coding Test のツールを使って System Design Interview に類する質問を課題として出し、面接の場ではその感想戦・ディスカッションを行う、という形も効率が良いかもしれません。
3. 過去の経歴についての質疑応答
過去の経歴についての質問はどこの現場でもよく行われていると思うので、ここではあまり記載しません。
「誠実さ」について
心技体の「心」の部分についてはあまり一次面接では深堀りしなくて良いと思いますが、以下の点については注意しつつ質疑応答をしたほうが良いと思います。
経歴を「盛る」ということについては、以前以下のような記事でも軽く振れていますので、興味がある方はご覧ください。
組み合わせ例
実施の面接の中で、上記の組み合わせは自由で良いと思いますが、ある程度網羅的に技術者を評価するためには3つの要素を組み合わせた面接にするのが望ましいとは思います。
一次面接はおおむね1時間の枠で実施しているので、組み合わせの例として、以下のような時間配分だと機能すると思います。
この記事が気に入ったらサポートをしてみませんか?