KAKEHASHI Tech Blog

カケハシのEngineer Teamによるブログです。

Engineering Managerという役割がなぜわかりづらいのか

カケハシでVP of Engineeringをやっています、ゆのん(id:yunon_phys)です。僕はEngineering Manager(EM)とは何かについて、かれこれ5年ぐらいEM.FMというPodcastや、ブログを通じていろんな発信をしてきました。そうすると色んな質問を各所から受けるわけなんですが、一番聞かれる質問第一位は、「結局EMって何する人なんですか?」 です。一口にEMって言っても、なんか人によって得意な領域が違っていたり、大事だと思うポイントがバラバラなので、この疑問を持つのはそりゃそうだよなあ、とは思います。というわけで、このエントリーではEMは何する人なのかを明らかに・・・と思ったのですが、一言で語るのはやっぱり難しいなと思っています。なので、なぜ僕がEMという役割を説明するのが難しいと思っているのか、を書いていきます。

マネージャーの本質はチームの足りてないことを埋める役割

manageという言葉は、元々イタリア語の「馬を馴らす」ことを意味するmaneggiareから来ています。この意味から転じて、「物事をうまく扱うこと」を意味するようになったそうです。

私のこれまでの経験上、マネージャーはチームや組織でいろいろ起こること・起こるであろうことを、うまく対処している人が良いマネージャーとされていました。チームや組織に在籍している人がどんなに素晴らしいスキルセットを持っていたとしても、そのパフォーマンスをいつも出せるとは限らないし、人間のやることなのでどうしても抜け穴が出てしまいます。あるいはチームメンバーが突如抜けてしまい、業務が回らなくなってしまうこともあります。そういったある種のチームや組織のボラティリティを、仕組みでカバーしたり、採用でカバーしたり、教育でカバーするのがマネージャーの仕事です。言ってしまえば、チームや組織の安定剤としての役割を担っているとも言えます。ライフネット生命保険の元代表取締役の出口治明さんは、強い組織になるためには尖った人が必要で、その隙間を埋めるのがマネージャーの役割だと述べています

これらのことから、マネージャーの一種であるEMは、開発チームの成果を安定化させる(継続的に最大成果を出すと言って良いかも)ために、メンバーの持っていないスキルを埋める役割として機能していることが大事だと言えます。

状況によってEMの課題解決内容が変わる

EMがチームの穴を埋める役割だということは、その穴がチームの状況やチームごとに変わってしまうということを意味します。 開発をしていく上で、設計、機能開発、コード品質の担保、監視、CI/CD、テスト、開発プロセスの最適化、非機能要件の策定など、多方面に渡って気にしなければいけません。開発のそういった多くのやらなければいけないことの中で、チームで今発生している課題やこれから発生するであろう様々な課題に対して、EMは発見して解決していきます。このように課題解決の対象が多岐に渡るため、EMとはこれを解決する役割だ、となかなか語りづらくなってしまいます

EM自身で解決できないチーム課題は、より一般的なマネジメントスキルが必要になる

一方で、EMは全方位に渡って、深いスキルセットがあるとは限りません。従って、EMがチームの課題解決をしようとしたとき、そもそもその課題解決のスペシャリティ(技術力)が必ずしもあるとは限りません。持っていない場合は、一時的な穴埋めでしかないので、技術力のある人をがんばって採用します。あるいは、今いるメンバーの教育補助をしてメンバーに埋めてもらうという手もあります。いずれにせよ、EM以外でなんとかしようとする場合は、そのための予算を確保したり、成果が出しやすくなるように環境づくりなどをすることになります。

このように、チーム課題への直接的な価値貢献から離れるほど一般的なマネージャーとしての活動になり、そのためのスキルセットが必要となります。こうなると、「EMって普通のマネージャーと何が違うの?」という疑問が出てきてしまいます。

EMと一般的なマネージャーに対して、私の頭の中ではこのように整理しています。

技術課題が大きければ大きい程、開発のスペシャリストとしてのスキルセットが要求され、直接的にチーム課題を解決していくことが要求されます。一方で、メンバー構成や文化によって、技術課題がメンバーである程度やれるようになってくると組織課題の比重が重くなり、一般的なマネージャーとしてのスキルセットが要求されるようになります。

EMの強みが今存在している課題を解決出来るだけのスキルセットを持っているときは非常に頼もしい存在になり、チームが良い方向に向かっていきます。逆にEMの強みが今の課題を解決できない場合は、チームが不安定になってしまいます。従って、EMは広い知識体系を身に着けておき、何かが来たときにとりあえずなんとか打ち返せたり、防御出来るようにしておくのは大事です。

EMは組織のコミュニケーションハブである

カケハシのEMはチーム課題を解決するだけでなく、組織活動を推進して、会社全体を同じ方向にする役割を担っています。例えば、会社方針の浸透、人事評価、採用・広報、労務管理、ヒト・モノ・カネの管理などを行います。

人が増えれば増えるほど、コミュニケーションパスがO(n2)のオーダーで増えていくので、コミュニケーションコストが急激に増えていきます。このため、会社はチームというチャンクを作り、チーム間のコミュニケーションをハブ役を介して行うようにします。しかも、このハブ役は情報を整理して伝えるので、正確性は無くなるが情報量は減らせるので情報伝達スピードを速めることができます。

しかし、チームが増えれば増えるほど、結局コミュニケーションコストが増えてしまいます。そこで、組織構造を作り情報の流れを統制することでコミュニケーションコストを抑えていきます。

従って、EM(というかマネージャー)は組織が大きくなればなるほど、チーム間のハブ役もそうだし、レポートラインを通じて組織の情報を行き渡らせる役として機能していく必要があります。

EMは情報対称性も同時に気にする必要がある

しかし、EM(マネージャー)がハブ役になったら全てOKなのかでいうと、そういうわけではないです。EMがハブ役として機能すればするほど、SPoF(単一障害点)になってしまいます。なので、EMが休んでしまうと、その間チームが孤立してしまうことになります。

情報の非対称性が起きやすくなるので、情報を持っているEMが過剰に権威を持つことになります。そうすると権威勾配が働き、意見を言いづらい組織になってしまいます。

ハブ役が情報を削除しすぎてしまうと、大事な情報が失われてしまう可能性もあります。

そういうこともあって、情報対称性はやっぱり大事なんだということになります。一方で情報が多すぎると、その把握のコストが高くなってしまいます。こういうこともあり、全体の情報量をどう適切に回遊させるかは、組織的な課題でもあるし、EMの課題もあると言えます。

チームの課題はEMの解決すべきことなのか

ここまでEMがチームの課題をなんとか解決する存在と書いてきました。EMが課題に対するaccountabilityを持っているのは間違いないですが、responsibilityはEMを含めチームメンバー全員にあると思っています。私がこれまでEMをやってきて思うのは、メンバーが代わりに課題解決をしてくれるのは本当にありがたい、ということです。

既に示した通り、EMはいろんなことに目を向けてやっていく必要があり、現場に近い課題が無くなるほど、より広い視点に立った課題に着手できます。EMもそれに甘えてばかりいるのは良くないのですが、メンバーも是非EMを助けていただけるととてもありがたいだろうなーと思います。

EMの役割がわかりづらいなら本人に聞いてみれば良い

本エントリーでEMがいろんな役割を担っていることを書いてきました。しかもそれは状況によって変わるし、一般的なマネージャーのような動きもやっていたりして、とても外からはわかりづらいことも示しました。

EMが何する人なのかがわかりづらいのであれば、EM本人に何が課題だと思うのかを是非聞いてみたらどうでしょうか。もしその課題がピンと来ないのであれば、是非EMにフィードバックして、本当に解決すべき課題がこれではないかと提示してみてください。EMも意外とフィードバックをもらう機会が少なくて、EMから喜ばれるかと思います。