<-- mermaid -->

面接の感想はお互い「楽しかった!」に。モブプロ型のコーディング面接で「候補者体験」と「内定承諾率」を両方向上した話

はじめに

本記事は、 NewsPicks Advent Calendar 2022 の 12/23 公開分の記事になります。

qiita.com

AlphaDrive CTO/NewsPicks 技術フェローのアカザワです。

本記事ではAlphaDriveが2年前にエンジニア組織を立ち上げて以来継続しているモブプロ型のライブコーディング面接が、立ち上げから一貫して内定承諾率を85%以上の水準で継続できていることに大きく寄与している要因の1つだと、入社を決めてくれる仲間が増えるに連れて強く感じるようになったため、この方式の面接を導入した背景や効果について書きたいと思います。

ライブコーディング面接は、昨年度からはNewsPicksのエンジニアチームの採用プロセスにも取り入れられ、ワークショップ面接という呼称で社内で運用しております。そちらに関しては、4日目のNewsPicks CTO/CPOの文字がエンジニア採用の内定承諾率を大幅向上させた話でも触れておりますのでこちらもぜひご覧ください!(手前みそで恐縮ですが、記事を読んでいて「いいチームだなぁー!」と私も感じました...)

tech.uzabase.com


少し文章量が多いため、以下に目次も掲載いたします。

大前提となる「面接」の考え方

ライブコーディング面接について書く前段として、AlphaDrive / NewsPicksとして全ての面談及び面接の前提としている点があります。

それは、「プロセスの中の1ステップでなく単一の時間として候補者の方にとって有益であること」です。

30分から60分確保してくださり、場合によってはその事前の準備や確認があり、その上で実際の面談・面接につながります。 また就職活動・転職活動が本格化している方にとっては当然弊社以外もお会いされている企業やチームが複数あり、我々も候補者の方にとって(会ってみてもよいかな?レベルで)複数のうちの1社、one of themという状況です。

それらを踏まえて会う企業側の私たちが強く意識するべきは、単体の対話した時間として、「悪くなさそうなチームやプロダクトだったな」「ちょっと気軽にきたけど自分達の開発にも取り入れてみたい技術や要素があったな」と価値を感じてもらうことだとチームの採用ポリシーの1つとして強く掲げています。

なぜモププロ型ライブコーディング面接だったか?

AlphaDriveでは2020年の下期から本格的にエンジニア組織を立ち上げ、そのタイミングからライブコーディング面接を実施、これまで継続改善していますが最初の導入の動機は決してポジティブな理由だけではありませんでした。導入の具体的な理由は、

  • 重厚長大な技術課題ではその時点の認知度だと離脱してしまうリスクが大きいため候補者のコストを最小限にしたい
  • 候補者のコストは最小化しつつしっかりと両者の相性を見るために結果ではなく過程を重視したい
  • 立ち上げエンジニア2名(私ともう1名)が前職・前々職からライブコーディング面接を取り入れており、ノウハウもある&抵抗や懸念がなかった

この3点です。

最初はポジティブな理由だけではなかった ~候補者の負荷を軽減しなければ...~

グループ内や過去の企業でも事前の技術課題を実施いただき、提出いただく形式もありました。このタイプのコーディングテストや課題が悪いと全く考えていません。 むしろ適切に我々がこうあってほしい、という観点を盛り込んだ事前課題を全ての候補者が時間をかけて解いてくださる状況はとても望ましくそういった状況も作っていきたいと考えています。

しかし、AlphaDriveの開発組織立ち上げのタイミングではまだ単体企業や組織としては認知はなく、リファラル以外のケースでは技術課題だと離脱してしまうケースが想定され、実際に最初期では発生しました。(そこから比較的早急にライブコーディング面接に切り替え)

「技術課題のボリュームで離脱するぐらいならそもそも弊社とは合っていなかった」と割り切るという考えもあるかもしれませんが、やはり依然我々のチームは候補者の方にとってのone of themであり、現行の業務と並行しつつ複数社とお会いになる負荷を想定すると割り切るべきでなく、興味を持っていただくと同時に負荷を下げて間口を広くしたいという考えが我々にとっては重要でした。

UzabaseNewsPicksの認知やグループ資産を活用することは当初から重要でしたが、同時に認知する方向をUzabaseNewsPicks → AlphaDriveではなく、AlphaDrive → UzabaseNewsPicks の方向で興味をもっていただくために初期のアプローチではグループを全面に推さなかったことも一因でした。

つまり、AlphaDriveのチームと開発って面白そう! → NewsPicksのEnterprise版もやっているんだ!・Uzabaseグループなんだ!という順番の認知です。あくまでAlphaDriveの事業やポリシーに興味を持っていただいて、その上で加点的にグループ理解をしてもらうという構造を重要視しました。初期段階での認知や母数の拡大には苦労したのも事実なのですが、結果として最初の5名 → 10名にきてもらうフェーズでは大正解だったと現在の組織を振り返って強く感じています。

過程を見るためのモブプロ型

AlphaDriveのライブコーディング面接は、モブプロ型をとっています。これが社内呼称としてワークショップ面接と命名している理由です。具体的な要素としては以下のとおりです。

  • 候補者の方に対して平均2名の面接担当エンジニアの構成、候補者の方に画面共有いただいて実施
  • 候補者がドライバー、面接担当のエンジニア2名がミニマムのナビゲーター(後述)
  • コードを読み込む時間の後はワイワイ会話しながら改善と修正
  • 面接中、自由にGoogleなどで調べて言語やライブラリのリファレンスの確認などは自由

面接が想定するシチュエーション

面接は実施前に、

  • 言語の選択(AlphaDriveでは、JavaScript・TypeScript・Go言語から選択)
  • 言語に応じた環境やバージョンの指定(IDEは任意)
  • 上記モププロ型であること + 想定シチュエーションの説明

を伝えています。 想定シチュエーションってなに?という話なのですが、あくまでワイワイ話しながらやるよ!という点、そして何をすれば合格というものではないという点を複合して感じてもらうために状況想定を伝えています。

  • ゼロから書く(解く)のではなくベースコードをお渡しする
  • 基本はアルゴリズム問題だが、想定としては5名〜10名規模のチームで数年継続運用しているリリース済サービスのコードの一部である
  • 候補者の方に対して、「◯◯さんに後輩がいて、その後輩が『できましたー!』とかなり早い速度でDraftPRをあげていた、ちょっと不安に思いつつPRをみると多くの課題や改善点に気づいた」とイメージの補足をする
  • 上記の前提で、「今回はPRレビューやナビゲートでなく◯◯さん(候補者)がIDEを開いて見せながら修正する形式で、プロダクト・チームと後輩にとって必要だと思う修正や改善を自由に行なってください!」と伝える
  • 不明な点が発生した場合、自由に検索して調べて公式のライブラリのリファレンス等も自由に閲覧いただいて大丈夫という点も補足する

上記を伝えて状況を認識してもらった上でスタートしています。

テストとして記憶しているかどうかを重要視しているわけでなく、むしろ実務上不明な点に遭遇した場合に適切に調査し解決することを見るためにも、Googleなどで検索しライブラリのドキュメントなど自由に参照してくださいともお伝えしています。(もちろん何も検索や参照せずに適切な修正を完了できることは素晴らしいです!)

より詳細な面接の進め方や観点は、明日12/24のアドベントカレンダーでAlphaDrive フロントエンドリードエンジニアの芥川が熱く!詳しく!語ってくれていますのでそちらをお楽しみにください!

面接であってテストではない

具体的な観点は公開できる範囲で後半の芥川の記事が書いてくれる(はず!)ですが、前半ではテストでなく面接であるという点を強調したいと思います。 もちろん標準的な観点は判断が担当するエンジニアによって過度にぶれないように設けていますが、このポイントがクリアされていれば合格というような明確な基準は意図的に設けていません。

つまり最終的な判断の軸は、

コーディングというエンジニアにとって重要な業務を通じて、お互いが一緒に働きたいと感じるか

ただこの1点に集約されます。

また、テストでなく面接であることの実践としてもう1点あります。 詰まっている部分があったら適切な時間見守りつつ、適宜判断して検索しての調査を促したり、ヒントをサジェストして次のプロセスに強制的に進行するという点です。

これも、特定箇所で止まったらフォローなく不合格としたいのでは一切なく(テストでないから)、特定の箇所が適切に修正・改善されなくても他の箇所でその方の良さや特徴を適切に表出し見る、ということが面接として重要なためです。

全ての候補者の方に具体的かつ尊敬をもったフィードバックを

後続の採用プロセス(AlphaDriveの場合はCEO麻生との最終面接)に進んでいただくかどうかに限らず、ワークショップ面接後に面接を担当したエンジニア + 赤澤が内容をとりまとめ、必ず私から以下の2点をお伝えしています。

・とても良いなと感じた点 ・こうするともっと良くできる!と感じた点

これは社内での評価プロセスとフィードバックでも重要視している点をそのまま採用プロセスにも反映しています。 つまり、必ず前向きに、ポジティブな言葉で

すごいな!超良いな!と思った点は素直にこちらから伝え、加えてさらにこうするともっと良いかも!ここを改善にするとさらによくなって凄さが増すな!という点もあわせて伝える。 ダメ・よろしくない、ではなく、ここが良くなるとさらに素晴らしい!ステキ!というニュアンスです。

大前提として面接を実施する我々が技術的にも経験的にも常に優位的なんて驕りはまったくなく(もっては絶対にいけない)判断や観点に絶対的な正解はないため、我々のチームの観点だと、と添えて伝えております。

このフィードバックも冒頭に記載した、この1時間が候補者の方にとって「無駄な時間だった」「なんの役にも立たないし、気分悪かった...」ではなく「(ちょっと緊張したけど)楽しかった」「取り込めそうな改善ポイントを知れた」「自分が大事にしている観点や考え方が同じだった」と少しでも感じていただきたいと留意している点となっています。

ワークショップ面接がもたらした効果

最終的な採用の決定要因は当然、短期的な採用プロセスの候補者体験のみで決まるものでなく、中長期の面で事業・プロダクト・チームとカルチャー・評価や報酬体系・Tech Brandingや発信等が重要な判断要素です。

加えて、採用プロセスもこちらからの連絡やスカウト文面、カジュアル面談(ある意味、最重要な面談)等の複合であり、ワークショップ面接単体で全てが左右されるものではありません。

それらを踏まえても、このワークショップ面接が候補者体験の最大化に大きく寄与し、前述した候補者にとっての重要な判断軸の印象を採用体験が損なうことなく必ず+に働いたと感じています。結果の状況としては、

  • (定量):ワークショップ面接の実施してから、一貫して正社員メンバーの内定承諾率は85%以上を一貫して維持できている(繰り返しになるがあらゆる要素と判断軸の中の一要素として)
  • (定性):ワークショップ面接後、感想の傾向として「楽しかった!」が多く、この面接のステップ後に候補者の方の志望度合や興味が一段階増してもってくれたと感じる事が多い

短い時間でも一緒に働くイメージを ~GiveとTakeの両方感じてもらうために~

「楽しかった!」という感想をもっていただけることがとてもありがたいのですが、なぜ「楽しかった」のか、そしてなぜそれが志望度や興味が増し、内定承諾につながるのか、を入社を決めてくれたメンバーに随時ヒアリングしていて短時間かつ仮想的であるが、一緒に働く中でGiveとTakeの両方を得られそう、と感じてくれていた点がありました。

Give:自分自身の経験や能力がチームとプロダクトに即戦力的に活きる

Take:今は保持しないスキルと経験を新しく獲得できる

私自身、新しいチームやプロダクトでこの2点が候補者の方にとって感じられるか、実際にあるか、を確かに重要視して見ています。 Takeの割合はどんなに多くても、我々の組織としては全く問題にしていません。本人がやりたい!と思ってくれていて、我々がこの方ならどんどん一緒に挑戦していただける!と感じるならばウェルカム!です。ただ候補者本人にとって、完全に未経験領域で学ぶいっぽう、貢献できるイメージがない、だとチャレンジングすぎて物怖じしてしまう、入ることに躊躇してしまう、という感情も、特に他社から転職してくださる方にとっては自然だと思っています。

一方で、Give100%で弊社にきてください、というのは採用として不義理だと強く意識しています。 「あなたのこの能力が100%うちで活かせます!」「この経験のことをやってください!」というのは採用のお声がけとして自然ではあるのですが、それだけだとつまり、「今までやってきたことをそのまま新しい会社でやれってこと?」と私は感じてしまったりします。

自分の経験が確かにみんなの助けになるというGiveの自信と、新しいことを学べる環境や人がいるというTakeのワクワク、この両方があってこそ入社に繋がるというのが私の考えです。

エンジニアとして重要なコーディングというプロセスを通じて、一緒に働く(かもしれない)同僚エンジニアから「めっちゃいいですね!」と言葉とリアクションをフィードバックを受け、同時にもっていなかった観点や更によくできる点を知っていただく機会になる。短時間ながらもワークショップ面接とその後のフィードバックでGiveとTakeの両方を(それはとても小さな単位かもしれませんが)候補者の方に感じていただいている、そのことが候補者の体験の向上に繋がっているのかなと考えています。

負荷軽減による離脱防止効果も確かにあった

ワークショップ面接を始めた最初のきっかけが候補者の負荷軽減と書きましたが、今AlphaDriveで活躍してくれているリードエンジニアからも確かにその点が採用プロセスとして助かった、と話してくれました。

「採用プロセスが進むにつれてAlphaDrive含めて良いなと感じた企業が数社あったが、所属企業で通常通り仕事をしながら複数社の選考を並行する状況で、もし丸1日から2日以上かかるような事前課題が必須であれば離脱していたかも知れない。実際他社でその理由もあり選考を途中で終了した企業もあった、志望度だけの話でなく採用の体験と負荷は影響した。」

これも繰り返しになりますが、やはり我々の場合は、その離脱を「志望度が低いから仕方がない」とは全く思えず、現在活躍されている方は当然今の会社や開発でも忙しい、複数社からも声がかかっている状況が多いので、候補者の方の採用負荷を削減するためにもライブコーディグの形式を取るという自分たちの判断は適切だったと判断しています。

コードベースで話すことで候補者の良さを引き出し、同時に過度には引き出さないことを実践する

この点はコーディング面接開始時には強く意識しておらず、結果論として後から感じたメリットでした。まさに今回このアドベントカレンダーを書く際に、明日担当の芥川とこれまでのコーディング面接を振り返りながら話してたところ、ライブコーディング面接が適度な候補者の良さの引き出しにつながっているのではないか、という話で盛り上がりました。

適度に引き出す = 適切に引き出し、かつ過度に引き出さない

実は、対話のみの面接の場合、以下の真反対の相談を面接を担当したエンジニアから受ける事がありました。

  • 候補者の方の経験や良さを会話から適切に引き出せたか不安
  • 話せば話すほど、どの候補者の方も素晴らしいように見えてきて落とす判断と基準がぶれてくる

どちらの点、特に前半の点などは面接のフォーマットや観点、スクリプトをチームとして整備、体系化していく事で防止できると考えています。 同時に実はワークショップ面接=モブプロ型ライブコーディング面接がこの点を自然と解決するのに一役買っていると感じました。

その理由は、100%人同士が向き合う構造ではなく、両者でソースコードというモノを見ながら横に並ぶ構造という点にあると感じています。 感覚的にいうと、全員が相対するはソースコードで、体の向きが30°くらいを相手に向いているような状態でしょうか。(伝わってほしい笑)

このモノベースで会話し、事実としてのコーディングプロセスをみて話す事で、

  • 適切にコード上でその方の特性良さや改善点が把握でき、その点を踏まえて深掘るための会話を行う
  • コード上での会話なので過度に相手の言葉や体験を引き出したり惑わされたりすることなく事実に基づいて話す

ことが実践しやすくなるためだと感じています。 候補者、面接担当両者とも会話の巧みさに流される事なく事実を軸に会話できることが設計や実施時に強く意識していなかったメリットになりました。

余談ですが...

話せば話すほど、どの候補者の方も素晴らしいように見えてきて落とす判断と基準がぶれてくるというケースは実は優秀なリーダーだけどまだ経験としては長くない、というような方で発生するケースが一定あります。つまり、マインドがリーダーモードになってしまっていて採用担当モードじゃないという状況です。

リーダーモードという表現は、この候補者の方が入った前提で、どう活躍していただこう、どうチームとしてパフォーマンスを発揮するようにモチベーションをしつつ担当してもらう、という状態を指しています。つまり相手の良さに徹底的にフォーカスして引き出すモードです。 これはとてもリーダーとして素晴らしいマインドなのですが、採用という事実を両者で見極める状態では適切でなく、前述の通りライブコーディングだとその状態をプロセスとして自然に軽減できると書きましたが、加えて面接のケースでは以下のように自身に問いかけるようにアドバイスしています。

責任もって自分が採用するけれども自分のチームには所属しない、自分は育成やアレンジに一切関与できないけどそれでも「自分が採用の担当だった!あの方超いいでしょ!!?」と所属するチームのリーダーやメンバーに自信を持って言えるかどうか

この点を留意する事でリーダーモードから採用担当モードにマインドを切り替える一助になると考えています。

余談でした。

最後に

採用や内定承諾はあらゆる中長期の施策を複合した結果であり、短期的な採用体験だけで決まるものではありません。 今回AlphaDriveやNewsPicksで実践してよかったと書いているワークショップ面接=モブプロ型ライブコーディング面接も決して銀の弾丸ではありません。

しかしそれでも、確かに最終的な内定承諾と入社に寄与している重要な要素になっていると強く感じており、これからも継続的に改善し実施しこうと考えています。 あらゆる細やかな施策と体験の集積が採用でも重要なことは明らかであり、この事例や考え方の一部でも読んでいただいた方の参考になれば(読んだ時間が無駄ではなかったと感じていただければ)幸いでございます。

そしてそして!翌日24日の記事は課題作成とメインの進行を担うリードエンジニアの芥川がより具体的なライブコーディング面接の内容について記事を書いてくれています! こちらもぜひ読んでいただけますと嬉しいです!


AlphaDriveでは絶賛、絶賛、エンジニアチームを全方位超拡大中です!

Webアプリケーションエンジニア(FrontはNext.js、ServersideはGo + Ginがメインスタック)・SRE・QAエンジニア・プロダクトマネジャー全方位募集中です! TwitterのDM・Wantedly・HRMOSどのルートでも構いません!ちょっと雑談もウェルカム、大歓迎です!!

募集ポジションが適切かわからない!見つからない!といった場合は気にせずどの職種の募集でもポチッと押してください!適切なルートに責任もって繋げます! 新SaaSも開発しているのでぜひ応募くださいませー!!

https://hrmos.co/pages/uzabase/jobs/AD_Eng001hrmos.co

www.wantedly.com

www.wantedly.com

また、事業やプロダクトをもう少し知りたい!と思っていただけましたらこちらのYoutubeの動画をご覧ください!新卒採用向けイベントの動画となりますが、どなたでも事業やプロダクト、チームの雰囲気を感じていただける内容となっております!

youtu.be 長文にお付き合いいただきありがとうございました!みなさま、良いお年を!!


後編の記事はこちら tech.uzabase.com

Page top