シニアソフトウェア開発者を採用する方法。DevSkiller CTOからのアドバイス

公開されました。 最終更新日
技術士

ソフトウェア開発における採用は困難であり、努力することで シニア開発者の採用 はさらに難しい。人材不足のため、シニアエンジニアはほとんどいない。また、高価なため、新しい仕事の機会を求めることはほとんどありません。

また、彼らは自分の時間を大切にする方法を学んでいます。例えば、ジュニアのウェブ開発者を募集する場合、何百通もの応募があるかもしれません。しかし、シニアエンジニアの場合は、応募がゼロに近くても不思議ではありません。

なぜわかるのか?私自身がシニアデベロッパーだからです。そして、15年間のソフトウェア開発の中で、多くの採用プロセスを経験してきました。候補者として、そして技術系リクルーターとして。

あなたが幸運だったと仮定してください。求人広告は完璧で、時給も魅力的で、あなたの会社は面白いことをやっている。しかし、ひとたびプロセスを開始すると、候補者はあなたをゴースト化させてしまうのです。それは、真のロックスターや技術系ニンジャが巨大なエゴを持っているからではありません。もちろん、そういう人もいます。しかし、他の採用プロセスの方が優れていて、あなたを見限った可能性が高いのです。

では、最も優秀な候補者を採用するために、経験豊富な開発者に採用プロセスへの参加を促すにはどうしたらよいのでしょうか。技術系企業のCTOの立場から、アドバイスをさせてください。

シニア開発者の採用活動への参加を促すには?

シニアソフトウェアエンジニアに採用活動、特にコーディングの課題に参加してもらうことは...難しいことです。しかし、さまざまな企業 年功序列の定義が異なる.また、採用活動に対する姿勢も、候補者自身のことをよく表しています。

シニア開発者は、技術的なスキルよりも、より広い技術的な概念に焦点を当てる傾向があります。使用する技術だけでなく、技術的な解決策についても。もしあなたが、彼らの幅広い技術的知識をアピールし、問題解決を中心にプロセスを設計すれば、より多くのシニアエンジニアを惹きつけることができるはずです。

例えば、使っているReactやPythonのバージョンをぐるぐる回らないことです。そうではなく、自社がReactやPythonを使ってどのように問題解決をしているのかを説明するのです。全体像を強調しながら採用活動を行うことで、若手ではなくシニアプログラマーにアピールできる可能性が高くなります。逆に、使う技術ばかりに目を向けていると、経験の浅い技術志向の人にしかアピールできない可能性が高いです。

最近のシニア開発者というのは、どういう存在なのでしょうか。

あなたの先輩の求人広告に、たくさんの人が応募してくれたんですね。おめでとうございます。悲しいかな、そのうちの半分はあなたの時間を割く価値がありません。多くは、資格不足であり プログラミングに不自由-が、とにかくチャンスをものにすることにした。この数字は、あなたのブランドが非常に強力であったり、優れた給与や福利厚生を提供している場合、50%よりも多くなることがあります。求人広告が非常に具体的であれば、これより少なくなることもあります。しかし、採用プロセスにおいて、何人かの応募者を即座に不採用にすることは予想されます。

一方、少なくとも数人の有能な応募者がいるはずです。問題は、優秀なソフトウェア開発者となり損ないをどう見分けるかです。この点については、本当に注意しなければなりません。好むと好まざるとにかかわらず、一歩間違えれば、最も粘り強い候補者しか残らないでしょう。そして私を信じてください、このような人が必ずしも優秀とは限りません。

つまり、とても貴重な財産を手にしているわけです。経験の浅い応募者の中に、極めて知識の豊富な応募者がいるのです。私のアドバイスに注意深く従うことで、最高の開発者を迅速かつ容易に発見することができます。ここでは、採用プロセスを楽しく、かつ決定的なものにするためのヒントをいくつか紹介しましょう。

透明であること

IT業界の開発者、特に上級開発者は、BSを嫌います。嘘をつかない。過剰な約束はしない。後でもっといい候補者が見つかるかもしれないと、プロセスを延長してはいけません。誠実なコミュニケーションスキルは不可欠です。全員が同じ考えを持っていることが重要です。

プロセスがどのようなものかを明確に説明すること。特に、何月何日までにフィードバックを得られるか、何段階目の採用なのか、誰がスキルセットを評価するのか、などを説明する。

仕事の種類、給料、在宅勤務の方針などをオープンにすることは、言うまでもありません。ピカピカの新しい技術で開発者を誘い出そうとしないこと。実際、シニアと若手の開発者の違いは、前者が解決できるビジネス上の問題に関心が高いという点で見分けがつきます。彼らは、あなたの会社の最近のプロジェクトにより興味を示し、あなたが使っているツールにはあまり興味を示さないでしょう。ツールといえば、求人広告には何を書けばいいのでしょうか?

求人広告を明確に定義する

画像はイメージです。 モハメド・ハッサン から ピクサバイ

求人広告がこのように呼ばれるのには理由があります。あなたの会社を宣伝するのです。しかし、シニア・ソフトウェア・エンジニアが虚偽の宣伝にアレルギーがあると予想されます。彼らは引き込まれることはないでしょう。しかし、シニア・ソフトウェア・エンジニアがあなたの採用プロセスに参加するために、職務記述書に求めているいくつかの重要な情報があります。ここでは、その内容を紹介します。

給与・福利厚生

画像はイメージです。 モハメド・ハッサン から ピクサバイ

そう、私たちはお金のために働いているのです。いつ シニア・ソフトウェア・エンジニアの採用そのため、予算は正直に話したほうが、期待はずれにならずに済みます。一方、相場を大幅に上回る給与や特典は、投資家の資金を大量に消費しているか、その職種に何か不審な点があることを示唆する場合があります。そのような話題について質問に答えられるよう準備しておきましょう。

労働条件

労働時間、リモートワークの方針、出張、ハードウェア、オフィスのセットアップ。9時から5時まで座っていなければならない騒がしいオープンスペースは、ほとんど評価されません。どの程度の官僚主義を期待するか?初日からコードを書いてくれるのか?

メリット

株、医療、教育・会議費。これらは最も説得力がある。

企業文化・価値観

あなたはアジャイルですか?頻繁にデプロイしていますか?顧客と連絡が取れますか?プロジェクトをドッグフーディングしていますか(該当する場合)?出勤初日に正直に説明することは

仕事の種類とプロジェクト全体の概要

あなたはソフトハウスですか?製品を作っているのですか?業界は何ですか?トレーニングは行っていますか?あなたの会社は世の中に良い影響を与えていますか、それともかろうじて合法的なビジネスとして運営されていますか?

テクノロジースタックとは何ですか?

これは重要なことです。開発チームがこれまでに挙げた技術をすべて列挙して、「次のような必須スキルを持っていることが必要です」と言うのはやめましょう。たとえ現在の開発チームであっても、すべての要件を自分のスキルセットで持っている開発者はいないでしょう。それよりも、「次のようなものを使っています」と言えば、優秀な開発者なら自分がどれだけマッチしているか分かるはずです。その人が持っている関連するハードスキルや、これから身につけたいことも含めて。

そのうえで、簡潔な表現を心がけましょう。私たちはTwitterやTikTokの時代に生きています。テキストの壁は魅力的ではなく、スキップされる可能性が高いです。職務経歴書は、Word文書ではなく、洗練されたプレゼンテーションのように見えるはずです。インフォグラフィックや短い動画を思いついたら、それは間違いなく注意を引くものです。

最後に、求人広告では、採用プロセスがどのようなものかを説明する必要があります。

採用プロセスが迅速であること

では、シニア・ソフトウェア・エンジニアを採用するための理想的な採用プロセスとは、どのようなものでしょうか。それは、透明で迅速であることです。このジョークをご存知でしょうか?

あるシニア開発者が職を失い、失業した。それは彼らの人生で最悪の15分でした。

Of course, this is exaggerated. Some senior software engineers may wait even a few weeks for your final decision. However, this may come down to simple communication skills and needs to be made clear upfront.

Turning a job offer into a successful hire is about more than just listing the hard and soft skills mentioned by your development team. The best job descriptions will explain what the candidate can expect from the process clearly—from the beginning to signing the contract. It should at least contain the following information:

  • What are the steps – will there be phone screening and homework? Will there be one interview with HR about soft skills and another with IT about technical skills? How long will the recruitment process take?
  • What is the time frame for feedback after each step?
    If you need 2 weeks to review homework assignments, that’s bad. But if that is the case, then it’s better to say that upfront. In IT it’s called SLA – Service Level Agreement. You agree to give feedback and proceed in a certain time frame.

  • Think about how much time there will be between your senior engineer signing the contract and them actually starting the work. For example, will they need to start at the beginning of the calendar month?

One way to ensure a speedy recruitment process is to automate parts of your screening stage. Freeing up the time of hiring managers to be able to carry out interviews and do the things that actually make your company money.

読む How to implement automation to hire the best software developers faster

Offer constructive feedback

画像はイメージです。 Gerd Altmann から ピクサバイ

Feedback is part of the process. If you simply forget about rejected candidates, they will have very bad memories of your company and they could spread this to colleagues who see your job advertisement. A simple, templated feedback is not much better.

Take your time and prepare constructive feedback when rejecting a candidate. Especially explain why they got rejected and what are the possible next steps.

I’d be fairly happy to hear that If I’m not experienced enough in a certain technology or practice, I can study it and come back in a year. After all, no one can be expected to know everything about the development process.

Moreover, if the engineers can point to the books or materials they found useful, the recruitment process can actually be a fantastic learning experience for them.

Focus your employer branding

雇用者のブランディング is a big topic, so I’ll just scratch the surface. Every piece of information that reaches potential candidates apart from the job ad is a bonus.

Conference talks by your developers. Encourage your team to give talks at local user groups or conferences. Give them time to prepare, maybe even invest in training. It’s a long-term investment that pays of later.

Have a tech blog explaining your architecture, and design decisions, but also mistakes. So many companies, particularly major companies, are honest about publishing post mortems. If your developers can publicly admit they made a mistake, how they mitigated the problem and what they learned – it tells a lot about the culture.

Sponsoring events and displaying your logo is slightly less effective, but it’s also the cheapest and easiest way to gain recognition.

シニア開発者にコーディングテストを受けさせるには?

I believe homework is a better predictor of future success than whiteboard coding sessions or other types of tests. Candidates can take the project and complete it in the comfort of their own homes. They use their hardware, whenever they want, and can search for solutions to common problems over the internet (this is fine!) That’s right, even seniors look up stuff on Stack Overflow all the time, don’t blame them.

However, poorly designed homework assignments are doomed to fail. At this stage of life, developers may have families and dozens of other job opportunities. Seeing yet another coding project to complete in their spare time, maybe either an exciting challenge or a boring necessity. There is a thin line between continuing the process straight away and forgetting about it forever. So, how do you design the perfect homework assignment?

Of course, all these tips work if you let your candidates know in advance what the homework looks like. And that its purpose is also to save time during the interview process.

Keep it relevant

If your primary business is renting cars and your main technical challenge is the recommendation engine, keep your homework close to that. Don’t come up with abstract algorithmic questions. Of course, you don’t expect candidates to solve your real problems. But make a suggestion it’s the type of challenge they will encounter on a daily basis. Obviously, you must be honest about it.

The candidate may attempt a coding challenge simply to get a taste of what you do at work. You can even build a story around it. Like: “try to beat our engineers”, or “can you think of a better solution than ours?” Creating a task with a backstory sparks interest.

Don’t start from scratch

So-called greenfield projects are sometimes considered an advantage when applying for a job. Although building an application from scratch is fun, it’s problematic for many reasons:

  • The initial setup of a new application is a non-trivial task

  • Developers rarely start new projects, much more frequently they improve or maintain existing ones

  • Reviewing and testing applications created from scratch is harder for your engineers.

For these reasons, it’s much better to provide an existing codebase and require candidates to make some changes to it. If significant maintenance is part of the job, consider troubleshooting or bug fixing an existing application.

Another great type of assignment is code review. Something that senior developers do a lot. You may even consider showcasing your own codebase, of course hiding the important intellectual property. This has yet another benefit – candidates see your coding style.

Make sure it is easy to prepare

If your homework assignment requires a certain version of Python or Node.js, make it clear. Being unable to build and run the assignment is a major stress and frustration point. Also clearly state what type of assignment to expect: algorithmic? Performance or clean-code oriented? Heavily tested or documented? The quality of your homework tells a lot about your own proprietary codebase. If you are preparing candidates for a homework assignment in a long-gone AngularJS framework, don’t expect many applicants.

On the other hand, if you provide candidates with ready-to-use environments like virtual machines or pre-configured IDE, they are much more likely to attempt the challenge.

A sample, non-graded test is great as well. Show your candidates what the assignment looks like more or less. Once they take the sample exam, they might be tempted to approach the real one.

Finally, explain that looking up help on the internet is fine.

Gamify

If you can apply some gamification techniques, many candidates will find that appealing. For example, create an anonymous leaderboard between candidates or grade homework based on benchmarked performance. Hackathons and coding challenges prove that may developers are willing to spend a significant amount of their spare time coding.

However, gamification is tricky. It’s easy to discourage people. You may even get accused of building a rat race type of environment if you aren’t careful. So this technique works best if your brand is very well established.

Pay attention to feedback you receive

画像はイメージです。 mcmurryjulie から ピクサバイ

Let candidates know in advance that every part of the homework is subject to detailed, technical feedback from your engineers. If your company has a strong brand in the developers’ community, it’s a fantastic opportunity for candidates. Note that the feedback will be constructive and guaranteed, no matter what the outcome of the process is.

If part of the grading is instantaneous, the feedback is even faster and more agile. For example, you can use automated unit tests.

Also note that the feedback or code review will contain links to further reading and materials, suggestions, etc. Don’t focus on a single aspect like code coverage or performance. You may reject candidates who misunderstood the requirements or don’t focus on the same values as you do.

技術者採用でやってはいけないこと

To sum up, here’s a list of actions during the hiring process that will almost certainly discourage the best-fit candidates from applying and decrease the completion rate of coding tests:

  • Don’t write a long job description that’s actually missing valuable information. Or even blatantly lying

  • Don’t have a very long hiring process

  • Don’t implement assignments that take too long to complete (1-2 hours is a reasonable limit)

  • Don’t use technical assessments that have nothing to do with your company’s daily work, routine, and business

  • Don’t send out assignments that are too long, boring, or too theoretical

  • Don’t forget to offer feedback

概要

As we’ve seen, when it comes to trying to hire senior software developers it’s important to treat them differently to other developers in your approach. Understand that they won’t suffer fools. Make sure to write a succinct and clear job advertisement if you want senior engineers to apply. Also be sure to describe the project and the company, not only the technologies. Be specific about salary, and realistic about your expectations. You also need to communicate how your recruitment process will run, and how long it will take.

Finally, keep coding tests realistic, competitive and fun enough that senior engineers will want to undertake them. They need to be short—a few hours maximum if you want senior developers to complete them. Time is important. Follow these steps for success and you should give yourself at least some chance of success.

For more detailed technical hiring advice, download our complimentary Ebook –
技術系採用を成功させるための必須ガイド

シェアポスト

トマシュ・ヌルキェヴィッチ より多くの記事をチェックする トマシュ

技術者の採用についてはこちら

ラーニングハブに登録すると、有益な情報をメールで受け取ることができます。

シームレスにコーディングスキルを検証&開発

DevSkillerの製品をご覧ください。

セキュリティ認証とコンプライアンス。お客様のデータの安全性を確認します。

DevSkillerのロゴ タレントブーストのロゴ タレントスコアのロゴ