世界を動かす技術を、日本語で。

「最高のエンジニア」を雇いたくないあなたへ

概要

  • スタートアップが「最高のエンジニアだけを採用したい」とよく言う現状
  • 実際には「最高のエンジニア」は自社に興味を持たない現実
  • 採用基準が現実離れしており、時間だけが無駄になる問題
  • 妥協点を明確にし、現実的な採用戦略が必要
  • スピードと柔軟性を重視した採用方針への転換提案

「最高のエンジニアだけを採用したい」という幻想

  • 多くのスタートアップが「 最高のエンジニア だけを採用したい」と主張
  • 実際には「 最高のエンジニア」は既に高給・リモート・選択肢多数の環境を持つ
  • 彼らは 給与や働き方 に強いこだわりを持ち、会社側の条件に簡単には従わない
  • 給料重視はNG」「40時間労働希望はNG」「Bay Area出社必須」など、非現実的な条件設定
  • 4ヶ月間も採用が停滞し、スタートアップにとっては致命的な時間の浪費

採用は交渉であり、競争である現実

  • 採用市場は 競争 であり、企業側も「競争力」を示す必要
  • 他社と同じ基準・条件では、 差別化できず 優秀な人材を逃す結果
  • 「即戦力のシニア」より「短期間で成長するミッドレベル」の方が早期戦力化が可能
  • 「50時間労働」希望者を待つより「今すぐ40時間働ける人」を採用する方が現実的
  • 採用基準の「理想像」に固執することで、 最適な人材を逃すリスク

本当に必要なものを見極める重要性

  • 「どの条件が本当に重要か」「何を妥協できるか」を明確化
  • 採用時期の違いがもたらす 価値(今月 vs 来月) を冷静に評価
  • スタートアップにおいて「 今日本当に必要なもの」を常に問い直す姿勢
  • 「高い基準だから特別」という思い込みは、多くの企業と同じである現実
  • シリーズA調達なども、候補者から見れば「 その他大勢」に過ぎない

完璧主義が「優秀な人材」の採用を妨げる理由

  • 「最高のエンジニア」に固執することで、「 優秀な人材」の採用機会を逃す
  • 採用は必ず「何かを諦める」トレードオフが発生
  • 諦めるべきものを考えずにいると、 最も貴重な時間 を失うことに
  • スタートアップの本質は「 スピードと挑戦」であり、採用にも同じ哲学が必要
  • 完璧主義による採用停滞は、最終的に企業の失敗リスクを高める要因

現実的な採用戦略への転換提案

  • 「完璧」より「 現実的な優秀さ」を重視した採用方針への転換
  • 条件や理想像に固執せず、 スピードと柔軟性 を持った採用活動
  • 採用は「 理想の人材」を待つことではなく、「今必要な人材」を見極めるプロセス
  • 妥協点を自覚し、 意識的なトレードオフ を行うことで採用効率化
  • 競争力を持つ企業として、 現実的な魅力 を候補者に示す重要性

Hackerたちの意見

「最高のエンジニアだけを求めてます」とか「Aクラスの学生しか雇わない」とか「トップエンジニアだけ」と言ってる会社は、だいたいちょっと毒のある職場環境になってることが多いね。

「私たちは実力主義です」と付け加えて。

同意するよ。優等生でも、会話が得意とは限らないからね。いろんな要素があるけど、一つだけ確かなのは、人間関係が一番大事ってこと。

誰かが積極的で、学ぶ意欲があって、無駄なことにはあまり我慢できないかどうかを見極める方法があればいいのに。これらは素晴らしいエンジニアに共通する最も重要な特性だと思う。日々の仕事を淡々とこなして、障害を乗り越えていく人たち。結局、仕事をすることが一番大事って感じがする。

そういうことを言う人は妄想に取り憑かれてるよね。

俺の出身地では、こういうタイプの企業は金融かコンサルティングの会社だね。実際の仕事は、彼らが雇いたいような人材にはほとんど見合わないけど、給料は良いし、名声を利用できる。彼らのセールストークの一部は、クライアントに「最高の中の最高を雇っている」と自慢できることだから、フレッシュグラデュエイトに1000ドル請求する価値があるってわけ。シグナリングにかなり重点が置かれてるよね。もちろん、MITの理論物理学の大学院を卒業したジェーンやジョーがデータを分析してスプレッドシートやきれいなパワーポイントを作れるのは間違いないけど、それは完全にオーバーキルだよ。

「最高のエンジニアは、あなたの会社の給料全体よりも多く稼いでる。彼らは技術的負債やタイムラインについて意見を持ってるし、リモートの仕事もできる。『ああ、これがあなたの3社目だから、製品の決定はあなたに任せるよ』なんて言わない。報酬に関心があるのは、あなたが不適格だと思ってる特性。彼らはワークライフバランスも気にする。なぜなら、そこまで切羽詰まってないから。どんなにあなたの会社が成功してても、彼らにはもっと良い選択肢があるからね。」

短期的な利益と長期的な利益の話だね。経験豊富なエンジニアは、将来的に安く早くスケールできるアーキテクチャを設計できるけど、初期コストは高い。メンテナンスも安くて、セキュリティにも良いしね。採用時のビジネスの状況や、製品に対する計画によるけど、ボリュームが必要なのか、品質が必要なのか(どちらも正しい選択肢だよね)?

これに付け加えたいのは、最高のエンジニアは意味のある形で採用プロセスを通過することが少ないってこと。たいていは、誰かが前の職場で彼らを認識して、強く推薦してくれるんだ。だから、もし君がチャンプみたいに採用プロセスを通っているなら、プライドは捨てて、報酬の話をしたり、望ましいポジションでリモートワークを要求したりしない方がいいよ。

もう2010年じゃないよ。ほとんどのスタートアップは「最高のエンジニア」を引き寄せることすらできないし、ましてや雇うなんて無理。今は終盤戦だし、FANGで働けるのに、ほんのわずかな株式と市場以下の給料で働くエンジニアなんていないよ。リモートワークや面白い問題、新しい経験みたいな、本当に価値のあるものを提供しないと、計算が合わないよ。

FANG企業は「トップタレント」を引き寄せるわけじゃないよ。「非常に良いタレント」を引き寄せるけど、通常はスタートアップには存在しないインフラが必要なタレント。ダリル・ヘイブンズはこのルールの例外だけど、あなたはそうじゃない(ダリルなら別だけど、「やあダリル!いつか会ってVAXの話でもしようよ。」)。

エンジニアはもう株式のことなんて気にしなくなったよ。何度も痛い目にあったからね。成功した会社からの大きな報酬は、2015年以前のように保証されてるわけじゃない。裏での希薄化や投資家専用の出口戦略があまりにも一般的になってしまった。実際に自分の銀行口座に振り込まれる現金以外は、信じるのがとても危険になった。

FAANGとかは、必ずしも「最高の」エンジニアにとって「最適な」場所じゃないってのは昔からそうだよね。特に、企業文化がどんどん堅苦しくなって、スピードも遅くなっていく中で、居心地が悪いと感じる人も多かった。だけど今は「最高のエンジニア」も、レイオフや雇用の圧迫が進んでるから、そこでは働けないっていうのが現実。スタートアップがエンジニアに提供する株式パッケージは、一般的に侮辱的だよね。最近の面接で交渉があったとき、創業者は株の割合すら教えてくれないし、実際の価値についても何も言わず、ただ意味不明なことを言うだけだった。

大手企業で高給と素晴らしい福利厚生を受けてたけど、めちゃくちゃ不満だった。基本的に福利厚生がない小さな会社に35%の給料カットで転職したけど、今はすごく幸せ。田舎に住んでリモートで働いてるし、生活も合理的。無理にお金を稼ぐ必要はないんだ。

エンジニアがFANGで働けるのに、ほんのわずかな株式と市場以下の給料で働く理由は何?数百万の貯金があって、家もあって、優先順位が変わることもあるよね。全員には当てはまらないけど、お金以外の理由で他の場所で働く人にはそういうこともある。

25〜27歳くらいの若いチームの初期段階のスタートアップで面接を受けたんだけど、面接官は僕よりずっと若い人だった。リクルーターによると、3ヶ月で僕が一番進んでいて、このスタートアップはトップクラスの候補者を次々と面接してるらしい。面接の後、すぐに理由がわかったよ。チームが若すぎて、シニアの才能を評価する方法を知らなかった。彼らが何を求めているのかもわからなかった。僕は面接を受けた人数が面接官より多いかもしれない。最後に確認したとき、まだその役割は埋まってなかった。僕が推薦した強い候補者は、トレンディなバックグラウンドを持たない過小評価された人たちから来た。ダン・ルーのアドバイスは、初期段階のスタートアップではさらに重要だと思うよ。 https://danluu.com/programmer-moneyball/

それを聞くのはすごく興味深いね。俺が見たところ、最近のYCスタートアップの半分くらいは30歳未満の創業者がいるみたい。シニアな才能は、基本的にジュニアやミッドレベルの開発者に面接されることをどう思ってるんだろう。俺は20代で、そこそこいい経歴があって、スタートアップ界隈に友達もたくさんいるけど、10年以上の業界経験がある人を面接するのは全然気が進まない。

「ビジネス」の創業者が「私たちの技術スタックを定義するための創業エンジニアを探してますが、Python 2.8、Solaris、Azure、カスタムビルドのVIMを使うことはすでに決まってます」とか言ってる投稿を見ると、いつも笑っちゃう。 [もちろん、これはちょっと誇張してるけどね。]

「最高のエンジニア」なんて存在しないよ。確かに、あるエンジニアは他のエンジニアより優れてるけど、「本当に頭が良くて、素晴らしい労働倫理」を超えると、技術の木はかなり大きく分岐する。あるエンジニア(ノッチみたいな)は、膨大な量の平凡なコードを素早く書いたり、アイデアをプロトタイピングしたり、明確な製品ビジョンを維持したり、何かを素早く現実にするのが得意。別のエンジニア(ジョン・カーマックみたい)は、しっかりした意見を出したり、難しい問題に対して賢い解決策を見つけるのが得意。あるエンジニア(ビル・アトキンソンみたい)は主にリモートで働いて素晴らしい技術を開発したけど、別のエンジニア(ジョエル・スパルスキーみたい)はオフィス勤務を主張して、最高のメンター組織を作った。特別な才能を持つ人を雇うことは、どんな組織の目標達成能力にとっても大きな変化だけど、「最高」を測るための一つの指標はないよ。特定のスキルを見極めて、そのスキルに優れた人を見つける採用プロセスを作る方がずっといい。

それって「最高の中の違い」について話してるように聞こえる。

そうだね。「最高のエンジニア」がいるってことは、すべての文脈でその人を判断できる「唯一の真の指標」が存在するってことになるけど、それはせいぜい単純化に過ぎないよ。実際の指標(必ずしも簡単に定量化できるわけじゃない)は、君が求人票に書く望ましい特性なんだ。これらは完全には相関しないんだよね。

すべては性格と態度にかかってる。誰でも昨日よりも良いエンジニアになることはできるよ。問題は、そうするためのリソースがあるか、インセンティブがあるかってこと。彼らが最高のパフォーマンスを発揮できるように、しっかりサポートしてる?それにはトレーニングを提供することから、福利厚生まで含まれるよ。過労のエンジニアは、いつか必ずミスをするからね。

時々、最悪のエンジニアを避けられるだけで嬉しいよ。そういう人たちは確かにいるからね。仕事に対する姿勢が悪かったり、基礎スキルが乏しかったり、一緒に働くのが大変だったりする。彼らを排除できれば、採用マネージャーとしての仕事の75%は終わったようなもんだと思う。

同意するよ。追加で「ジェネラリスト」カテゴリーも主張したいな。ジェネラリストは、君の例に出てきた特別なスペシャリストのように有名にはならないけど、優れたジェネラリストはどんな状況でも良い仕事ができるんだ。彼らはチームメイトから高く評価されるけど、残念ながら管理者からはあまり認識されないことが多いんだよね。

100%同意だね、エンジニアの良さにはいろんな多様性があるよね。ただ、結論にはちょっと異議があるかな。「特別な才能が必要なスキルを特定せよ」っていう部分。どのエンジニアも、あなたの会社にとって素晴らしい人材だと思うよ。小さい会社なら柔軟に対応できるし、もしその典型的な優秀なエンジニアが手に入るなら、彼らを採用して、彼らと一緒に生産的に働けるようにワークフローを調整すればいいんじゃないかな。

うーん、それはちょっと違うと思うな。「最高のエンジニア」なんて存在しないって言うのは。ジェフ・ディーンみたいに問題を解決できる人はほんとに少ないよ。ただ、現実的に言うと、すべての会社がGoogleのような難しい問題を解決する必要はないよね。

一番大事な優秀なエンジニアを見落としてるよ。技術スキルは十分だけど、素晴らしい実行力を持っている人。多くの優秀なエンジニアは「楽しい」問題に目が行きがちで、シンプルなタスクを放置しちゃうことが多いんだ。どのチームにも、Jiraを開いて、チケットのリストを整理して、毎日一つずつ片付けていく開発者が必要だよ。彼らがいないと、製品は素晴らしくエレガントなコアの周りで徐々に崩れていくよ。

「最高のエンジニア」なんて存在しない。確かに、エンジニアの中には他より優れている人もいるけど、「本当に賢くて、素晴らしい労働倫理」を超えると、技術の木はかなり劇的に分岐するんだ。もちろん、でもそれがこの記事のポイントだとは思わない。この記事のポイントは、スタートアップがいつも「最高の人材だけを雇う」って主張するけど、実際にはそうじゃないってこと。なぜなら、最高の人材に対して支払えないし、彼らのニーズや意見に応えられないから。実際には「十分良い」エンジニアが欲しいだけなんだ。「最高」の正確な定義はポイントじゃないし、みんなそれが変わることに同意してる(もちろん、最高のエンジニアには共通の要素があるけど)。これに腹を立てるどころか、感謝してるよ。「十分良い」人たちと一緒にいることが分かってるから、絶対に最高ではないけどね :)

これはIQに関する議論に似てるよね。知能を測る単一の基準なんてないし、人間にはそれぞれ異なる能力があって、個々の能力は全体の人口と比べてスペクトラムのどこかに位置してるんだ。特定の状況では、ある能力がすごく価値があることもあるから、お金を稼ぐことに集中している人たちは、お金を生む能力に過剰に注目しちゃうんだよね。採用する側は、自分たちが持ってない能力を持った人を雇いたいと思ってる(だからこそ雇うわけで)けど、その一方で、雇った人を利用して、自分たちが得られる利益を増やそうとするんだ。論理や数学のスキルを持った人を雇って、自分の価値を計算できないと思うのは、ちょっとパラドックスだよね。

この著者と真っ向からやり合うつもりだったけど、実際に読んでみたらこういうことを言ってたんだね:1. スタートアップのときは非現実的な高い基準を持たないこと。時間は何よりも貴重だから(「scrappy」は「crappy」なしでは成り立たない)。2. 重要な特性を評価する際には、宝くじのような金融計画ではなく、もっと意図的であるべき。すべてが優先事項なら、何も優先事項じゃない。3. 市場のダイナミクスを理解すること。クソみたいな労働時間にクソみたいな仕事をさせて、クソな結果しか得られない。4. 今すぐ優れた人材を雇うべきで、「最高の」人材を待つのはやめたほうがいい(理想化された人たちのことね)。これに関しては、著者が平凡な人を雇うことの危険についてのエッセイを追加してほしいな(ジョブズの「ボゾ爆発」やラムズフェルドの「AはAを雇い、BはCを雇う」みたいなやつ)。それが人々が避けようとしている、会社を潰す非常に一般的な罠だから。平凡さは才能を遠ざけるし、才能ある少数のチームは、平凡な大人数のチームを圧倒するからね。これがスタートアップの採用のジレンマなんだよね:正しいバランスは何か?

この投稿は、血統が才能の信頼できる予測因子ではないっていうアイデアを伝えようとしてると思うけど、便利で標準的なものだからみんな使ってる(それが逆にその有用性を減少させてる)。リクルーターにとって、平凡な人を雇うことの危険を完全に体験するのは難しいけど、履歴書に書いてあることが実際の才能をほとんど反映していないっていうのは、まさに彼らが直面している現実なんだよね。

優れた才能は平凡な才能を引き上げる方法を知っているけど、まずはその初期のコアチームを作ってからやるべきだね。

良いソフトウェアは、共通のビジョンを持ち、良いコミュニケーションスキルを持ったモチベーションの高い人たちによって作られるんだ。コーディングの才能や生のCSの天才って、正直言って、ほとんど関係ないと思う。特に今の「革新的な」スタートアップは、他の人の仕事をくっつけてるだけだからね。自分たちが作っているものにワクワクして、互いに話し合い、少なくともお互いを尊重し合わないと、終わりだよ。

Otherbranchのビジネスについては何も知らないけど(彼らは約1年前に立ち上げたみたい)、パトリック、エリン、そして僕は似たようなビジネスダイナミクスの会社で少し働いたことがあるよ(Starfighter、CTF予選に基づくコンティンジェンシーリクルーター)。こういう投稿を書く可能性があるのが、そのビジネスが縮小された理由の一部なんだ。この投稿のポイントはほとんどが正しいと思うけど、採用マネージャーはこれを見て「はい、これは業者が自分の本を語ってるだけだ」と思うだろうね。リクルーティング会社とテクノロジー企業の関係のほとんどは、実行可能な候補者の閾値についての意見の不一致なんだよね。

また言うけど… 既に存在するようなクソみたいな派生アプリを開発するのに「最高の」エンジニアは必要ないよ。今の時代に人々が作ろうとしているものの99%は、数人の有能なエンジニアがいれば十分なんだ。

俺は5つのスタートアップで働いた後、大学院に戻ってアカデミアに入ったんだけど、それが25年以上前の話だ。だけど、いくつかの教訓は今でも通用すると思う。一番良かったスタートアップは、4人のエンジニアが大企業を辞めて、コンサルティングプロジェクトから始めたところで、最初の顧客(国立研究所)向けにFPGAを使って製品の初版を開発したんだ。その後、ASIC版を開発するためにベンチャー資金を得て、俺は12人目の社員として雇われた。次に良かったのは、大学時代の友達が集まって(ほとんどエンジニアだけど、ビジネスの学位を持ってるのが一人いた)、営業マンを説得してスタートアップを始めたケースだ。どちらの場合も、創業エンジニアを雇う必要はなかった。創業エンジニアたちは、シード資金を得たオリジナルグループの一員だったからね。後から雇われた人たちもかなり優秀で、創業者たちと同じレベルかそれ以上に成長したけど、彼らの成功はまだ見ぬ誰かの超人的な能力に依存してたわけじゃない。正直言って、「素晴らしいアイデアがあるけど、製品にする方法がわからないから人を雇う」っていう考えは、いろんな意味で失敗のレシピに思える。

そうそう、「アイデアマン」がネットでネタにされる理由があるよね。素晴らしいアイデアを持つのは簡単だけど、そのアイデアをVCや顧客、友達、家族に売り込むスキルが重要なんだ。

スティーブ・ジョブズの言葉を思い出すね。「頭の良い人を雇って、何をするか指示するのは意味がない。頭の良い人を雇うのは、彼らに何をすべきか教えてもらうためだ。」一般的に「最高のエンジニア」を探している会社は、賢い人を雇って指示すれば問題が解決すると思ってる。彼らは「最高のエンジニアが欲しい」と言うけど、実際の職務内容や面接プロセスは「私たちのビジョンをそのまま実行してくれる人が欲しい」と叫んでる。最高のエンジニアは、あなたのアーキテクチャが間違ってる理由、コードがダメな理由、タイムラインが非現実的な理由、製品の決定が技術的に意味がない理由を教えてくれるよ。そのレベルの反発に耐えられないなら、実際には最高のエンジニアが欲しいわけじゃない。

「私たちは賢い人を雇って、彼らに何をすべきか教えてもらう」 それに、ベル研究所からの引用:「天才たちをどう管理するか?管理しない」 >「最高のエンジニア」を探している会社 もし「最高のエンジニア」が必要なら、あなたのシステムは(たぶん)複雑すぎて、彼らがフラストレーションを感じると、維持するのが難しくなるよ。 > 最高のエンジニアは、あなたのアーキテクチャが間違っている理由、コードがダメな理由、タイムラインが非現実的な理由、製品の決定が技術的に意味をなさない理由を教えてくれる。もしそのレベルの反発に準備ができていないなら、実際には最高のエンジニアを求めていないってことだよ。これがどれだけ重要か強調したい。エンジニアは不満を持つべきだよ。仕事は問題を見つけて、解決することだからね。単に文句を言うだけじゃなくて、どうして別のやり方がいいのかを議論するんだ。小さな問題を大きな問題に繋がることを理解しているから、些細なことに文句を言うんだよ。人は「でも、どうするの?」や「まあ、でも」といったフレーズを「ノー」と混同しがちだけど、エンジニアにとっては「考えているだけ」なんだ。イエスマンに囲まれていると、会社のことを気にせず、自分の生存だけを気にしている人たちに囲まれていることになるよ。完璧じゃない限り、経営陣が間違っていると思ったら挑戦することを恐れない人が必要だよ。失敗を恐れない人が必要なんだ。後から振り返ると、先を見越すよりもはるかに明確だからね。

最高のエンジニアは、あなたのアーキテクチャが間違っている理由、コードがダメな理由、タイムラインが非現実的な理由、製品の決定が技術的に意味をなさない理由を教えてくれる。もしそのレベルの反発に準備ができていないなら、実際には最高のエンジニアを求めていない。そしたら、会社が必要とする場所に、実現可能なタイムラインで、利用可能なリソースを使って到達する方法を一緒に考えてくれるよ。

普遍的な「最高」なんて存在しないよ。すべては主観的な状況評価なんだ。