CTOやVPoEと違いEMには再現性がある

こちらはEngineering Manager Advent Calendar 2023 12日目の記事です。

こんにちは、Isoparametric(Yuki Tamura)といいます。
今回はEMはCTOやVPoEの下位互換ではないということについて書きます。

私は今estieというスタートアップでEMをしております。
前職では不動産テックのCTOをしていて、その前はスマートニュースという会社でEMをしてました。
その前は、ディライトワークス、gumiという会社でCTOだったりしたこともあります。
それが何故またEMをという感じですが、入社の経緯などは、会社のブログの方にありますので興味があれば読んでみてください。

CTOを辞めて各社のCTOや最強のエンジニアが集う梁山泊estieに入社した理由 - estie inside blog 

では、CTO/VPoEとEMの互換性/再現性についてなのですが、
皆さんはEM(Engineering Manager)というとどんなイメージを持つでしょうか?
「マネジメントのキャリアパス」「CTOやVPoEの下で働くマネージャー」といった感じでしょうか?

「EMのキャリアパスはEMのEMになって次はVPoEだよ」などという話を聞いたことがあるかもしれません。
まるで、EMはVPoEやCTOの下位互換のように扱われていますが、最初に言ったとおりそれは違います。
なぜなら、EMにはCTO/VPoEとは異なり高い再現性と互換性があるからです。

CTO/VPoEとEMの違い

晴れてCTOの肩書きを手に入れたとして、CTOやVPoEの集いに顔を出せばわかる通り、それぞれの会社で求められているCTOやVPoEの役割というのは大きく違ってきます。
CTOという肩書きでも実質的にはテックリードだったりしますし、メンバーがいないVPoEなんていうケースだってあります。
逆に現場には一切関わらない上意下達だけをする存在ということもあるでしょう。
しかし、EMはそうではなく「どこにいても役割は大きく変わらず再現性がある役割」なのです。

何故かといえば「EMの責務は、チームのアウトプットを最大化すること」だからです。
もちろん、CTOもVPoEもマネージャーロールではありますが、彼らが見ている単位は「チーム」ではなく「組織」です。
「組織」という単位は非常に曖昧で、その数も形も一定ではありません。

しかし、EMは違います。
「高いアウトプットを出せるチーム」と限ってしまえば、その定義は比較的明確に定まるからです。

では、どういうことか説明していきましょう。

生産性の高いチームの定義

「生産性の高いチーム」を生み出したい場合、EMはおおよそ6~8人のエンジニアをマネジメントする必要があります。それが1チームの適性人数範囲だからです。
もしこれ以上のエンジニアをマネジメントすれば、業務過多になりチームやチームの責務に積極的に関わることは難しくなりますし、少なければチームとして機能しにくくなり出力も限られます。
例えば、私は最大23名のレポートラインを持っていたことがあり、それらのメンバーは4~5のチーム(プロダクト)に跨がって関わっていたので、どのチームを主軸にして良いか分からなくなりました。(マトリクス型組織だったのもあります)
また、それぞれのチームに対して新しいメンバーをアサインするために採用を行わなければならないため、採用のニーズは4~5倍になりどうしてもチームに対する関与が薄くなります。

勿論、スタートアップは常に変容する生き物のようなので一時的にこのような大人数を引き受けることも合理的な判断なのですが、長く続ければ将来的には必ず組織的負債を抱えることになります。

マネージャーはチームを拡充し開発力を最大化しなければならないので、チームを8人から10人くらいに成長させ、やがてこれを半分の人数に割るということを行います。
ただ、考えもなしに成熟したチームに対してそんなことをすれば、チームの生産性は台無しになると言っても過言ではありません。
また、頭数だけを揃えたチームを半分にしても生産性はでないでしょう。

スタートアップが「EMが必要です!」と言っている場合、それは「組織を成長させたいから」に他なりません。
「組織を成長させたい」というのは単に「頭数を増やしたい」ということではなく、「生産性の高いチームを複数生み出して、必要なことを同時にやりたい」ということですから、1人のマネージャーが大量のメンバーを引き受けて、それを分割していくようなやり方では絶対にうまくいかないのです。

チームにも状態がある

そもそも、チームには「状態」があります。
例えば、あるチームは常に「人手が足りません」と言っていますし、よくいるPdMたちは「新しくやりたいことがあるんだ」と言いますし、長く所属したエンジニアは「技術的な負債が大変なんです!」と言ったりします。
こういう状況が複雑に絡み合った状態がチームには常に存在しています。

ただ、これらのチームが目指していることはたった1つで「安定的に高い生産性を発揮すること」であり、「新しい機能に取り組みながら、技術的負債を返済し、ユーザーに向き合うためのゆとりが欲しい」と言っているわけです。

残念ながら、物事はそう理想通りに動くことはありません。

チームが「人が足りない!」と悲鳴をあげている状況の時、EMは「自分もコードを書くよ」といってチームに飛び込むべきではなく、あくまでも俯瞰して症状を適切に把握し、戦術的にチームが適切な状態になるように状況を導くことが必要になります。
では、いくつかの症状を見てみましょう。

そもそも人が足りていないチーム

チームが与えられた仕事を十分にこなせていないときは、そもそも人が足りていない可能性があります。この人が足りていないというのは人数だけでなく、必要なスキルセットの人がということもあります。
勿論、単純にやり方が拙いということもありますから、良い人を「採用する」「他のチームから人を移動させる」ことが常に最適解とはなりません。
EMは状況を正しく把握し、足りない人材(メンバーなのか、リーダーなのか、それとも特殊なスキルなのか、の)適切なJDを書き、必要なHC(ヘッドカウント)を確保して、チームの拡充に舵を切るべきなのです。
そうでなければ、いずれ誰かが辞めることでチームが崩壊してしまうでしょうし、いつまで経っても高い生産性など得られる筈もありません。

人数がいる筈なのにチーム

では、人数が既に6人〜8人いるチームはどうでしょう。それぞれのスキルセットを見ても、決して悪くないようです。
しかし、チームの話を聞いてみると「既存の仕組みが良くない」などの声があがったりします。
「技術的な負債がありすぎて、ちょっとしたことをするのにも凄く時間がかかるんです!」と泣きつかれることもあるでしょう。
「○○さんにお願いしないと物事が進まないんです!」なんてこともあります。
これもよくある症状で、アウトプットを出したくてもボトルネックが凄くてブレーキをべた踏みしながらアクセルを吹かしているようなことになっています。
このような状態で闇雲にチームに人を追加してもさらに空回りをするだけですから、EMはチームの優先順位を整理する必要があるでしょう。
もし、技術的な負債が原因なら「新規開発を完全に止めてでも負債の返済に集中するべき」なのかもしれませんし、「チーム外から常に何らかのタスクが割り込んでくる」ようであれば、その露払いをしなければならないかもしれません。
もしくは、「チーム内でブリリアントジャーク(優秀だけど周囲に悪影響を与える人)が暴れている」なら、その人を諫めるのかチームから外す必要があるでしょう。

そこそこうまくいっているチーム

時に何の文句もないチームというのもあります。
このときにメンバーは「何も問題はありません」と答えたりしますし、傍目にもやるべきことはないように思えますが、そうではありません。
チームが一定以上の十分な生産性を有している時は、マネージャーは「新機能の開発」と「技術的負債の返済」のバランスを保つ必要がでてきます。
もしくは、「育成」や「成長」、「挑戦」のバランスをとる必要があるかもしれません。
このような状態は安定しているように見えますが、問題が無いチームというのはほとんどなく、単に「うまくいっているように見えるだけ」かもしれません。
ある日突然、テックリードが「成長を感じられないから辞めたい」と言い出して、突然慌てる羽目になるかもしれないからです。
このような不意打ちを食らわないためにも慎重に見極める必要があります。

チームが完璧に機能している!

いやいや、うちのチームはモチベーションが高く挑戦もできているし、負債も溜まってない。
本当に最高の状態なんだ、ということがあるかもしれません。
この場合にマネージャーは何かをする必要がないように見えますが、実際にはチームを維持し続けるために水面下で様々な努力をする必要があるでしょう。
何故かと言えば、問題はチームの中だけにないからです。

有事に備える

EMはどれだけチームが機能していても決して油断してはいけません。
突然CTOやVPoEが「組織改編だ!」「レイオフだ!」と叫び出すかもしれないからです。
勿論、ビジネス側の都合で「プロジェクトAはもう止めだ、チームは解散する」なんてことが起こりえたりもします。
こういう寝耳に水の事態に備えるのもまたEMの仕事です。

EMがチームをマネジメントしているのとよく起こるのが鶴の一声です。
力のあるCEOが突然「○○という機能を月末までにリリースするぞ!」と言い出したりします。
こうなったら大変です。チームを解散するとまではいかないまでも、タスクフォースいう名の下のチームのエースが招聘されたり、先月まで最優先だと言われていた機能の開発が止まったりと、すべてのチームが大混乱に陥ります。
勿論、EMにこの鶴の一言を覆すような権限はありませんから、やれる対策としては「備える」ことに他なりません。
また、CTOと話をしてチームを守ることを検討できるかもしれません。
「最近のCEOは何を考えていますか?」と訪ねることで事前に予測ができるかもしれませんし、いざ起こってしまった後でも、「うちのチームから○○は出せません。なぜなら、今○○がチームから離れたら主軸となっている××の開発は確実に遅れますし、それが他のチームにとっても大きなブロッカーになります」などと直談判に向かうことで全体の崩壊だけは避けられるかもしれないからです。
このように様々な内的要因、外的要因によってすべてのチームは常に危険にさらされていますから「チームを最大パフォーマンスで動かし続けられる」企業は存在しません。
この危ういバランスをとっているのはEMという仕事なのです。

意図しない人員追加に対応する

上記のような危険なことが起きなかったとしても、あなたが成長する企業で働いている場合、CTOが突然言い出すかもしれません。
「新卒採用をしよう!」「インターンをやろう、どっかに受けいられるチームくらいあるだろう?」「もっと人が必要だから外国人採用をしよう」
こういう時に「もう人はいりません」「いまは難しいです」などと断るのもEMの仕事です。
「人が追加されるんだったら嬉しいでしょ?」と思うかもしれませんが、嬉しいのは「組織の都合」であり「チームの都合」ではありません。
チームが「組織の都合」に振り回されればやがて疲弊し、輝きを失っていきます。

要するに成長する組織からチームを守るのも立派なEMの仕事なのです。

EMの仕事はCTOやVPoEが命じた通りにチームに対して大鉈を振るうのではなく、そのチームがいかにすれば最大のパフォーマンスを維持できるのかを常に考え続けることなのです。

CTO/VPoEとEMの違い

ここまで話してきた通り、EMは常に「チームファースト」であるべきです。
自律性が高く持続性があり高い生産性を出せるのは「チーム」という単位であり、このチームという単位のパフォーマンスを維持しつつさらに向上させるのがEMの責任です。
このチームに人を入れるのも、チームから人を抜くのも、もしくは2つのチームに分けるのも本来はEMの判断次第ということになります。
しかし、人には人の人生があり時にライフイベントによって退職を決意したり、チームの移動を願い出られたり、新しいテックリードの擁立を余儀なくされることもあるでしょう。
いついかなる時にどこからチームに脅威が忍び寄っているかは分からないのです。
それに常に警戒し続けるのがEMの仕事です。

そして、CTO/VPoEはこの視点を持てないことがほとんどです。
なぜなら、視座も違えば解像度も違うので、チームの細やかな内情など考慮に入れることが難しくなってきますから。

適切な評価を与える

また、CTO/VPoEと異なりEMだけに与えられたさらなる苦難があります。
それは、チームに対して適切な評価を勝ち取ることです。
多くの企業においてEMは評価者でありますが、最終的な評価決定者ではありません。
よって、自身のさじ加減によってチームの評価を良くするということはできず、チームの評価はCTOやVPoEから勝ち取る立場なのです。
特に、EMが苦労するのはチームが"keeping the lights on" (灯りを点し続ける)と呼ばれるような地味な仕事をしている場合でしょう。
「今期、君のチームは何も新機能をデリバリーしてないから」と低評価をつけられようとしているチームがいたとしたら、EMは必死で「そうではないこと」を立証しなければならないのです。
実際に「灯りを点し続ける」というのは偉大な仕事であり傍目に何も変わっていないように見えても、そんな筈はありません。
現実世界だって、灯りが燃えるには燃料が必要なことくらい誰にだって分かるでしょう。
時にチームは灯りを吹きすさぶ風から守ったり、それがもし消えてしまった時に備えていたり、より明るく広範囲を照らせるようにしていたり、様々な努力を重ねています。
ただ何もしていないのに、そこに灯りが燃え続けることはありません。
そして、それを知りうるのもCTOやVPoEではなくチームをマネジメントするEMなのです。

最後に

自分はEM(エンジニアリング・マネージャー)だけれどもそんなこと考えたことがない、という人もいるでしょう。
それは、おそらく所属している企業自体の変化がとても緩やかだからです。
そういう意味では環境が違えばEMには互換性がなくなってしまうように感じるかもしれませんが、私はそうは思いません。
学び続けているEMはどこの企業でだって高い再現度でチームをマネジメントすることができます。

スタートアップは半年や1年で社員数が倍増することが多く、1年ごとに別の会社になった、と感じることも少なくありません。
要するに、気がつけばやってきたことはすぐ古くなってしまうのです。
であるが故に、多くの学びがありますし、その濁流の中でそれに飲み込まれないようにチームが成功することを助けるのは最もやり甲斐のある仕事の1つだと私は思っています。

急成長する組織の中でチームをうまく支えるというのは、「銀の弾丸」を見つけるような仕事ではなく、小さく成功を積み重ねていく地道な道しかありえない仕事です。
この地味さ故に実際にはEM自身が"keeping the lights on" という仕事に最も近く、大変苦労する要因でもあるのですが、それだけにEMが正しく理解されることを願ってやまないのです。