エンジニアのスキルチェックは重要だと実感した話
もし、あなたがC#の教材を作成するエンジニアを採用する立場として、どちらを採用しますか?という話です。
こんにちは新田です。 約1年ぶりの投稿になってしまいました。。。
最近おかげさまで色々な出来事があったので、少しでも多くの情報をブログでも発信していければと、再起にむけて頑張ります。
trackの現在の展開
スキルチェック→学習・試験プラットフォーム
「プログラミングスキルチェックツール」として、展開してきたtrackですが、おかげさまで多くの企業様に導入していただくことができています。年間で30万件近くのスキルデータが蓄積されるプラットフォームになりつつあります。
これからはスキルデータをベースとした「エンジニアの成長」をさらに支援していきたいと思い、プロダクトを単発のスキルチェックから 「プログラミング学習・試験プラットフォーム」 という形でプロダクトを進化させているところです。
オンラインプログラミング教材作成の強化が必要に
そこで重要になってくるのがtrackのプラットフォーム上での「教材」の開発です。
教材の内容はCODEPREPをご覧いただければ概ねわかると思うのですが、一般の技術書籍のようなものに、プログラムの実行環境をつけてあげることで 「プログラムを書きながらページをめくる技術書籍」 というようなものをイメージしていただければと思っています。
お客様の多くが、2020年新人研修でtrackを活用するための準備を進めています。これまではサーバサイドはJava/Pythonを中心とした教材を展開してまいりましたが、半数ぐらいのお客様が「.NET環境をベースにした研修を実施したい」という要望があったため、現在C#の教材を次年度の研修に向けて強化しています。
実際に、Microsoft MVPの出井様にご快諾いただき、監修していただきながら開発を進めることになりました。
しかしながら、教材開発を実施するメンバーが手薄だったため、追加で採用をすることにし、SNSで発信いたしました。
【ゆるぼ】C#書ける人。
— まっくすさん 新田章太 (track) (@maximum_80) 2019年10月30日
・お仕事内容:C#の教材のライティング
・時給:3,000円〜
・稼働:30H〜
・雇用形態:フリーランス、業務委託
監修をしていただく人はこのMS MVPの方です。https://t.co/1FGLLDM1XE
2人の候補者
反応はとてもよく、想定よりもすぐに、沢山の候補者からご連絡をいただくことができました。 そして、例として、候補者の中には以下のような属性の方がいらっしゃいました。
現役大学生・就業経験なし
現役フリーランス・C#講師経験あり
スキルチェックの実施
C#の研修教材を作成するのであれば、誰もがおそらく即決で後者の方を採用の方向で進めるのではないかと思います。
しかしながら、今回開発する教材に必要な知識、スキルを持っているか、という観点と、想定以上に候補者が集まったこともあり、自社のプロダクトを使わない手はない!とスキルチェックを実施することに致しました。
実際に出題した問題
実際に出題した内容はざっくりと以下のような内容です。 新人研修で取り扱う上で必要なスキルレベルでの問題構成として、以下の3問を出題しました。
1. C#の基本操作を扱う問題: O(1)
標準入出力を用いてデータの入出力を行うことができ、簡単な条件分岐、文字列操作と四則演算を用いた実装ができれば解ける超初級問題。
2. C#のデータ構造を利用する問題:O(n) or O(NlogN)
標準入出力を用いてデータの入出力を行うことができ、ハッシュマップなどの簡単なデータ構造を利用すると正答することができる問題。
3. xUnitを使ったテストコード記述問題
C# のユニットテスト(xUnit)を書く問題で、テストコードの書き方、Moq によるテスト・ダブルの作成などを理解しているか。網羅率や、バグのあるプログラムに対するテスト結果などの評価を通じ、意味のあるテストコードの作成技術があるかを問う問題。
スキルチェック結果
- 現役大学生:94点/100点
- 社会人フリーランス:21点/100点
中身のソースコードも確認すると、おそらく講師をやられていた方は、.NET Framework/ASP.netのような環境には慣れ親しんでいるのかもしれませんが、コーディングはあまりご経験のない、あるいはかなりブランクがあるのではないかと感じ、今回はお見送りさせていただき、学生ですがコーディング経験が豊富な方を採用することに至りました。
まとめ
職務経歴のみの採用がミスマッチを生んで生産性を下げる危険がある
業界的に、人事や派遣、フリーランス斡旋業者は、どうしても職務経験やポートフォリオに記載されている内容が大きな判断要素になっていると思います。
一方で、職務経歴では「その方個人がどのような貢献をしたのか」あるいは「スキルを持っているのか」の判断をすることは難しいです。
実は採用してみたら稼動できなかった、現場のエンジニアからしたら「おい、派遣でできない人採用してるけど、どうしろっていうの!?育成コストかけるなら生産性下がるけど?」といったような声があったりして本末転倒になってしまう、なんてこともあると聞いています。
スキルチェックで双方にとってWin-Winの関係を
今回、とても心苦しい判断となりましたが、お見送りさせていただいた方にも、「実際に現場に入ったら、こういったスキルが求められます」という観点で、関わっていただく案件そのものの必要スキルをきちんと双方ですり合わせできたことは結果としてよかったとおもっています。
弊社のメンバーにも迷惑をかけずにすみましたし、候補者の方にとっても「実際に自分が稼動できるかどうか」を判断できる一つの材料にもなったためです。(その方は実際に活躍できるか不安、とおっしゃられていました)
お互いに仕事の契約をする前に、スキルで正しくチームに必要な人材配置を実現することで、少しでも業界的に生産性が上がったらいいな、と思い、一つの事例としてご紹介させていただきました。