1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コーディングテストでチームにぴったりなエンジニアを仲間にしよう

Posted at

こんにちは!
ポーラ・オルビスホールディングスのITプロダクト開発チームでスクラムマスターをしている川田です。

私たちITプロダクト開発チームでは、エンジニア採用にコーディングテストを取り入れています。今回は、私たちの採用プロセスにおいてコーディングテストをどのように活用しているか共有したいと思います:grinning:

なぜコーディングテストを導入したのか

私たちが採用プロセスにコーディングテストを導入した理由はシンプルで、面接だけで候補者の方の技術的なスキルを判断するのが難しいと感じたからです。
私たちが本格的に内製開発を始めてから2年が経過し、担当するプロダクトも徐々に増えてきました。チームをさらに拡大して内製開発の範囲を広げていきたいと考えていますが、エンジニアをゼロから育てる余力を生み出すのは難しい状況です。そのため、言語や環境は問わず多少なりとも何らかの開発経験があり、チームの利用技術をキャッチアップしながら組織と共にご自身も成長していける方が私たちのチームにマッチすると考えています。技術のキャッチアップや自己成長の面は職務経歴書や面接を通じて判断できますが、スキル面の判断に課題を感じ、コーディングテストの導入に至りました。

どのようにテストを行っているか

テストの実施は、コーディングテストを行うためのWebサービスを利用しています。外部サービスを利用する分のコストは必要になりますが、テストという側面で考えたとき同一の環境および同一の条件でテストを実施できるため、候補者の方にとって公平性が担保できるという大きなメリットがあります。また、数多くのテスト問題の提供、各企業にフィットしたテスト問題のカスタマイズや作成代行、テストの採点やスコアリングの自動化、過去の受験データや他社の受験データを元にした分析といった、企業側の採用を手助けする機能が提供されていることも非常に助かっています:thumbsup:
コーディングテストのサービスは数多くあり、1つのサービスの中でも複数のプランが提供されています。最低限の機能が揃っているエントリープランや、短期の契約(6か月~)もあるため、それらを利用してスモールスタートしてみるのもよいと思います:ok_hand:

どのようなテストを行っているか(テスト設計)

テストの内容については以下に示したジャンルの問題をいくつか選定し、それらを採用ポジションや経験年数に応じて組み合わせたものを数パターンほど準備しています。

  1. 簡易なweb画面を作る問題
  2. アルゴリズムを考えて実装する問題
  3. 様々な知識を問う選択式の問題

テスト設計にあたっては同程度の経験年数をお持ちの候補者の中でどのくらいに位置するのかを見るのはもちろんですが、経験年数を問わず共通の問題を出題することで年次によって回答がどのように変化するかといった観点も考慮しています。現状ではまだデータを集めている段階ですが、将来的にはこの結果を元にテスト内容の見直しを行っていきたいと考えています。
また、テストのレベルとして極端に難しいものは取り入れていません。私たちが利用しているサービスでは、競技プログラミングで使われるようなレベルの問題や数学的な考え方を知らないと解けないような問題も提供されています。そのような難しい問題に解答できる高いレベルがあることは非常にすばらしいですが、チームで業務を進めるうえではまず基本となるプログラミング的な思考ができるかどうかが重要と考えているためです。そもそも、あまり難しい問題や長時間にわたる問題を選定すると候補者の方にとって負担になるため、バランスを考えたテスト設計が重要です。

テスト結果をどうやって判断しているか

テストの結果の判断についてはあらかじめ以下のような評価基準を定めておき、その内容に基づいて採点結果や実際のソースコードを元に判断しています。

観点 内容
解答の正確性 採点結果を元に、正しく解答できているか
アルゴリズム・データ構造 使用しているアルゴリズムやデータ構造が適切か
エラーハンドリング 要件に応じた正しいエラーハンドリングができているか
保守性 適度な関数化を行っているかなどから判断
可読性 命名規則、コメントの内容などから判断

あらかじめ評価基準を決めておくことで、何となくよさそうといったあいまいな判断や判断軸のブレを防ぐことができ、公平性の担保に繋がります。
また、確認すべきポイントが明確になるため判断の効率アップも見込めますが、私たちのチームではコーディングテストを単なるスクリーニングとは考えていないため、効率のみを追求していません。採点された点数だけで判断せず、ソースコードの内容やコードの説明(解答の提出後に時間無制限で説明を記載できる機能、ですが書いていただく方は少ない・・・:sweat_smile:)に至るまでしっかりと確認し、チームでご活躍いただけるかどうかを判断していきたいと考えています。

まとめ

組織風土やスキルレベルがミスマッチしてしまうと、企業と候補者の方それぞれにとってデメリットになります。そのため、面接によって組織の風土や雰囲気とマッチするか確認するのと同じようにコーディングテストが利用できればと考えています。
採用を担当されている方に対して私たちの取り組みが参考になれば嬉しいと共に、候補者の方に対しても私たちがコーディングテストを実施する背景を理解いただき、ぜひ前向きにチャレンジするきっかけとなれば嬉しいです:relaxed:

:two_men_holding_hands:一緒に働く仲間を募集しています:two_women_holding_hands:

私たちITプロダクト開発チームに興味を持っていただき、いっちょテストを受けてみるか:muscle:と思っていただいた方は、ご応募お待ちしております!:bow:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?