ソフトウェア開発の才能、つまり真の才能を採用することは、ソーシャルネットワーキング、技術的洞察力、プロセス管理、および直感の岐路に立つ多面的なスキルです。採用責任を負ったことのある人なら誰でも、採用の課題の範囲と深さを十分に理解しています。
人材の採用は、ソーシャルネットワーキング、技術的洞察力、プロセス管理、直感の岐路に立つ多面的なスキルです。特に難しいのは、優れたソフトウェアエンジニアリング候補者の特徴的な品質を評価するのが非常に難しいという事実です。革新し、創造的に考える候補者の能力をどのように探求しますか?彼がチームプレーヤーであるかどうかをどのように判断しますか?建設的なフィードバックを受け取る彼女の能力をどのように診断しますか?誰かの道徳的繊維をどのように調査しますか?
これらの「ソフト」基準を評価することは簡単な作業ではありませんが、そうすることは簡単な作業です。 エッセンシャル 最高の人材を採用するために。しかし、多くの場合、これらの重要であるがとらえどころのない属性を評価する試みは、ほとんどの受験者が「正しい」答えを明らかにするのに十分な透明性のある質問または課題で構成されます。したがって、彼らに尋ねても実質的なことは何も達成されません。
結果として生じる一般的な落とし穴は、問題を解決し、創造的に考え、チームの他のメンバーと互換性を持って作業する候補者の能力を評価するのではなく、技術的な細部に重点を置きすぎることです。
よくある落とし穴は、技術的な細目に集中しすぎることです。確かに、効果的 高度なソフトウェア開発者の面接と採用 科学であると同時に芸術でもあります。それにもかかわらず、ソフトウェアエンジニアのスキルと能力のより微妙な側面を評価するためのアプローチと方法論は存在します。
これらの採用手法をまとめて使用すると、非常に効果的なスクリーニングプロセスが実現し、有給または採用の成功の確かな実績があります。 フリーランスのプログラミングの才能 。そのプロセスがこの投稿のすべてです。
少数のエリートを見つけて採用するプロセスは、面接自体のずっと前に始まります。実際、資格のある候補者を適切に特定するための体系的なアプローチにより、採用プロセス全体の効率を大幅に合理化および向上させることができます。
Webサイトの例のヒューリスティック評価
間違いなく、資格のある候補者の唯一の最良の情報源は、パーソナルネットワーキングです。 質の高い人々は質の高い人々と結びつく傾向があるからです。個人的な紹介は、成功した新入社員の最も生産的な情報源として支配的です( ソース )。
その他の貴重な 一流の技術的才能の源 含める:
これらのリソースの優れている点は、面接する前に、何らかの方法で精査した候補者を提供することです。これらのリソースの優れている点は、面接する前に、何らかの方法で精査したエンジニアリング候補者を提供することです。あなたの会社の誰か、またはあなたが知っている誰かがそれらを知っていて、それらを強く推薦します。または、あなたは彼らのオープンソースコードをレビューし、それに正当に感銘を受けました。または、彼らのブログ投稿は、成熟したレベルの技術的専門知識と理解(そして理想的にはユーモアのセンスさえも:-))を示唆しています。ここで重要なのは、あなたが連絡をとるまでに、候補者はすでに「単なる別の履歴書」以上のものであるということです。
さらに、職務記述書テンプレートの使用を検討してください( SEO 、 フロントエンドWeb開発 、および バックエンドWeb開発 )あなたが望む候補者のタイプに高い期待を設定します。
技術的な習熟度を効果的に判断することは、特定のプログラミング言語やテクノロジーのニュアンスをはるかに超えています。これらの技術的な詳細は確かに無視されるべきではありませんが、通常は無視されるべきです ない 評価プロセスの最も重要な要素。
技術的な習熟度の効果的な決定は、特定のプログラミング言語または技術のニュアンスをはるかに超えています...最高の開発者は、言語仕様やAPIドキュメントで簡単に見つけることができるメモリにコミットする時間を無駄にしません。さらに、新しい言語、テクノロジー、またはデザインパターンを学ぶことは、強力な開発者にとって比較的簡単な作業です(そして、新しいテクノロジーが導入されて市場シェアを獲得する速度が加速していることを考えると、実際には不可欠なスキルです)。したがって、評価することが重要なのは、候補者の基本的な技術力と理解、創造的思考、および問題解決です。
これを達成するための実証済みの方法は、 言語に制約されないプログラミングの課題を提起する 。候補者に問題を提示し、選択した言語で解決策をコーディングするように依頼します。唯一の要件は、エッジの状態や潜在的なエラーへの対処を含め、ソリューションが徹底的かつ正確であることです。ここでの目標は、候補者の(a)問題解決能力、(b)コンピュータサイエンスの知識、および(c)コーディングスタイルを評価することです。この時点では、特定のプログラミング言語で適性を評価していません。 (ちなみに、このアプローチの追加の利点は、面接官が候補者がコーディングしている言語の専門家である必要がないことです。)
面接プロセスに組み込むためにそのようなプログラミングの課題を選択できる多数のオンラインリソースが存在します。 (特定のプログラミング言語の知識ではなく)アルゴリズムに焦点を当てているものは、候補者のコンピュータサイエンスの基礎と問題解決能力の評価を容易にします。いくつかの注目すべき例が含まれます hackerrank.com 、 projecteuler.net 、および beatmycode.com 。ただし、これらのサイトを使用する必要はないことに注意してください。 管理する テスト;むしろ、それらをリソースとして使用することができます。 選択する チャレンジし、面接(ホワイトボードなど)中に候補者に解決策をコーディングしてもらいます。
そうは言っても、オンラインテスト できる 面接プロセスの貴重な追加コンポーネントになります。ただし、オンラインテストサービスを使用する場合は、ソリューションの詳細ではなく、候補者のサイトで生成されたスコアに過度に集中するリスクを回避することが重要です。一つには、テストサービスで採用されている評価指標に同意できない場合があります。さらに、自動評価プロセスが完全に気付かない可能性がある、特に賢いまたはエレガントであると考えるソリューションの側面があるかもしれません。
adobexdは何をしますかオンラインテストサービスを使用するときは、ソリューションの詳細ではなく、候補者のサイトで生成されたスコアに過度に集中するリスクを回避することが重要です。
オンラインテストサービスによって提供される評価では、「誤検知」または「誤検知」の可能性もあります。一方では、誤検知は資格のない候補者への面接に時間とリソースを浪費する可能性があり、誤検知は非常に検討に値する候補者を失格にする可能性があります。長期的には、後者はより深刻な影響を与えるため、注意深く監視する必要があります。
一般に、直接実施されるテストは、欺瞞の可能性を減らすため、オンラインで実施されるテストよりも本質的に信頼性が高くなります。さらに、対面テストは、ソフトウェアエンジニア候補がプレッシャーの下でどのように動作するかを観察する機会を提供します。それにもかかわらず、オンラインテストサービスの使用は、詐欺的または資格のない候補者を排除するのに役立つ他の技術を組み込んだ、ここで提唱されているより包括的なタイプのスクリーニングプロセスの効果的なコンポーネントになる可能性があります。
オンライン開発テストは、技術スキルが標準をはるかに下回っている候補者の驚くほど高い割合を排除するための貴重な予備フィルターとしても役立ちます。興味深いことに、そのような候補者の多くは、自信がないために、テストを受けようとせずにプロセスを放棄します。とは言うものの、自信は必ずしも態度の最良のバロメーターではありません。 ダニング・クルーガー 効果。
技術的洞察力を評価するためのもう1つの非常に価値のある手法は、 候補者に、自分が作成したオープンソースプロジェクトのリストを提供するように依頼します。 または、GitHubやSourceForgeなどのサイトで少なくとも貢献しました(貢献者のみの場合は、コードのどの部分を個人的に作成したかを示すように依頼してください)。次に、彼らのコードをレビューし、特定の設計上の決定、コーディングスタイル、採用されたパターンなどについて質問する準備をして、面接に来ることができます。そのような議論は、単に言語の技術的な細目について候補者に質問するよりも実質的に価値があります。
少数のエリートのメンバーは、技術に精通しているだけでなく、口頭と書面の両方で明確、効果的、簡潔にコミュニケーションをとる完璧なソフトウェア開発の専門家です。
口頭でのコミュニケーションスキルは、面接の過程で、対面でも電話でも簡単に評価できます。口頭でのスキルは、ユーザーとの接触を伴わない特定の「奥の部屋」の技術的役割では確かにそれほど重要ではありませんが、それでもなお重要です。 効果的なチームの相互作用を最大化する とアイデアの交換。
少数のエリートのメンバーは、口頭と書面の両方で、明確に、効果的に、そして簡潔にコミュニケーションをとる完璧な専門家です。筆記コミュニケーションスキルは、受験者に筆記サンプルの提供を依頼することで最もよく評価できます。テクニカルライティングのサンプルは、ライティングスキルだけでなく、技術的な明快さも示すため、強く推奨されます。面接の前にこれらのサンプルをリクエストすると、特に便利です。一つには、これは彼らの文章を事前にレビューして分析する機会を提供し、あなたが彼らと彼らの文章について話し合い、批評する準備ができているインタビューに来ることができるようにします。さらに、一部の技術候補者は、それ自体が貴重なフィルターとして機能する可能性のあるサンプルの作成要求によって「延期」されます。
息子に倫理について教えたいと思っている父親についての古いジョークがあります。父親は息子に、彼と彼のパートナーはドライクリーニング業を営んでいると言います。ある日、顧客がドライクリーニングを受け取るために私たちの店にやってくると父親は言います。顧客が立ち去ろうとすると、彼女は10ドル過払いになっていることに気付きます。さて、ここに倫理があります…私は私のパートナーに話しますか、それとも言いませんか?!
対照的に、 リアル 倫理的ジレンマ–道徳的ジレンマ–はしばしば曖昧で複雑になる可能性があります そして彼らは間違いなくビジネスに現れます。最強のソフトウェア開発者は、適切に調整された道徳的羅針盤がない場合、プロジェクトに計り知れない大混乱をもたらす可能性があります。したがって、候補者のこの次元を評価することが重要です。
メインファイルc ++最強のソフトウェア開発者は、適切に調整された道徳的羅針盤がない場合、プロジェクトに計り知れない大混乱をもたらす可能性があります。
これを達成するための非常に効果的な手法は、 候補者に架空の道徳的ジレンマを提示する その状況で彼らが何をするか尋ねます。これが効果的であるためには、ジレンマが不可欠です。 ない 明白な答えがあります。理想的には、考えられる答えは不完全で、やや問題があるはずです。候補者がそのような質問に提供する答えは、彼らがどのように考えるか、彼らの倫理基準、そして彼らの優先順位についての膨大な洞察を提供することができます。
次に例を示します。
あなたが働いている会社は、別の会社によってプロジェクトに取り組むために雇われました。プロジェクトでは、特定の下請け業者を使用する必要があります。あなたは以前その下請け業者で働いていたので、彼らがしばしば彼らの時間を埋めて、彼らの時間のために彼らの顧客に過大請求することを直接知っています。ただし、このプロジェクトでこれを行っても、これらのコストは会社の顧客に転嫁されるため、会社に損害を与えることはありません。あなたは上司にこれについて言及しましたが、特にプロジェクトの下請け業者の部分は全体の予算のごく一部にすぎないため、顧客には何も言わないようにアドバイスしました。しかし、あなたには顧客のために働く非常に親しい友人がいます。ある日昼食をとったとき、あなたがそこで働いていたことを知っているので、あなたの友人はあなたがこの下請け業者について知っていることをあなたに尋ねます。あなたはどのように反応し、彼に何を伝えますか?
ここでの美しさは、明確に「正しい」答えがなく、状況が現実の生活とビジネスの世界の道徳的な複雑さを反映していることです。適切に尋ねられれば、そのような「道徳的ジレンマ」の質問への答えは、ソフトウェア開発者を雇うための面接プロセスの最も説得力があり価値のある部分の1つになる可能性があります。
面接プロセスに内在する欠点の1つは、あなたがいるまで、人と一緒に仕事をすることがどのようなものになるかを知る方法が実際にはないということです。 実際に彼らと一緒に働く 。それでも、候補者の性格と気質を現実的に感じることは、採用を成功させるために不可欠です。
テクニカルエリートは、技術的に優れているだけでなく、非常に専門的です。したがって、それらの検索は厳密な技術的評価に限定されません。
テクニカルエリートは、技術的に優れているだけでなく、非常に専門的です。それを念頭に置いて、候補者の性格とプロ意識を評価するのに役立つ面接テクニックをいくつか紹介します…
最も大胆でリスクの高い実装戦略は、_______________アプローチです。
一つには、 技術者以外のスタッフによる事前審査から面接プロセスを意図的に開始することを検討してください (管理アシスタントなど)。次に、技術的ではないことに気付いた後、候補者がどのように彼らを扱ったかをこのスタッフに尋ねることができます。彼らは侮辱的で、せっかちで、見下していましたか、それとも彼らは心地よく、忍耐強く、そして敬意を表していたのでしょうか?スタッフがあなたに伝えていることは、実に非常にわかりやすいものです。あなたは、候補者が誰であるかに関係なく、他人を尊重して扱うかどうかを知りたいと思います。
面接を通じて、候補者に建設的なフィードバックを提供する機会を探します。 これが引き起こす反応を注意深く観察してください。フィードバックは高く評価されていますか、それとも候補者はまったく防御的になっているように見えますか?
非技術的な「チットチャット」に参加する 候補者の性格についての洞察を得るための手段として、面接の最初の5分または10分間。候補者は、これが実際の面接の単なる前置きであり、したがって「髪を下ろす」可能性が高いと考えるかもしれません。それにより、この時期に彼らの性格について驚くべき量を識別することができるかもしれません。そしてもちろん、彼らがユーモアのセンスを示しているのであれば、それは常に良い兆候です。 :-)
エンジニアを雇うためのこれらの一般的なテクニックに加えて、 候補者の性格、自信、誠実さ、プロ意識を評価するのに役立つ質問の例を次に示します。 :
まとめると、これらの質問とテクニックは、候補者が実際に誰であるかについてのはるかに強力で深い理解を促進することが証明されています。これは、採用決定を成功させるために不可欠です。
つまり、A +候補を見つけました。高度なスキル。ポジティブで明るい性格。優れた文化的適合。それは素晴らしいことです!だが…
ロボット工学に最適なコーディング言語
まだ答えられていない重要な質問が1つあります。 候補者は、あなたの募集職種とあなたの会社で働くことに特にどの程度関心がありますか? これに対する答えは、雇用を成功させる上で最も重要です。一方的な関係は、私たちの生活の他のどの側面よりもビジネスでうまく機能しません。
繰り返しになりますが、面接プロセスの文脈では、そのような質問に答える際の候補者の率直さを疑う必要があるため、単に直接質問することは最小限の価値しかありません。むしろ、これは、直接的ではない他の手段を通じて確認しようとしなければならないものです。
一方的な関係は、私たちの生活の他のどの側面よりもビジネスでうまく機能しません。手始めに、候補者が最初からあなたに近づく方法は、かなり信頼できる関心のゲージです。候補者は、なぜ彼または彼女があなたの会社に特に興味を持っているのか、そして利用可能な機会について、説得力のある説得力のある説明を提供していますか?もしそうなら、これは本当の興味を示すだけでなく、専門的な成熟度と洗練度のレベルも示します。そのような候補者は、あなたに連絡する前に、あなたの会社と機会について少なくともある程度の事前調査を行ったことは明らかです(単に「町の周りで履歴書を撃ち抜く」のではありません)。
会社とその製品またはサービスで宿題をした後、開発者の採用プロセスに入る候補者は、彼らの興味と知識の両方の有用な指標を提供します。面接官の事前調査(例:彼または彼女の経歴、LinkedInプロフィール、ブログ投稿などを読む)まで行った候補者は特に注目に値します。より洗練された候補者は、面接の過程でこの情報を明らかにすることを強調します。その他の場合、次のような単純な自由形式の質問 「私たちの会社について何を知っていますか?」 そして 「当社とこのポジションについて特に興味を持っていることは何ですか?」 確かに非常に説得力のある応答を引き出すことができます。
最後に、真に関心のある候補者は、面接プロセス全体を通じて質問をする可能性があります。それにもかかわらず、候補者に質問があるかどうかを尋ねて面接を終了することは常に良い考えです。質問がまったくないことは、そうでなければA +候補と見なされていたであろう誰かでさえも危険信号となる可能性があります。
ここで説明する手法は、業界で最高のソフトウェア開発者を見つけて採用するための貴重なコアプロセスとして役立ちます。しかし、効果的な採用は目的地ではなく、旅であることを覚えておくことが重要です。静的プロセスはデッドプロセスになる運命にあるため、プロセスを継続的に再評価して微調整する必要があります。
効果的な採用は目的地ではなく、旅です。企業の文化や優先順位に基づいて、企業の旅はそれぞれ異なります。組織に適したパスを見つけて実行します。あなたには成功があり、失敗するでしょうが、後者から学ぶ限り、あなたは正しい道を進んでいると確信することができます。