valid,invalid

関心を持てる事柄について

Facebookにおけるエンジニアリングマネジメント (Inside Facebook Mobile ep.5)

Inside Facebook Mobile という podcast の以下のエピソードが面白いと @hotchemi さんから教えてもらったので聞いてみた。

pca.st

Inside Facebook Mobile について

この podcast のことはよくわかっていないが、上述の放送回は Facebook の London オフィスで働く Balazs 氏が彼のプロジェクトや経歴・現在の仕事について話す回だった。

50分ほどのエピソードのうち後半(28:45あたり以降)はまるまるエンジニアリングマネジメントについて語っており、印象に残る点が多かった。

メモ

ホストの2人が質問して Balazs 氏が答えていくスタイル。なので質問を見出しにして回答や語られたことを箇条書きでメモした*1

How do the transition happen?

  • もともとやりたかったこと。キャリアの早いうちにマネジメントぽいことを少しやっていた。
  • 仕事で人を助けることに興味がある
  • 一方コーディングも大好きなのでマネジメントの仕事をするかどうかは迷った
  • 最初は半年ぐらいマネジャーをやって、その後はいちプログラマに戻ろうかと思っていたが、そうならなかった
  • 思ったよりハマった

  • Facebookではマネジャーになることはプロモーションではない

  • マネジャーはサポートする役割

マネジャーと技術

マネジャーになるということはコードを書くのをやめるということ?テクニカルバックグラウンドがなくてもマネジャーになれる?

  • テクニカルバックグラウンドなしにマネジャーにはなれない
  • Facebookのマネジャーは全員スーパーテクニカル
  • ミーティングのリード、チームの方向性を決めるのはマネジャーではなくシニアエンジニアの役割
  • マネジャーとして最も大事なことの一つはエンジニアのサポート
  • テクニカルリーダーというより人々のサポーター

テックリードとマネジャーの違いは?

  • 良い例がある、今の自分のチームにシニアエンジニアがいて、チームのことは全部彼女がやっている
  • ミーティングのファシリテーション、チームのミッションづくり、ロードマップ作成、チームメンバーの技術面での成長のために1-on-1もやっている
  • 私はガイダンスを行ったり、オフサイトをやったりとか…(笑)

1-on-1のスタイルは?

  • 人によってぜんぜん違う
  • 大事なのはhave it consistently、マネジャーが助けられるように問題を話してくれるとか、そういう信頼を築くため
  • weeklyで全員とやっている
  • 常にお願いしていることは、1-on-1はエンジニア(メンティー)のための時間
  • 内容はキャリア開発、テクニカルな議論、現状の共有など

良いマネジャーに必要なスキルは?

  • 大きな誤解の一つは、良いマネジャーであるには良いエンジニアであること、というもの
  • ぜんぜん違う専門性、エンジニアキャリアの延長線上でもない
  • とはいえエンジニアの専門性があることは、メンバーの話を理解したり共感するために大事
  • one of the key things is empathy
  • good communication skills
  • エンジニアの成功で幸せを感じることができるか
  • いちエンジニアとして以前はhigh achieverだった
  • あれもこれもリリースできた!でも自分は何もやっていない!
  • そんな状況でも思ったより喜べた、というのが印象深い

どんなトレーニングがある?

  • 内部トレーニングがいっぱいある
  • (Balazs氏が所属するLondonオフィスでは)マネジャーになったときはトレーニングがぜんぜんなかったんだけど、マネジャーになってから1年後にできたので受けてみたらすごく良かった
  • 1年前に欲しかった〜、既に知ってることだ〜

マネジャーになるプロセス

  • だいたい、organic
  • チームに入って、自然とテックリードになって、マネジャーに相談したり、という漸進的な流れ
  • エンジニアがマネジャーになるのを助けるトレーニングプログラムがある、半年ぐらい

Facebookの外からマネジャーとして入社することはある?

  • マネジャーの採用計画はある
  • しかしとても経験豊富な人しか採用しないし、技術にも明るくなければいけない
  • マネジャーへのインタビュープロセスはエンジニアに対するものとほぼ同じ
  • ホワイトボードコーディングテストもある、でも現時点でどれだけコードを書けるかというより最盛期にどれだけだったかを測る
  • これはとても難しいことがある

フィードバック

  • オープンなフィードバックを行うカルチャーは自分がFacebookに残る理由
  • 誰もが誰もに深みのあるフィードバックを送る
  • フィードバックの仕方に関するトレーニングがある
  • performance feedback every half year
  • マネジャーはフィードバックをそれぞれのエンジニア、カスタマー、パートナー、同僚などから集める
  • マネジャーは改善すべきこと、何にフォーカスするかを考える
  • ときにはオープンで厳しいフィードバックをすることもあるが、これをいかに効果的に行うか学ぶことができる
  • これは4年間で最も自分を変えたことの一つ
  • 今ではフィードバックを貰うのを心待ちにしている
  • ときには厳しいフィードバックを自分も受けたことはあるがとても有意義だった
  • フィードバックは他人を打ちのめすものではなく成長を助けるものと理解
  • Facebookの良いところは、受け取ったフィードバックに基づいて何を改善するかをマネジャーと一緒に考えるところ
  • マネジャーからの一方向でなく双方向で送り合うのが本当に良いカルチャー

良いマネジャーになるには?

エンジニアにとっての成長は最新の技術をおさえたり、たくさん機能を作ったり改良したりすることが挙げられる

  • エンジニアリングの分野ほど急速に変化はしないけど大切なことを学ぶ
  • 脳のはたらきとか社会のはたらき、抽象的な事柄
  • 読書したり、最新の情報を漁ったり、コミュニケーションに関するスキルについていかに小さくても学んだり
  • こうした学問は、たとえば何も話してくれないメンバーと向き合うとか、マネジャーとしてとても役に立つ

チームの目標・ロードマップ

  • Facebookはとてもボトムアップな会社
  • 強くて賢い人を雇ってミッションを見せる、あとは何をするかは各々に見つけさせる会社
  • エンジニアが解決すべき問題を見つけてマネジャーやチームと議論する
  • 皆で「最もインパクトが大きいやるべきこと」を話す
  • 入社してマネジャーに自分のキャリアや強みを話したら、マネジャーからは「それじゃあ何やりたい?」
  • 何をしたいかを決めると同時に、それがベストな選択であると示すことも各自の責任になっている

いま挑戦していることは?

  • かつては自分の行動や自分が達成したことに対してresponsibleだった
  • 今はチームの成功に対して責任を持っている
  • 自分のゴールはインパクトをもたらすようなdeliverが自律的にできるチームを作ること
  • チームに「○○をしろ」と言うことはできない
  • 有能な人を連れてくるのもマネジャーの仕事
  • (エンジニアからマネジャーになっての)マインドセットの変化は大きく、チャレンジング
  • Facebookにはたくさんのスモールチームがあり、誰もが好きなことをできるので百のスタートアップの集合みたいになっている
  • 他のチームがやっていることをちゃんと把握してコンフリクトしたり被ったりしないようにするのはマネジャーの仕事であり、これもまた挑戦

Further more

"Facebook Engineering Management" とかでググると他にも情報が出てくるので知りたい人は読んでみると良さそう。

www.facebook.com

www.quora.com

Facebookでの Engineering Manager ってどんな感じ?」という質問に対して、management は人やチームによって大きく変わるので唯一の答えはなさそうだ、という回答。

podcast で語っていたような「社内に100のスタートアップがある」とか、社内のチームによって働き方が全く違うというのに真実味がある。一方、マネジャーが何に対して責任を持つかは不変的だということも書いてある。

www.glassdoor.com

Glassdoor には従業員からのレビューが載っている。Pros にも Cons にもワークライフバランスが挙げられており、これもチームによって全く違いそう。

*1:ちなみに私はリスニングにだいぶ自信がないので正確な内容を知りたければ podcast 本家を聞くことをおすすめする