1チームをマネジメントするエンジニアリングマネージャー

1つのソフトウェア開発チームをマネジメントするエンジニアリングマネージャーについてのまとめ記事です。

エンジニアリングマネージャーとは

エンジニアリングマネージャー(EM : Enginnering Manager)は、技術的な知識や経験を持ったエンジニアのマネジメントポジションで、開発チームや開発メンバーをマネジメントして事業の成長に貢献していく職種です。

マネージャーはビジネスの成果や従業員のエンゲージメントに大きな影響を与える存在です。会社から開発チームやメンバーのマネジメントをする権限を与えられており、チームの最終的な成果に責任を負います。そのため、チームやチームメンバーがうまく成果を出せないときに改善に向けて動くのはEMの仕事です。

よくEMは「人のマネジメントをする」職種と思われがちです。しかし、人を中心にしつつも、今まで培った技術、プロセス、プロジェクト管理などのスキル・経験をフル動員してチームの成果を高めていくことが求められます。

エンジニアリングマネージャーの役割

EMの役割は主に2つあリます。

  1. 開発チームの成果を最大化する
  2. 開発組織をスケールさせる

「開発チームの成果を最大化させる」ために、チームの方向づけ、チームビルディング、技術的な課題解決のサポート、ピープルマネジメントなどを行います。

「開発組織をスケールさせる」ために、エンジニアの採用、配置、育成、評価についても実施します。

状況によるEMの役割の違い

EMの役割は、会社のフェイズやチームの置かれている状況によって変わってきます。

例えば、次のように状況によってEMに求められることは変わります。

  • 事業が急成長しておりエンジニアが足りない場合、エンジニアの採用や採用後のオンボーディングに注力する
  • チームの開発が遅れがちな場合、開発上のボトルネックを発見し改善をリードしてスムーズな開発ができるようにする
  • リリースした機能のバグが多い場合、バグの分析をして、短期と中長期目線でシステム品質を高める取り組みを推進する

求人票から見るEMの役割

EMの役割のイメージがつきやすいように、実際の求人票(2022年時点)からEMの役割をみてみます。

Google Cloud エンジニアリングマネージャー

プロジェクトの目標を管理し、製品戦略に貢献し、チームの開発を支援する。

  • ソフトウェアエンジニアのチームを管理し、タスクを計画し、コードレビューをおこなう
  • 技術プロジェクトを推進し、革新的でペースの早い環境でリーダーシップを発揮する
  • 技術プロジェクトの全体的な計画と実行を管理する
  • プロダクトマネジメントチームと協力して、高品質のプロダクトを構築する

Microsoft ソフトウェアエンジニアリングマネージャー

優れた技術力やピープルマネジメントとリーダーシップ、人を魅了するスキルを駆使してソフトウェアエンジニアのチームを率いる。

  • 3~8人のエンジニアのチームをリードする
  • チームメンバーをメンタリングし、成長とキャリア開発を支援する
  • プロダクトマネージャーと連携し、エンジニアリング分野全体で機能開発を主導し、優れたエクスペリエンスを提供する
  • 技術的な決定に対する監督、説明責任、リーダーシップを実施する
  • 他の製品やエンジニアリングチームとのコラボレーションをする

メルカリ エンジニアリングマネージャー プラットフォームグループ

組織の目標にそった長期的な目標とロードマップを構想し、メンバーのキャリア成長と採用によるチームのスケーリングをサポートし、プロセスを改善することで、チームの成果を高めることにコミットする。

  • プラットフォーム改善の長期的な目標とロードマップを構想し、実行する
  • 組織全体のインフラストラクチャの問題を解決するための戦略を提案する
  • チームが最高の仕事をできるようにプロセスを管理する
  • 四半期ごとのエンジニア成長の目標設定と評価をする
  • 定期的なコミュニケーションとフィードバックのために、直属の部下と 1on1 を実施する
  • 将来のキャリア成長を考慮して、エンジニアにプロジェクトと役割を割り当てる
  • 優秀なエンジニアを採用する

EMとしての役割を把握するテクニック

経験の浅いEMの場合、課題がわからない、何に注力すれば分からない、あれこれ行動するわりに成果が上手くだせないことがあります。

そういう場合は、上司と現状において求められる期待値やレベル感をすり合わせて、何に注力していくと良さそうかを話し合うことがとても大切になります。上司はマネジメント経験が豊かで立場上も視座が高くなるので、より適切なアドバイスをもらうことができるでしょう。

エンジニアリングマネージャーのしごと

エンジニアリングマネージャー(EM)の具体的な仕事内容について説明します。
EMの役割は「開発チームの成果を最大化すること」と「開発組織をスケールさせること」です。
ここでは、その役割を達成するために必要な仕事内容を中心にまとめています。

留意点として、ここに記載されている仕事内容を一度にすべて実施することはできません。チームの現状や目標から逆算して「今、自分は何に注力するべきか?」という逆算思考が大切になってきます。

ピープルマネジメント

ピープルマネジメントでは、メンバー個人の成功と組織の成功の両立を目指していきます。 個人の成果や成長を支援することで、チームの成果を持続的に高めていきます。

  • 1on1
    • 定期的に1対1のミーティングを実施して信頼関係を構築する
    • ティーチング、コーチング、メンタリングなどを通して個人の成功を支援する
    • 詳細についてはEMと1on1
  • メンバー理解
    • メンバーの理解を深め、信頼関係や親近感を構築する
    • 個人の理解が深まることで、より効果的なピープルマネジメントができる
  • キャリア開発
    • キャリアアップについて定期的に話し合い、実現に向けて支援していく
  • アサイン・委譲
    • キャリア、成長、成果のバランスを見つつアサインをする
    • また、実行権限を委譲して、メンバー成長やチームのスケールを促進する
    • 詳細についてはEMと委譲
  • 目標管理
    • 目標設定を通して個人と組織の目標の期待値をすり合わせる
    • また定期的に目標の進捗を話し合い、達成に向けて支援していく
    • 詳細についてはEMと目標管理
  • 動機づけ
    • モチベーションの向上や不安や不満の解消を進める
    • メンバーの成果や満足度が高まる
  • 成果支援
    • 優先度の整理、課題把握、課題解決などを支援してメンバーの成果を高める
  • 育成
    • メンバーと一緒に研鑽が必要な領域を探す
    • そして、挑戦する機会の提供やコーチングなどを通して成長を促す
  • フィードバック
    • 継続的にフィードバックをすることでメンバーの成果や成長を促す
    • 日頃からメンバーを観察し、具体的なフィードバックを与えていく必要がある
  • 評価
    • バリュー、成果、スキルの1次評価をする
    • 評価を通して、メンバーの気づきを促し、今後の方向性を考え、成長を促す

チームマネジメント

チームマネジメントは、チームをリードしてチームの成果や満足度を高めていくマネジメント手法です。
EMとしては、今までエンジニアとして培った技術やプロジェクト管理などのスキルや経験を活用しながら、チームビルディング、ロードマップの策定・実現、開発手法や開発プラクティスの導入・改善に関与することで、チームの成果を高めていきます。

  • チームの方向づけ
    • チームの目標を設定し、計画、体制、プロセスを策定・運用する
    • プロダクトマネージャーと協力し、ロードマップの策定・実現をリードする
  • チームビルディング
    • 心理的安全性が高く満足度が高い効果的なチームを形成し維持する
  • チームの成果を促進する
    • 生産性と品質の測定、開発プロセスや開発手法の導入・改善を行う
    • チームのボトルネックの排除や成果をだしやすい環境を作っていく
  • 社内ネットワークを広げる
    • 社内のチーム間の協働を促す
    • チームがより効果性を高めるための情報を集める

開発組織に対する貢献

組織開発自体は、CTO/VPoE、複数チームをマネジメントするEMが中心になって進めていくことが多いです。
その中で、1チームをマネジメントするEMは、組織の状況に応じて、採用や配置などを中心に組織開発に貢献することが多いでしょう。

  • 採用
    • エンジニアの採用に貢献することで、組織の成長に貢献する
  • 配置
    • 組織全体、チーム、個人のバランスを考えながら、適切な人材配置を提案する

エンジニアリングマネージャーのキャリア

多くのソフトウェア開発の企業では、ソフトウェアエンジニアのキャリアラダーとしては2つのパスがあります。

  • テクニカルトラック:技術を磨いてキャリアを高める(IC: Individual Contributerとも呼ばれる)
  • マネジメントトラック:マネジメントする対象を広げてキャリアを高める

エンジニアのキャリアラダーの例

テクニカルトラック

テクニカルトラックでは、技術的なスキルを磨いて影響力を広げていくことでキャリアを高めていきます。

  • エンジニア Ⅰ(ジュニアレベル)
  • エンジニア Ⅱ(ミドルレベル)
  • エンジニア Ⅲ(シニアレベル)
  • スタッフエンジニア
  • シニアスタッフエンジニア
  • プリンシパルエンジニア

マネジメントトラック

マネジメントトラックでは、技術的なスキルを土台にし、組織・チーム・人のマネジメントをしていきます。 その中で、エンジニアマネージャーはマネジメントトラックの入り口に位置しています。

マネジメントトラックでは、マネジメントする対象を1つのチームから複数チーム、開発組織全体と広げていくことでキャリアを高めていきます。

  • エンジニア Ⅰ(ジュニアレベル)
  • エンジニア Ⅱ(ミドルレベル)
  • エンジニア Ⅲ(シニアレベル)
  • エンジニアリングマネージャー(1つのチームを管理する)
  • エンジニアリングディレクター(複数チームを管理する)
  • VP of Engineering(開発組織全体を管理する)
  • CTO

カンパニー制事業部制などを実施するぐらいの組織規模になると、CTOやVPoEが事業ごとに複数いることもあります。

エンジニアリングマネージャーのなり方

EMになるには、マネージャーができるポジションがあることと、会社からチームをマネジメントできるという信頼を得る必要があります。

マネージャーができるポジションにおいては、エンジニアリングマネージャーは不足している傾向があるので、そういった環境を見つけるのはあまり難しくないでしょう。

会社からチームをマネジメントできる信頼を得るには、シニアレベルのエンジニアスキルを土台にしつつ、チームのマネジメントの実績を小さく作っていくことが大事です。

エンジニアリングマネージャーになるための4ステップ

ここでは、理想的なEMになるためのステップを説明します。

  1. シニアレベルのエンジニアのスキルと経験をつける
    • EMのキャリアラダーを見てもらうとわかりますが、EMになるには、シニアレベルのエンジニアスキルや経験が必要になります。
    • まずは、エンジニアとしてのスキルや経験を磨きます。
  2. 社内でエンジニアとしての成果と信頼をつくる
    • エンジニアとして成果をだし、会社や周りの人から認めれて信頼される必要があります。
    • 必ずしも社内でトップレベルのスキルが必要ではありませんが、上司やチームメンバーに人柄や技術で信頼されている状態をつくります。
  3. 可能な範囲でチームや人のマネジメントの実績をつくる
    • ここからは、明確に上司にEMになりたいと相談し、一緒に並走していきます。
    • メンター、チームリーダー、1on1などの役割を少しずつ上司から委譲してもらいます。
    • その結果として、会社、上司から「この人にならチームや人の管理を任せても大丈夫そう」という信頼と実績を得ます。
  4. マネジメントするポジションがある
    • 最後に実際にあなたがマネジメントをするチームがいることが必要です。
    • ここは、実力だけでなく運とタイミングもかなり重要になってきます。

補足:ピーターの法則と対策

ピーターの法則は、階層型の組織において、従業員はそれまでの成功にもとづいて出世していき、有能な人でも自分が無能なレベルになるまで出世してしまい、結果として組織の各階層が無能な人で埋め尽くされてしまうという法則です。

このピーターの法則の対策として、昇進先のポジションで成果がだせることが証明された場合にポジションを認める形で昇進をするようにします。
こうすることで、EMになるためには、EMの役割を積極的に引き受けることで、EMとしての実績づくりや昇進しても成果がだせそうということを会社やチームなどに示すことが有効です。EMにならないとできないこともありますが、EMになる前からもやれることはあるので、上司と相談しながら委譲をしてもらうとよいでしょう。