こんなシナリオをイメージしてほしい。憧れのゲーム会社を見つけ,あなたにぴったりの募集があり,仕事内容もあなたのスキルや経験に適合していて,プロジェクトもクールでエキサイティングだとしよう。あなたは応募書類を準備することを決意し,履歴書をブラッシュアップし,あなたがこの仕事に最適な候補者である理由を説明する特製のカバーレターを添えて,会社に送る。
数日後,あなたは自己紹介の電話を受け,自分のプロフィールを伝え,会社について詳しく学ぶ。すべてがうまくいっているように見える。最後に,採用担当者が採用プロセスについて説明し,次のステップはエンジニアリングチームと話す前に,時間制限のある技術テストを完了することだと知る。
想像するまでもなく,ゲーム業界で働くエンジニアは皆,キャリアのどこかで採用プロセスの一環として,長期間の技術テストに耐えなければならなかったはずだ。
テストは技術者の採用活動において非効率的な方法だと,私は考えている。この記事では,テストが不明瞭で偏った候補者のイメージを作る理由,応募者と採用チームの双方に与える負担,より公平で包括的な候補者の評価方法について説明したいと思う。
チャンスを逃す
技術テストにはさまざまなバリエーションがある。ある会社はあなたに課題を与え,彼らが好む言語とツールを使ってそれを解決するように言い,ソースファイルを返送する前に要件のリストに従うよう求める。また,提供されたデザイン仕様に基づいて,小さなゲームを最初から最後まで開発するよう依頼するところもある。スタジオによっては,いくつかのバグが含まれたスタートプロジェクトを提供し,それのさらなる開発とバグ修正を要求してくる。
いずれの場合も最終的な結果は,ほとんど脈絡のないコードの断片となり,候補者の思考プロセスを理解することはできない。これは誤解や混乱を招きやすく,技術力を評価するのに最適な方法とは言えないだろう。
コードを書くことは,エンジニアに期待される中心的な事柄ですらない。コードとは,一連の決定と考察の最終的な結果に過ぎず,あなたが本当に注目したいのはその領域なのだ。なぜ特定のパターンやパラダイムを選んだのか。代替案を検討したのか。検討したなら,それぞれの利点と欠点は何か。もし時間があれば,これをどのように発展させていくか。こうした疑問はすべて答えられないまま放置され,レビュアーは暗闇の中に取り残される。
候補者についてもっと知り,彼らがどのように問題を解決するのかを理解することが目的なら,なぜ直接会うか,電話をかけるかしないのだろうか。候補者とその働き方を知るチャンスを逃しているのは確かだ。
候補者の立場からすると,面接官が何を期待しているのか,何を希望しているのかを正確に見極めるのは難しいことが多い。もちろん明確な説明を求めることはできるが,メールでのやり取りは時間がかかり,締め切りが間近に迫っているため,それを控えるかもしれない。多くの場合,応募者は自分のコードにコメントを加えたり,テキストファイルを添付したりして,何らかのメモや参考情報を提供しようとする。
最も重要なのは,技術テストに頼っている企業は,間違ったことに集中しているということだ。最高のエンジニアとは,効果的なコミュニケーションを図り,適切な質問をしながら要件について議論し,最良のソリューションを実現するために対話相手に挑戦できる人たちである。彼らは常に新しい技術を学び,不慣れな環境に適応し,自分自身に挑戦する準備ができている。こうした特性は,いずれも技術試験からは見えてこない。
テストはチームの負担にもなる
技術テストは,適切な技術力を持たない候補者をフィルタリングする簡単で迅速な方法と見なされがちだ。企業は一人ひとりの面接に時間をかけるよりも,採用プロセスを進める前に自分自身の価値を証明するよう,候補者へと重荷を転嫁する。
私の経験では,これは真実とは程遠い。企業は,技術テストを適切に評価するために必要な時間と労力を,過小評価する傾向にある。これは通常,2つの想定結果のいずれかを招き,どちらも理想的ではない。
最良のケースでは,エンジニアチームは採用パイプラインをサポートするために仕事量を減らす必要があり,納期やプロジェクト全体が遅れることになる。これが計画に含まれることはほとんどなく,フラストレーションや納期の遅れにつながる。
2つ目の結果は,エンジニアが技術テストに適切な注意を払うことなく,すぐに読み飛ばしてしまうというものだ。これは最終的に,候補者が懸命に働き,時間を費やしたにも関わらず,不当に評価されることにつながり,会社は潜在的に優秀な人材を逃してしまう。
包括的ではなく,人々を不当に不利な立場にする
求職者は1度に複数の企業に応募する傾向があるが,それは求職の応募が実際の面接につながる保証がないからだ。その度にテストを受けなければならないとすれば,あっという間に数週間の無給労働になる。
多くの候補者は,仕事,家族,扶養する人,生活の約束があるだろう。そのような人たちに,夜や週末を何度も仕事に費やすよう求めるのは大きな負担になりかねないし,正直なところあまり包括的ではない。
(悲しいことに)一般的な意見のひとつは,受験者がテストを受けるために時間と労力を費やすことを望まないなら,そのポジションにはあまり興味がなかったというものだ。これは不公平であり,不正確である。
人によってテストに割ける時間は異なり,それは提出物の質に直接影響する。実質的に自由な時間が多く,義務の少ない人に不公平な優位性を与えることになる。
これは偏った結果を招き,最終的にはグループ全体がゲーム業界への参入を妨げられたり,年齢が上がるにつれてほかの技術分野への転身を余儀なくされたりする。
より良い候補者テストの方法
従来の技術テストが抱える問題点をいくつか取り上げたので,ここからは候補者の技術力を評価するためのより良い方法を提案したい。
候補者に宿題を与えるよりも効果的な方法は,候補者と共に(対面またはバーチャルで)座り,共有の開発環境をセットアップし,一緒に問題を探求することである。
最初のステップはシナリオを作成し,それを候補者に提示して現在のリソース,制約,望ましい結果の概要を説明することだ。この段階で,彼らが要件を分析し,質問をするための十分な時間を確保する。彼らはどのような質問をするのか? 過去の経験に基づいて,現在の制約に挑戦するのか? この目的のために理想的なシナリオは,彼らが興味深く独創的なアプローチを見つけるのに十分なほど,オープンでなければならない。
その後,候補者は自分の手を動かし,提案したソリューションを開発することになる。この段階は,実際の仕事内容によって異なる。候補者は,NPCのグループを制御するためにUnreal Engineで行動ツリーを開発し,AIの行動を書き,あなたが提供したプロジェクトでテストするかもしれない。AWSのダッシュボードを操作して(あるいはTerraformのテンプレートを用いて),提案したゲームのバックエンドのインフラを準備し,提案したサンドボックス環境で仮想マシンやデータベースを準備するかもしれない。あるいは,ゲームのプロファイリングに時間をかけ,ボトルネックを特定し,安定したフレームレートを達成するために必要なステップのレポートを作成するかもしれない。
いずれの場合も,リソースのインポートやアカウント作成,ソフトウェアのインストールに時間を費やすことなく,候補者がすぐに作業に取りかかれるよう,必要なものがすべて揃っているような十分な準備が不可欠だ。このため,すべてのセットアップが完了し,すぐに使える状態のコンピュータ(リモートなら仮想マシン)を提供するのが理想的である。さらに,この作業にどれくらいの時間が割り当てられるかを事前に明確にしておくと,候補者はそれに合わせて時間の計画を立てられる。
候補者は一人ひとり異なり,特に面接中は,ほかの人が画面を見つめている中での作業にストレスや不安を感じる人が多いことを心に留めてほしい。ソリューションを考えている間に,一人の時間があったほうがいいかどうかを尋ね,都度確認しよう。ほとんどの場合,オンラインでリソースを検索することは,すべてのソフトウェアエンジニアの仕事において不可欠なので,許可され,想定されるべきだ。
すでに同様の方法をとっているスタジオもあり,その結果に満足していると耳にした。私も個人的に候補者としてこのようなテストに参加したが,その経験は公平で魅力的なものだった。
新しい仕事探しは,最終的な不採用や,時間と労力の要求によって不安感が生まれ,非常にストレスがかかる。しばしば,候補者とその家族には多くの困難があるかもしれない。このため,プロセスをできるだけ公平で包括的なものにすることが,採用担当者としての私たちの責任だ。
業界が何度もレイオフの波にさらされるなか,関係者全員がより良い経験をできるよう,雇用慣行と採用プロセスを見直そう。
Attilio Carotenuto氏は,14年以上のリーダーシップと技術経験を持つゲーム開発のエキスパートだ。毎日数百万人にプレイされ,受賞歴のあるタイトルを生み出している。Unity,Yager,King,EA Playfishなどの大手企業に勤務していた。
からの記事と詳細 ( 【ACADEMY】技術テストについて話し合わなければならない(改善方法についても) - GamesIndustry.biz Japan Edition )
https://ift.tt/SQsLIHi
No comments:
Post a Comment