なぜあなたの最高のエンジニアたちは他社の面接を受けているのか
(codegood.co)- 組織内の情報フィルタリング構造により、経営陣はエンジニアたちの不満を退職通知が出て初めて知ることになり、すでに数か月前に決まっていた退職を覆すには遅すぎる
- エンジニアが辞める本当の理由は給与ではなく、技術的判断が無視される経験、返済不能な技術的負債、意味のない仕事への配置にある
- 中間管理職は問題を自分のレイヤーで解決しようとし、それを専門性として認識しているが、実際には情報抑圧として機能する
- スキップレベルの対話(経営陣が下位職級のエンジニアと直接話すこと)は組織の健全性を損なうという名目で敬遠されるが、実際には中間管理職を責任から守る役割を果たしている
- シニアエンジニア1人の交代コストは**$275,000〜$395,000**に達し、週に数時間のスキップレベル対話のコスト($50,000/年)よりはるかに大きい
- 組織が早い段階でスキップレベル、外部診断、実際の問題解決に投資すれば数億ウォン規模の交代コストを減らせるが、それができない会社は理由も分からないまま優秀なエンジニアを失い続ける
序論: あるシニアエンジニアの離脱と140万ドルの損失
- 年間4,000万ドルARRのSaaS企業で、あるシニアエンジニアはスケールしないDBアーキテクチャに6か月間反対していたが、プロダクト組織の「まず早く出して、リファクタリングは後でやろう」という決定がそのまま進められた
- エンジニアリングのリーダーシップは彼が正しいと見ていながらも、プロダクトチームに対抗して押し返さなかった
- 彼は技術的な決定そのものよりも、自分の判断に意味がないという事実のために、その週のうちにすぐ面接を受け始めた
- 8か月後、システムは毎日のように性能問題に苦しみ、18か月後にはシニア5人が会社を去り、会社は何が起きているのかを把握するためにfractional CTOを雇った
- 診断の結果、役員陣はエンジニアたちが不満を抱えている事実を退職メールが来るまでまったく知らなかった
- 退職面談には「より良い機会」「より競争力のある報酬」といった表面的な内容しか記録されていなかった
- CEOは残っているエンジニアの給与を15%引き上げたが、その後も離職は続いた
- シニア5人を入れ替えるのにかかった費用は、採用、生産性損失、知識の喪失まで含めて約140万ドル規模と見積もられた
- この問題は報酬ではなく情報の流れの失敗に起因しており、**「上に上がる情報がふるいにかけられる階層構造」**が核心的な原因だった
Hierarchies filter bad news out — 階層構造は悪い知らせを消してしまうフィルター
- 組織は複雑さに対処するために階層構造と管理レイヤーを導入するが、その結果として情報が各レイヤーでふるいにかけられる構造が生まれる
- ジュニアが「問題がありそうです」と言うと、シニアがそれを整えてマネージャーに上げ、マネージャーは「報告に値することか、自分に不利ではないか」を先に評価する
- VP→CTO→CEOへと上がるほど、元の問題の詳細と切迫感は少しずつ失われていく
- このフィルタリングは悪意というより、中間管理職が「自分のレベルで問題を処理すること」を責任だと信じる文化から生じる
- 「問題を上げること = 失敗」と見なされ、「解決策だけを持って上がること」がプロフェッショナルだと認識される
- 結果として、これは問題を隠すメカニズムとして機能する
- 120人規模のエンジニア組織のある事例では、フロントエンドチームが3月に新しいダッシュボードの性能問題を発見し、コードレビューで公然と懸念を示していた
- 5月にマネージャーが解決策を検討し、6月にはVPに「ダッシュボード性能最適化を進行中」程度として伝えられた
- 7月にCTOが聞いたのは「多少の性能作業がある」という程度で、8月になって初めて最大顧客がダッシュボードは使い物にならないと正式に抗議したことで、役員陣には『突然の』危機として認識された
- 実際にはエンジニアたちは5か月間その問題を把握しており、リソースを配分すべき役員陣は常に数か月遅れの、薄められた情報で意思決定していた
- この構造では、エンジニアは8月にDBが耐えられないことを知り、マネージャーは10月に不満を知り、VPは12月に士気低下を認識し、CTOは2月に大量退職を見ることになるという情報遅延の連鎖が繰り返される
The convenient fiction of chain of command — 「報告ライン」という都合のよい虚構
- 多くの組織は**スキップレベル(役員がエンジニアと直接話すこと)**を「体制を壊す行為」としてタブー視する
- 中間管理職の権威の弱体化、不信のシグナル、マイクロマネジメントといった理由がよく持ち出される
- 表向きは組織の健全性への配慮のように見えるが、実際には中間管理層が責任と検証から自分を守る装置として機能する
- CTOがエンジニアと直接話す場合、実際に現場で何が起きているのかを知ることができる
- 逆に、管理レイヤーを通った報告書だけを見るCTOは、管理職が見せたいバージョンの現実しか見られない
- スキップレベルのタブーは後者を保証するメカニズムになる
- 「役員の時間は高価だから、戦略だけに集中すべきだ」という論理は、戦略が事実と異なる情報の上に築かれ始めた瞬間に崩れる
- CTOが毎週数時間だけ投資しても、何が実際に詰まっているのか、誰の気持ちが離れつつあるのか、どの技術的ベットが失敗しているのかを直接聞ける
- 階層を3〜4段階通った報告書に依存する方が時間あたりのコストは安く見えるが、間違った大きな意思決定を繰り返し生む、はるかに高くつく選択になる
- スキップレベルに使う時間は多くある必要はなく、一貫したパターンと全体カバレッジさえ確保すればよい
- 組織が大きくなるほど1人と話す周期は長くなるが、CTOが四半期に一度でもすべてのエンジニアと直接話す構造を維持できる
- こうした直接対話では、エンジニアはマネージャーには絶対に言わない問題を話し、正式ラインより3〜6か月早い早期警戒が得られる
- ある決済会社の事例では、新しいCTOが毎週30分のオフィスアワーを開き、誰でもマネージャーの許可なしに予約できるようにしたところ、
- デプロイシステムが不安定で金曜デプロイを避ける文化、誤報が多すぎて誰も信用しないモニタリング、APIドキュメントの老朽化でオンボーディングの1か月が丸ごと試行錯誤に費やされる問題が明らかになった
- いずれも各マネージャーが「自分のレベルで対応中」として上に上げていなかった内容であり、CTOは四半期内に3つの問題すべてを解決するための予算を割り当て、6か月後には自発的離職率がほぼ0に近づく変化が現れた
Agency, not salary — 去る理由は報酬ではなく「エージェンシー」の喪失
- エンジニアの転職理由は、退職面談ではしばしば「報酬」として包み隠されるが、実際のパターンはもっと微妙で、口にしづらい要因から始まることが多い
- 1. 1つ目のパターンは 裁量の喪失
- エンジニアが明らかに失敗すると分かっているシステムを作るよう求められ、非技術的な理由で判断が継続的に覆される状態
- 予測した失敗が現実になったとき、「なぜ止めなかったのか」という責任まで負わされる構造の中で、専門家としての判断に何の意味もないという感覚が積み重なっていく
- あるフィンテック企業は、すでに検証済みの認証ソリューションを使わず自前実装することにしたが、シニアたちはリスクの高さとコアではない領域であることを理由に反対していた
- プロダクト側は特定の UX フローのためにカスタム実装を強く推し、エンジニアリングのリーダーシップもシニアたちの意見には同意していたが、最終的に止めることはできなかった
- 結果としてカスタム認証システムは最初の1か月で セキュリティ脆弱性3件、緊急パッチ、6か月分の開発リソースを消費し、そのシニアは決定が確定した週にすぐ転職準備を始めた
- コストを数字で見ると、カスタム認証に 18万ドルを費やしている間、市販のソリューションは年間 1.2万ドルだった
- そのエンジニアが残っていれば、ロードマップ上で年 40万ドル ARR を生む機能に取り組めたはずで、
- この決定だけで 少なくとも58万ドル が初年度に失われた計算になる
- 2. 2つ目のパターンは、返済不能なレベルまで先送りされた技術的負債
- DB レプリケーション、デプロイ自動化、監視改善のような中核インフラ作業が、四半期ごとに機能開発の後ろへ回され、
- エンジニアは、いつどこで何が壊れるかをほぼ正確に分かっていながら、それでも止められないのを見続ける状況に置かれる
- ある EC 企業では、18か月にわたって DB インフラ作業が先延ばしにされ、その間トラフィックは毎年 40% ずつ増えたのに、インフラは据え置きだった
- 19か月目に DB がプラットフォーム全体のボトルネックとなり、ピーク時の応答時間は 200ms から 4秒 まで悪化し、コンバージョン率低下により 120万ドル規模の売上損失 と 24万ドルの緊急インフラ費用 が発生した
- インフラ作業を最も強く求めていたシニア3人のうち2人は、すでに去っていた
- 3. 3つ目のパターンは、賢い人に愚かな仕事をさせる構造
- 年 18万〜19万ドルを受け取るシニアに、すでに廃止すべきシステムの保守、意味のない反復作業、誰も信じず誰も読まない文書や見積もり会議を任せる状況
- ある SaaS 企業では、6年物のレガシーなレポーティングシステムが年間 8万ドルの売上 を出していたが、シニア1人(年 19万ドル)が時間の 60% をその維持に使っていた
- 会社は実質的に 年 11.4万ドルを、8万ドルの売上のために燃やしている構造 で、エンジニアは顧客12社を新プラットフォームへ移行しようと提案したが、「戦略的顧客」という理由で却下された
- 彼女は3か月後に退職し、採用とオンボーディングを含む置き換えコストは 22万ドル に達した一方、顧客移行は 4万ドル程度で済んだはずの作業 だった
The early signals executives miss — 経営陣が見落とす「早期警告」
- 経営陣が退職届を受け取るまで見えていない兆候は、実際には 6〜12か月前から すでに別のレイヤーで明確に現れている
- 1. ジュニア/ミドルのエンジニアが最初に目にする兆候は、シニアが戦うのをやめること
- シニアがアーキテクチャレビューでもはや強く意見を述べなくなり、レビューは形式的な通過儀礼になる
- バックログの技術タスクは積み上がり続けるのに、アサインはほとんど行われず、「これはやろうとしたけど上からダメだと言われた」という言葉が頻繁に出るようになる
- ある物流会社のジュニアエンジニアは、6か月間こうした変化を観察していた
- 以前は詳細なコードレビューをしていたアーキテクトが、今ではほとんど 「LGTM」一言で承認 するようになり、
- 非公式な会話で「どうせ自分の意見では結果を変えられないから、時間を節約することにした」と聞いたとき、このシニアがまもなく去ると先に気づいた
- 3か月後、実際に退職が起きたが、マネージャーはまったく予想していなかったと感じていた
- 2. シニア本人が経験する段階は、4〜8か月前から現れるパターン認識と道徳的疲労
- 「これは失敗するし、リーダーシップは耳を貸さない」という確信、正しくないものを作らされることによるモラルインジャリー、そして「自分の専門性はここでは何の意味もない」という感情だ
- 外からは会議で以前ほど争わず、より協力的に見えるため、リーダーの目にはむしろ「成熟したように」映ることすらある
- 3. マネージャーが目にする兆候は、2〜4か月前の微妙な行動変化
- 1:1 での関与が薄れ、チームの議論での発言が減り、
- LinkedIn を更新し、業界イベントに以前より頻繁に出席し、ドキュメント作成が急に非常に丁寧になり、ジュニアに自分のシステムを熱心に教え始める
- このとき多くのマネージャーは、高い離職率が自分に不利だと感じ、上への報告よりも静かに解決しようとして、すでにオファーを受け取った後になって初めて事態を認めることになる
- あるメディア企業のマネージャーは、あるシニアが突然あらゆることを文書化し始めたのを「ついにナレッジ共有を実践している」と前向きに捉えていたが、
- 実際には去るにあたって 知識の空白に対する罪悪感 から残していた記録であり、それに気づいたのは退職後だった
- 4. 経営陣が見るのは、0〜1か月前になってようやく届く退職通知 だけで、その前段階で積み重なっていた兆候は階層構造の中ですべて散逸していたことになる
Why one departure becomes five — 1人の離脱が5人の離脱に広がる構造
- 1人の退職は1つのデータポイントにすぎないが、3人が立て続けに去ると、残った人たちは「何かある」と解釈 し始める
- とりわけ尊敬されていた同僚が去ると、残った人は「その人には見えていて、自分には見えていない何かがあるのではないか」と考えるようになる
- 外部のリクルーターもこのパターンを素早く察知する
- 同じチーム出身のエンジニアが LinkedIn 検索で頻繁に見つかり、プロフィール更新が集中すると、そのチームを 重点攻略対象 と見なすようになる
- 転職を考えていなかったエンジニアたちも連絡を受けて面接を受けるようになり、その一部は実際により良い機会を見つける
- あるクラウドインフラ企業では、シニア2人が3週間違いで去った後、次の3か月でさらに5人 を失った
- 社内振り返りの結果、最初の2人の離脱が「会社の財務状況に何か問題があるのではないか」という 情報の空白から来る不安を増幅 させ、
- 実際の理由は前述の 裁量の喪失と技術的負債の問題 だったが、残った人たちが「自分の知らない何かを去った人たちは知っている」と推測している間に、リクルーターがその隙を積極的に突いた
- 知識流出のコストは数字にしにくいが、その後の四半期ごとに出てくるミス、遅延、やり直し として表れる
- 去ったシニアは、「どの3行のコードには触れてはいけないか、どの 3,000 行なら消してよいか」という感覚を持っており、
- どの顧客がなぜ特別な要件を持っているのか、どの技術的負債が「見た目だけ悪い」のか、それとも「実際に危険」なのかを知っていた
- ある決済会社の事例では、精算システムを作ったシニアが退職した後、新しいエンジニアがコードを修正した際、ある決済代行 API の undocumented な特殊ケース を知らず、特定の取引タイプがすべて失敗する問題が発生した
- このバグの特定には2週間かかり、エンジニアリングコスト約 4.5万ドル、失敗した取引を手作業で突き合わせる間に 18万ドル 規模の問題が生じたが、
- もともとのシニアはこの API のバグを試行錯誤の末に見つけ、頭の中にしか保持していなかった
Sometimes it really is the money — 本当に報酬が理由である場合と、「言い訳としての報酬」を見分ける
- 報酬が実際の原因であるケースもあり、タイミングのパターンが異なる
- 市場水準と比べて明確に低い年収、増えた責任に見合わない報酬、新規入社者が自分と同じ年収を受け取る構造が続いているとき、
- 転職前に報酬の問題を直接先に持ち出すケースは、報酬面の課題として解決可能な領域である
- 逆に、退職インタビューでのみ「報酬」が登場し、すでに数カ月前から静かに面接を受けていた場合、報酬は動機ではなく正当化の手段であることが多い
- 新しいオファーが30%高いため「市場水準」を口にするが、マッチング提案をしても「もう別の会社を受け入れた」と言って反応が鈍い、というパターンである
- この場合、実際に去る理由は先に述べたエージェンシー、技術的負債、無意味な業務についての結論である
- この記事が提案する簡単なテストは、**「20%の昇給で引き留められるか」**である
- 「それくらいなら考えてみる」と言うなら、報酬が主な課題である可能性が高く、
- それでもすでに気持ちが離れているなら、環境が壊れていると判断している状態であり、金だけでは解決できない状況である
- ある開発者ツール企業は、報酬を理由に去った8人を詳しく分析し、
- このうち何としても引き留めたい5人にマッチ以上のカウンターオファーを出したが、3人は拒否した
- その後の対話を通じて、彼らが去った理由は変わり続けるロードマップと意味を失った作業であり、「会社の方向性をもう信じられない」という感覚だった
- 退職インタビューでは「報酬」しか言及されなかったが、実際の問題は仕事そのものの意味の喪失だった
Prevention beats retention bonuses — 事後ボーナスより「早期介入」のほうがはるかに安い
- 早期介入のためには、階層フィルターを迂回する情報チャネルが必要であり、いくつかの方法が繰り返し効果を示している
- 1つ目は定期的なスキップレベル対話である
- 毎週数時間だけでもエンジニアの全レベルと直接対話に使えば、正式なラインでは上がってこない実際の生産性の障害、問題のある技術判断、下がっている士気のポイントを聞ける
- 組織が大きくなったら1人あたりの頻度は下げつつ、全体カバレッジを維持する設計が重要である
- ある100人規模のエンジニアリング組織のCTOは、毎週4時間をスキップレベルに使い、
- 30分ずつ2週間ローテーションで1カ月あたり約30人、7カ月で組織全体を一巡する構造を作った
- 予定は常に開いていてエンジニアが必要なときに予約でき、その結果自発的離職率が年18%から7%に低下し、CTOはこれを「問題が小さく、修正可能なうちに聞けたおかげ」と認識している
- 2つ目は外部診断の視点である
- レポートラインに属さず、人事権を持たないfractional CTOや外部アドバイザーがインタビューすると、人ははるかに率直に話す傾向がある
- 社内役員でも同じ質問はできるが、回答が変わる理由は「回答者が感じるリスク」の差にある
- あるSaaS企業は、6カ月でシニア4人を失った後、fractional CTOを投入して全レベルへのインタビューを行い、
- エンジニアが感じる中核的な問題は、「アーキテクチャレビューが実際に意思決定をする場ではなく、後から責任を押し付けるための芝居のように感じられる」ことだった
- レビュー要件をすべて反映して通過しても、数週間後にプロダクト判断で再び覆されることが繰り返され、
- 会社はこのプロセスを廃止し、技術実装についてエンジニアリングに実質的な拒否権を与えた
- 3つ目は少なくとも1つは実際に直すことである
- 話だけ聞いて何も変わらなければ、「言っても無駄だ」という学習が起こり、
- 1つでも目に見える形で直せば、「言えば変わる」というシグナルが組織全体に広がる
- あるヘルスケア技術企業で、開発者がCTOとのスキップレベルでテストに45分かかり開発速度が遅いと話したとき、
- CTOは「なぜまだ直していないのか」と尋ね、開発者は何度もマネージャーに伝えたが毎回後回しにされたと答えた
- CTOは即座に2週間の作業時間を割り当て、テスト時間を8分に短縮することに成功し、
- この経験が口コミで広がり、ほかのエンジニアたちもスキップレベルに問題を持ち込むようになった
- コストは約1.2万ドル分のエンジニア時間だったが、「言えば変わる」というシグナルの価値のほうがはるかに大きかった
The $1.4m misdiagnosis — 誤診が生む140万ドル級の誤判断
- シニア1人を置き換えるのにかかる保守的なコスト見積もりは27.5万〜39.5万ドル程度である
- 採用コスト: 年収の20〜25%程度
- 欠員期間の生産性損失: 3〜6カ月間、年15万ドルの生産性を基準に4万〜7.5万ドル
- オンボーディング期間の半端な生産性: 6カ月間50%効率で働くことによる損失3.5万〜4万ドル
- これに加えて、定量化しにくい知識損失、意思決定の遅延、手戻りが続く
- シニア5人を失えば、140万〜200万ドル規模の損失が発生する計算であり、先の事例企業のコスト見積もりとも合致する
- 逆に、実際の問題を直すコストははるかに小さいが、組織構造と政治に手を入れなければならない負担がある
- いくつかの機能を後ろ倒しにし、不要なプロセスを取り除き、技術判断をエンジニアに渡す代わりに、
- 多くの組織は「エンジニアはもともと高価で、市場競争が激しい」という説明を好む
- この説明は内部変化を要求しないため楽だが、実際の原因(情報構造、意思決定のやり方)を覆い隠す役割を果たす
- あるSeries B企業は18カ月でエンジニア7人を失い、CEOは「競合のほうが多く払う」と考えていたが、
- 事後分析の結果、そのうち5人は去る6カ月前に具体的な技術判断、プロセス負担、優先順位の問題をマネージャーに話していた
- それらの課題は1on1メモに「モニタリング中」といった程度で記録されるだけで、どのレベルからも役員まで上がっていなかった
- その結果、役員は「報酬の問題」だと信じ、エンジニアたちは「自分の意見は重要ではない」と結論づけるという、互いにまったく異なる現実を生きていた
Information is cheaper than replacement — 情報の確保は交代より圧倒的に安い
- 去っていくエンジニアたちは、役員が知らない事実を知っている
- どの技術判断が失敗しているのか、どのプロセスが時間を浪費しているのか、どんな管理の仕方が人を疲弊させるのかという具体的な情報である
- この情報は組織の中に常に存在するが、階層フィルターと中間管理職のインセンティブのために役員レベルまで上がってこない
- 核心の問いは、**「退職前にこの情報を聞くのか、それとも彼らが防げたはずの問題を事故として経験してからようやく学ぶのか」**である
- これをうまくやる組織は、情報の流れを戦略的資産と見なし、スキップレベルのチャネルを正式に設計し、
- フィルタリングされた報告書よりも現場から直接得る『グラウンドトゥルース』により高い価値を置く構造を持つ
- こうした組織では、役員の時間を的外れな戦略会議に使うより、
- 毎週数時間でも現場の話を聞くことに使ったほうがROIが高いという事実を認めている
- シニア1人の離職を防ぐだけでも、年間数万〜数十万ドル規模の役員時間投資を5倍以上回収できる計算になる
- 逆に、これを誤って扱う組織は、管理職の快適さを情報の正確性より優先する
- スキップレベルをタブー視し、悪い知らせが取り除かれた報告書に依存し、
- 離職の問題を退職願で初めて認識し、数百万ドルをかけて人を置き換えながらも、「なぜ最高の人材が去るのか」を最後まで理解できない
- 冒頭の事例に出てきたシニアエンジニアは今、技術アーキテクチャに対してエンジニアリングが拒否権を持ち、CTOが定期的にスキップレベルを維持している会社で働いている
- 彼も同僚たちも転職準備はしておらず、会社の自発的離職率は同じ段階の企業平均の半分以下である12%水準だ
- この会社の役員たちは、「崩壊して取り返しがつかなくなる前に」何が壊れているのかを聞いており、これは単純なメカニズム、すなわち継続して問いかけ、話せる構造を維持することによって生まれた結果である
17件のコメント
役員が見るべき内容なのに、脱出する私たちが見ているのが皮肉ですね……はは..
マジでその通り
実のところ、優れたエンジニアリングをビジネス目標に掲げている会社はそれほど多くありません……
みなさん同じような経験をしているようで、少し慰めになるのでしょうか……?
本当に共感しますね。
ほんといろんな部分で共感するw まじでやってられなくて、もう力を抜いて給料分だけ働こうモードになったら、むしろ仕事がスムーズに進むって喜ばれる。実際にはリスクのある開発の方向性が見えていても、もう自分には関係ない状態になっただけなんだけど
この記事には、Part 1 の「なぜシニアエンジニアは辞めるのか」と、Part 2 の「エンジニアの離職を止める経済的介入」という記事もあります。
https://codegood.co/writing/…
ああ、ありがとうございます。これも別トピックとして登録しました。エンジニアの転職を止める経済的介入方法
役員にこの記事が見られないようにできないかな…
まったくその通りですね
とても共感できる文章です。
共感します。
「世の中はどこも同じだ」
これは役員たちが見るべきなのに……
事実で本当に一つ一つ容赦なく叩いてますね…(笑)
めちゃくちゃ共感します。
we are the world