ハクソク

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

エンジニアリングマネージャーにならないでください

概要

  • エンジニアリングマネージャー(EM)昇進の是非についての議論
  • 現在のキャリアパスや組織構造の変化
  • EMとIC(Individual Contributor)の報酬比較
  • 技術進化とマネージャーの役割変化
  • 最終的なキャリア選択は個人の価値観次第

エンジニアリングマネージャー昇進の是非

  • 友人がEngineering Manager(EM)への昇進を打診され、辞退を検討
  • 以前は「絶対にチャレンジすべき」と勧めていたが、今回はデメリットも考慮
  • EM経験は貴重だが、管理職キャリアを目指さない場合は慎重な判断が必要
  • AIコーディングツールの進化で、エンジニアの働き方自体が大きく変化
  • EMになると実験や技術習得の時間が減少し、技術的な成長機会が限定

組織構造とキャリアパスの変化

  • 企業のフラット化が進み、EM以上のポジション(Senior EM, Director, VP)が減少
  • Amazonなど大手でIC-to-manager比率が上昇、管理職枠の競争激化
  • EMからの昇進は「より多くのエンジニア管理」が条件だが、ポスト不足
  • **IC(個人貢献者)**としての卓越した技術力は、より高い評価と報酬に直結

報酬と市場価値の比較

  • EM昇進による報酬アップは限定的で、Staff EngineerなどIC職の方が高待遇例も多い
  • スタートアップなどではSenior/Staff EngineerのオファーがEMより20~30%高いケース
  • 業界全体で、優秀なICの需要は今後も高まる見込み

マネージャーの役割と将来性

  • 経験豊富なEMで技術に手を動かし続ける人材は今後も価値あり
  • 技術トレンド追従は難しいが、マネジメントスキルは引き続き重要
  • 何よりも「自分が楽しめるか」がキャリア選択の最重要ポイント

キャリア選択のアドバイス

  • 現時点ではICトラックをおすすめ
  • 数年後、状況が落ち着いてからEM昇進を検討するのが賢明
  • ただし、「本当にやりたい」という直感があれば、挑戦も選択肢
  • James Stanierの「ラダーが消えたときに何をすべきか」記事も参考推奨

関連リソース紹介

  • Gergely Oroszの「Even fewer middle managers and more flexible teams?」など業界分析
  • Gregor Hohpeの「Being an architect isn’t the sum of skills. It’s the product」
  • Sahar Carmelの「The Product Velocity Paradox」など、現代の組織課題に関する記事

Hackerたちの意見

タイトル(特に「テック」関連)がほとんど無意味だと感じるのは、私だけじゃないよね?「シニア」、「リード」、「プリンシパル」、「スタッフ」といった役職の定義は、組織によって全然違うから、重複が多すぎるんだよね。私自身もそういった役職に呼ばれたことがあるけど、正直なところ違いが分からない。場合によっては、「シニアバックエンド開発者」としての責任の方が「スタッフエンジニア」よりもずっと重かったりするし。最近、CTOやエンジニアリングマネージャー、テックリードなどの役職でいくつか面接を受けたけど、重複が多すぎて、ほとんど同じに見えるよ。6人から1万人以上の企業で働いたことがあるから、いろんな役職を見てきた。
タイトルは全然意味がないよ、あなたの言う通り。でもほとんどの組織では、ICトラックとマネージャートラックの分かれ目があるから、OPの主張は議論の余地があるけど、全く馬鹿げているわけではないよ。
特定の会社内では、これらの役割はしっかり定義されていると思う。大手テック企業では、プリンシパルエンジニアはシニアよりもずっと高いレベルで意思決定に影響を与えるし、シニアは自分のチームの外ではあまり目立たないからね。そしてエンジニアリングマネージャーは、チームをサポートしたり評価したり、代表したり、目標の調整を手伝ったりする役割だよ。
あなたの役職名は、あなたがプロとして誰であるかを示す重要な部分を含んでいるよ。価値は、単一の組織内よりも、組織間でずっと大きい。もし長い間同じ場所にいるつもりなら、あまり重要じゃないかも。実際に物事がどう動いているかを理解するチャンスがあるからね。知っている人にシニアアーキテクトがいて、会社ではみんな彼をそう呼んでいるけど、実際の役職名は「プロジェクトテクニカルリード」みたいな感じなんだ。20年や30年そこにいて、深呼吸のメティスを追い求めるつもりなら、役職名はあまり重要じゃないよね。私は同じキャリアの見通しを持っていないから、役職名は私にとって重要なんだ。私はそれについて積極的に交渉しているよ。私の役職は「シニアDevSecOpsエンジニア」。略語に対する批判はさておき、これは私が得意なこと、まあまあできること、他の人に頼んだ方がコストパフォーマンスが良いことをすぐに理解できるように示しているんだ。脆弱性管理やCI/CDパイプラインのセキュリティにはかなり自信があるけど、スパム対策のロジスティック分類器の重みを最適化するのは得意じゃないかも。などなど。
ICのタイトルが重要な理由は2つあるよ:報酬とパフォーマンスレビュー。大きな会社では、スタッフとシニアのRSUの量がかなり違うこともあるしね。スタートアップだと、株式が無価値で給料もあまり変わらないから、あんまり関係ないけど。パフォーマンスレビューでは、タイトルが評価基準を決めるけど、実際にはマネージャーがカーブを合わせてから基準に戻ってくることが多い。だから、3か4に決めて、弱い部分を選んで評価を下げるんだよね。現実的には、同じ仕事をしても、交渉や経験、前職によって、低いレベルで働いているのに給料が少ないこともある。VPやディレクター、Cレベルに入ると、組織ごとに独自の階層があるけど、責任のレベルが上がるにつれて結果に対する責任も増える。政治的な側面もあるけど、大きな組織間では大体同じようなものだよ。
「プログラマー」、「ソフトウェアデベロッパー」、「ソフトウェアエンジニア」なども同じだよ。実際には違いがあるって主張する人がいるけど、俺は全部やってきたけど、違いなんてなかった。
他の人も言っているように、レベルやタイトルは一般的に報酬やパフォーマンスレビューのためのものだよ。各社には独自の階層があるけど、一般的には次のように進む: - L1: 学部卒のインターン - L2: 大学院卒のインターン - L3: ジュニア - L4: 中堅 - L5: シニア - L6: スタッフ - L7: シニアスタッフ - L8: プリンシパル - L9: ディスティングイッシュド - L10: フェロー 各社には独自の数字や名前があるけど、だいたいこんな感じで進んでいく。階層が上がるにつれて影響力や範囲も広がる。L5やシニアは通常「終端」の役割と見なされる。つまり、すべてのエンジニアはこの役割に到達できるべきだってこと。頭打ちの人はL5に到達できないと管理されることになる。スタッフ以上は通常「特別」な役割で、イニシアチブを推進することが期待されていて、単にコードを書く以上の何かを持っていることを意味する。プロダクトやビジネスに影響を与えることができる。ディスティングイッシュドやフェローは非常に稀。大手FAANG企業では、こういったエンジニアはほんの数人しかいない。業界全体に影響を与えるようなことを成し遂げたことを意味するんだ。例えば、map-reduceやDynamoDB、Kubernetesを発明したような。
愚痴:しばらくシステムエンジニアをやってたけど、純粋なソフトウェアエンジニアではなかった。実際のエンジニアで、ナットやボルト、空気圧、アンプ、ボルトなんかを扱ってた。多くの会社でそのタイトルが使われていて、職務内容はかなり多岐にわたっていたけど、タイトルはかなり厳格だった。でも、テクノロジー業界が「システムエンジニア」というタイトルを使いたいと思ったんだ。理由は悪くなかったと思うけど、自分の役割に合った仕事を探すのがほぼ不可能になった。UnixだのWindowsだの。確かに、仕事でUnixシステムも使ってたけど、機械システムを制御するための小さなサーバーだったし、何億ものリクエストを処理するような巨大なラックではなかった。それに、ソフトウェア系のシステムエンジニアとしてキーワードに引っかかって、仕事のスパムも来るようになった。いつもエントリーレベルの役割ばかり。うんざり!なぜソフトウェアがUnixサーバーエンジニアやPython統合エンジニアみたいな、もう少し具体的なタイトルを使わなかったのか?俺の専門分野を侵食しないでほしかった。まあ、愚痴はこれでおしまい。
> 本当に組織による。 これが全てだね。タイトルは組織内で一貫して順序付けされるべきだけど、他の組織からは持ち運べない。これは、キャリアの初めにいる人たちに何度も説明しなければならなかった教訓だよ。数十万ドルをテーブルに置いておくことになるかもしれないオファーを選ぶ際に、他の会社がシニアエンジニアのタイトルをくれるからそれが重要だと思っている人からアドバイスを求められたこともある。採用の際、タイトルは基本的に無視される。MicrosoftやGoogleのようにレベルシステムが公に知られている会社から来た人でない限り。俺は「プリンシパルスタッフエンジニア」や「CTO」と名乗る人たちをたくさん面接したけど、平均的な会社ではシニアエンジニアとしてもぎりぎりの人たちだった。俺たちのチームの誰よりも経験が豊富で知識が少ない「シニアソフトウェアエンジニア」も面接したことがある(それはかなり言ってることだ!)。採用マネージャーはこれを知っているけど、たくさんの採用をしたり、いろんな会社で働いたことがないと分からないことだよ。
うちの組織では、タイトルを上げない限りインフレ率以上の昇給はないよ。長年働いているのに、達成可能なタイトルのレベルが少ないから、給料のゲートキーピングの一環かもしれないね。
幅広いばらつきがあるけど、過去10年間で「タイトルインフレ」がかなりあったと思う。これは、株式パッケージをこれ以上引き伸ばしたくない人たちにインセンティブを与えるためだと思う。
この分析には、業界や企業を考慮していない大きなギャップがあるね。エンジニアリングマネージャーは非常に一般的な役職だから、スタートアップ、大手テック、小規模テック、エンタープライズ、契約会社など、いろんなところに当てはまる。スタッフエンジニアはエンタープライズや契約会社ではあまり見かけなくて、そこでよく見るのはSWE 1/2/3 -> テックリード -> アーキテクトだね。ほとんどのテック企業は、SWE 1/2/3 -> スタッフエンジニア -> プリンシパルの流れが多いと思う。もう一つのポイントは、エンジニアリングマネージャーは終着点のポジションで、20年間マネージャーをやっていてもディレクターやエグゼクティブには昇進しない人も知っている。これは競争が激しくて、数学的に見てもほとんどの人は上に行けないんだよね。これもシニア -> スタッフやプリンシパルにも当てはまるけど。だけどエンジニアリングマネージャーのポジションは、エンジニアよりもボーナスやインセンティブの面で上昇の可能性が高いことが多い。結局、これはキャリアの変更でもあるから、それが一番考慮すべき要素だよ。
> エンジニアリングマネージャーのポジションは、エンジニアよりもボーナスやインセンティブの面でメリットがあることが多い。 そんなことないよ。スタッフエンジニア以上は、ボーナス込みでエンジニアリングマネージャーと同じくらい稼げるし、仕事の移動も多い。ほとんどのEMの役割はスタッフに昇進しないと開かないから、実質的には責任が増えて長時間働くことになるのに、給料の影響は微々たるものだよ。エンジニアリングマネージャーの仕事はなかなか見つからないし、実際には個人貢献者よりも仕事の安定性が低い。自分のせいじゃないのにイニシアチブが遅れたら、営業が自分たちを守るために血を求めてくるから、EMの首が差し出されることになる。
ちょっと違うかな。ほとんどの会社では、マネージャーは「内輪」の人たちとして見られて、技術者はただの労働者扱いだよ。マネージャーはもっと多くのコミュニケーションにさらされるから、可視性が高くなって、他の人よりも賢い人のように振る舞えるんだ。彼らは力を持つだけでなく、情報も多く得られるんだよね。
もしそれを知らないなら、マネージャーに向いているのかな?あなたは「マフィア」に入るわけで、それが意味することは良くも悪くもあるよ。
同意するよ。彼らはもっと情報を持っていて、可視性も高いから力を持っているし、xyzに関する深い技術的知識が不足している分、オフィスの政治で補っているんだ。
ラインマネージャーは最も代わりがききやすいし、俺の経験では組織内で力がない人たちだよ。以前、プロダクト企業でICとして大きなイニシアティブをリードするために雇われた時、俺の条件の一つはディレクターかCTOに報告することだった(スタートアップの場合)。スタートアップが成長してEMを雇った後も、CTOは俺がEMに報告しないようにポジションを作ってくれたんだ。
議論としては、* テクノロジーから離れるのは悪いタイミングだってこと。マネージャーとしての役割は「最高の技術者」になることじゃないからね。もちろん、急速に変化する能力を理解する必要はあるけど、今は人を管理しているわけだから、求められるスキルは違うよ。* ラダーは非常に競争が激しい。常に競争があるし、俺の経験ではその逆だった - VPレベルの技術的役割は、VPの人事マネージャーよりもずっと少なかった。* 給料が低い(シニアマネージャーとシニア技術トラックの比較)。これも俺の経験とは逆だな(第一線のマネージャーレベルを除いて、給料は同じくらいだった)。俺が働いていたところでは、マネージャーは責任が増えるとすぐに給料も上がった。人を管理するのは実際にはあまり楽しくないと思ってたから、そう思ってたんだ。マネージャーにならない最大の理由は、_まったく別の仕事だから_。マネージャーは技術的に有能である必要があるけど、管理スキルは人や政治に関することが多い。もしそれが自分に合わないなら、マネージャーにはならない方がいいよ。
個人貢献者から管理職に移行することで失う仕事の移動性を過小評価していると思う。現実には、EM以上の仕事は非常に少なくて、仕事の安定性も厳しい。EMとSWEのどちらを解雇するか選ばなきゃならないとしたら、まずEMを解雇するよ。なぜなら、代わりを見つけるのは簡単だし、個人貢献者やPMにその責任を分けることができるから。EMが解雇されたり、レイオフされたりすると、次の役割を見つけるのは非常に難しいし、本当に終わりのポジションになる。解雇されたEMやディレクターを雇う理由はないし、社内で昇進させたり、ネットワーク内から誰かを雇った方がいいから。さらに、俺がSEだった頃、契約がうまくいかなかったら、自分たちを守るためにEMを責めて、CROに首を差し出すことができた。熟練したSWEなら、PMの要求が不明確だったと主張できるし、PMは営業とプロダクトが調整されていたと主張できるのに。
同意できるか分からないな(俺はICからマネジメントに移ったけど)。平行な道を見てみて。VPは大体、特別なエンジニアと同じレベルだよ。VPになるには、素晴らしいマネージャーであることと、いくつかの大きなプロジェクトで運が良くないといけない。DEになるには、業界内で有名である必要がある。大きなテック企業を見てみると、VPはそんなに多くないけど、DEの数は片手(もしくは二手)で数えられるくらい。スキルセットが全然違うんだ。お金やキャリアの進展で役割を選ぶべきじゃなくて、自分がやりたいことに基づいて選ぶべきだよ。特にAIが「退屈な」仕事を取って代わる時代だから、残るのは自分の仕事に情熱を持っている人たちだけだと思う。
> 「この1年の変化のペースは完全にクレイジーで、止まる気配がない。」 > 「でも、常にFOMOに屈しなくても、私たちの働き方が変わっていないとは言えない。」 > 「ほとんどすべての仕事の部分が違って見えるし、これからも進化し続ける。」 > 「私の経験は逸話的だけど、これは大げさに思える。」 > 「ほとんどの仕事の部分は数年前とほぼ同じに見えるし、今のところ変化の範囲は比較的小さい。」 > 「AIツールを採用することを推奨する人たちから聞いた議論のほとんどは、ツールの改善速度が指数関数的(または超指数関数的、なんでもいいけど)であるというもので、これはどう変わるかの予測であって、すでに必要なレベルに達しているという主張ではない。」 > 「私はその予測を他の誰よりも評価する専門知識はないけど、もし私が極端な例外でない限り、私たちの仕事のすべてがすでに変わったと主張するのは大げさだと思う。」
そのコメントを見て、そのアドバイスをした人がどれくらいテック業界で働いてきたのか気になった。俺の予想では5年未満だと思う。別に皮肉を言ってるわけじゃないけど、大学のようなアカデミックなCSの環境から来ると、業界では学ぶことがたくさんあって、5年経ってもまだ知らないことが多いかもしれないよ。
これを読んでいて、エンジニアリングマネージャーになりたいと思っているなら、長期的にどうなりたいか考えてほしい。マネージャーになりたいと思っている開発者が、次の避けられないステップだと思っているのをよく見てきたけど、実際の人事管理や人の管理の部分に備えていないことが多い。ディレクター以上に昇進すると、実際のエンジニアリングよりもエンジニアリングの周りのタスクが多くなることが多い。情報を整理したり、会議に出たりすることが多いんだ。マネジメントをしたいと思っていた開発者がピーターの法則の犠牲になっているのをたくさん見てきた。理想的なタイトルに「昇進」しなくても、開発者でいることに何の問題もないよ。もしその仕事が好きで、働いている場所に耐えられるなら、俺たちの分野のほとんどの人よりも先を行っていると思うよ。
これ。EMはプロダクトロードマップ(プロダクトマネジメント)や基盤の実装(エンジニアリング)を所有しない終着点のポジションだ。彼らは主に納品と実行を担当するけど、組織がプログラムマネージャーを雇うことに興味を持たなくなったからだ。
今、エンジニアリングのすべての仕事が変わっている。マネージャーも例外じゃない。俺は20年近くEMをやってきたけど、この時代にどう適応したいかをよく考えている。マネジメントからのスワップを真剣に考えたのは初めてだ。著者が言っている理由とは違って、以下の理由からだ。 - 仕事が変わっている中で他の人を指導する自信があまりない - 仕事をもっと楽しんでいる - EMは、変化の時期に存在意義を正当化するのが難しいことが多い AIの世界でもEMは必要だろうけど、彼らが毎日何をするのか、どう機能するのかは不明だね。
できるだけ個人貢献者としてやっていくつもりだよ。23歳でチーム管理に一歩踏み出した時は、すごく勉強になった。
給料の部分は間違ってるよ、リンゴとリンゴを比べてるわけじゃない。俺はGoogleや他の会社でスタッフエンジニアをやってたし、EMや大企業、小企業でのシニアICも経験してる。もし君がすごく優秀なICなら、少数の良い会社でたくさん稼げるし、逆にあまり良くないマネージャーなら、他の多くの会社でも似たような額が稼げる。だから、報酬に関して考えると、もし優秀なICなら、年収100万ドル以上を支払ってくれるところに行くべきだよ。それが無理なら、マネージャーになるべきだね。