メルカリのエンジニア全員が集まるEngineering All Hands(定例会議)の立ち上げと改善

Mercari Advent Calendar 2020 の16日目です。

本日は、Engineering Officeでエンジニア組織のエンゲージメント向上に取り組んでいる@afroscriptがお送りします。

※参考:Engineering Officeはこんなチームです。

TL;DR

メルカリのエンジニア組織では、2020年7月より毎月定例で、社内の全エンジニア数百人が一同に集まる「Engineering All Hands」という全体会議を行っています。(それ以前にも不定期の開催はありましたが、定例となったのはこのタイミングからです。)

本記事では、この全体会議を始めた背景、立ち上げ時のよもやま話、実際に運営してみて発生した課題やそれをどう乗り越えてきたかを、なるべく細かく泥臭く書いていきます。

同様なシチュエーションに試行錯誤している方、これからエンジニア組織の全体会議の開催を検討している方などの参考になればと思います。

Engineering All Handsとは?

(Mercari JP) Engineering All Handsとは、月に1度、メルカリJPに所属するエンジニア全員が集まる場です。

「メルカリJPに所属するエンジニア」が対象ですが、希望者は誰でも参加でき、イベントの録画ビデオも閲覧できるようになっています。

※社内では、このようにある単位の組織全体が集まる場を「All Hands」と称しています。 例えば、「JP All Hands」(=メルカリJPの全社員が集まる場)や、「EO All hands」(=Engineering Officeのメンバーが一同に集まる場)などがあります。

※参考:メルペイのEngineering All Handsの紹介記事はこちら

Engineering All Hands開催の背景と目的

メルカリのエンジニア組織は、現在数百名の規模にまで成長してきましたが、今後のさらなる拡大に向けて下記のような組織Visionを掲げ、その実現に向けてさまざまな取り組みを行っています。

しかし、VisionそのものやVison実現に向けた組織全体の取り組みを理解/浸透させていくことは、人数規模の拡大とともに難易度も格段に上がってきました。また、メンバーごとのVisionの認知度や解釈への濃淡のばらつきが起きていました。

そういった状況を踏まえ、「各メンバーが技術経営層(CTOやVPら)の考えや想い・組織全体の動きを確認したり、自身の懸念点を解消したりする場」、そして「Visionに向けたすばらしい動きや成果を出した人/チームをみなで賞賛し、Visionへの歩みを加速させる場」としてEngineering All Handsを定例開催していくこととしました。

なお、目的を明文化したものは下記となります。

<Engineering All Handsの目的> ①Visionの実現に向けて、エンジニア組織の取り組み、および、技術経営層(CTOやVPら)の考えに対する透明性を高め、組織の一体感を強める ②エンジニア組織のVisionを体現したチーム/個人を賞賛し、会社がどのような行動を評価しているかの方向性を示す

また、ゴールを次のように設定しております。

<Engineering All Handsのゴール> 各回の開催後に、エンジニア組織メンバーが、コンテンツを納得度高く理解し、ワクワクしている状態

第1回目の開催

最初の開催に向けてフォーカスを当てたのは「対話」です。

先に述べたように、当時は、組織のVisionや組織の取り組みについて、メンバーごとの認識や解釈が揃っていないという状況でした。

そこで、Visionについての説明や、技術経営層(CTOやVPら)が現状や未来についてどのようなことを考えるかを伝えるのはもちろんのこと、その内容に対してしっかりと対話する時間を十分に確保することが重要と考え、Go Boldに90分間の開催時間を確保することとしました。

(数百人のカレンダーを90分抑えるのは、なかなかに足がすくむ思いだったのを記憶しております…。)

そして、後半の半分はすべてQ&Aタイムに当て、話した内容に対する意見・不明点をどんどん出してもらい、オープンディスカッションの場としました。

■第1回の主なコンテンツ

  • OKRについて(前QのOKRのふりかえり、次のOKRやそれに対する計画)
  • Visionの説明やそこに込めた思い
  • 各技術経営層(CTOやVPら)が目指すエンジニア組織像
  • その他各種お知らせ
  • Q&Aタイム

第2回目の開催

さて、第1回目を終えてどうだったかというと、端的に言うと「対話時間が足りなかった」でした。

トータル90分確保していたにも関わらず、会の終了時間ギリギリまで質問が来ており、すべて回答することができなかったのと、また、会の最後に行ったアンケートでも「Q&A時間が足りなかった」「ここをもっと詳しく説明してほしい」等の声が多数寄せられていました。

そこで、第2回も同様に90分の開催時間を確保し、「対話」にフォーカスを当てることとしました。

また、第2回で伝える内容は、第1回のSurveyで寄せられた「もっと説明してほしい」という要望が多かったポイントを中心に説明を行いました。

結果として、第1回と比較し、Survey結果はかなり向上しました。(Survey内容やNSATについては後述)

Survey_result

定性コメントも概ねポジティブなものが多く、Visionに対する認識合わせについてはこの2回で大きく前進できたのではないかと思われます。

Outstanding Work (第3回目~)

さて、このあとも都度伝えるべきことを毎回選定して、会の中で発信はしていくのですが、もともとの目的に立ち返ると、これまでのコンテンツでは①のみしかカバーできていません。

<Engineering All Handsの目的>

①Visionの実現に向けて、エンジニア組織の取り組み、および、技術経営層(CTOやVPら)の考えに対する透明性を高め、組織の一体感を強める

②エンジニア組織のVisionを体現したチーム/個人を賞賛し、会社がどのような行動を評価しているかの方向性を示す

そこで、②をカバーすべく第3~4回にかけて新たに開始したのが「Outstanding Work」というコンテンツです。

「Outstanding Work」とは、エンジニア組織のVision実現に向けたすばらしい動きや成果を出したチーム・人を、“Outstanding Work”としてEngineering All Handsで発表し、みなで賞賛するコーナーです。

選出〜発表までのフローは下記のように行っています。

  1. CTO / VPs / Directors が推薦したメンバーから成る“Outstanding Work committee”を結成(さまざまなチームから15名ほど)
  2. 毎月のEngineering All Handsの約1週間前までにエンジニア組織の全メンバーから、“Outstanding Work”のRecommendationを募る
  3. “Outstanding Work committee”のメンバーによるディスカッションを行い、そのRecommendationを審査基準に照らし合わせながら“Outstanding Work”を決定
  4. Engineering All Handsにて、“Outstanding Work”としてピックアップされたチーム・人を発表

CTO / VPs / Directorsなどのマネジメントラインの上層部が選ぶのではなく、現場メンバーでCommitteeを結成し最終決定を行っているのは、“Outstanding Work”は「みなで称賛しあう」ものであるため、現場目線での活躍に光を当てることを意図してるからです。

その他のコンテンツ

さて、ここからはその他に行っているコンテンツを紹介していきます。

Incident Report

これは過去1ヶ月に起きたIncidentについて共有する時間です。

どのようなIncidentが起き、その原因は何だったのか、それによりどのような影響があったか、毎月のMTTA(Mean time to acknowledge an incident)やMTTR(Mean time to resolve an incident)の時系列変化等をみなで確認することで、今後の開発にどう活かしていくか、どのように再発しない仕組みを作っていくかの共通認識を持ちます。

Welcome New Members / New EMs

「Welcome New Members」とは、新しくエンジニア組織にジョインしてくれたメンバーにEngineering All Hands内で自己紹介をしてもらうコーナーです。

自己紹介スライドとともに30秒ほどのスピーチを行ってもらい、(Slack上ですが)みなで全力でWelcomeワイワイをします。

なお、その際の自己紹介スライドは、「New members Book」と称したものに全てまとめており、過去の新メンバーをいつでも一覧で見れるようにしています。

また、新しくEngineering Managerとなったメンバーにも、スピーチをしてもらう時間を確保しています。

このように新メンバーのオンボーディングや、新RoleのオンボーディングとしてもEngineering All Hands活用しています。

Announcement枠とShort Announcement枠

Engineering All Handsでは、誰もが発表やお知らせをすることができる(発表申し込みフォームをオープンにしている)のですが、コンテンツが長くなりすぎないように、Announcement枠とShort Announcement枠の2つの枠に分けて運用しています。

<Announcement枠>

  • JPのエンジニア全員に大きな影響があり、全員or大多数の人が何かしらのアクションを必要とするもの
  • 基本的に発表時間は4分以内

<Short Announcement枠>

  • JPのエンジニア全員or大多数に関わること
  • 概要(目的、サマリ、重要ポイントなど)と詳細リンクのみを発表
  • 発表時間は1分以内、基本的にはスライド1枚

1分&スライドの1枚のみの発表となる"Short Announcement枠"を設けることで、社内イベントの告知などのちょっとしたお知らせも気軽にできるようにしています。

運営面の工夫

運営面での工夫点についても、3つほど紹介していきます。

盛り上がりタイム

現在ほとんどのメンバーがリモートで働いているため、Engineering All Handsもオンラインでの開催となります。

そのため、Slack上での盛り上がりは必須 of 必須です。後半のQ&AタイムもSlack上で質問を投稿してもらう設計としていたため、Slack上で気軽に思ったことを投稿できる雰囲気づくりが重要と考えました。

そこで、会の冒頭に「盛り上がり練習タイム」を入れるようにしています。

みんなでワイワイするチャンネルを作成し、そこで「とにかくなんでもいいから投稿してね!」といった流れです。

waiwai_time

この「盛り上がり練習タイム」は現在も続いていて、毎回「好きなマンガを投稿しよう」や「お気に入りの国はどこ?」など気軽に投稿できるテーマを用意していて、MCがその投稿を読み上げたりツッコミを入れたりして盛り上げるようにしています。

多言語対応

メルカリのエンジニア組織では、現在約半数ほどが外国籍メンバーであり、Engineering All Handsで行われるプレゼンやアナウンスも、日本語・英語どちらでも行われます。

通訳は、社内のGOTというチームが対応してくれるのですが、両言語が混在した会でもスムーズに内容を理解してもらえるよう、通訳の聞き方スライドや言語の切り替わりスライドを随所に用意しています。

通訳の聞き方スライド

また、毎回メイン言語を切り替えるようにしており、基本的には日本語でプレゼンを行う回、英語で行う回を交互に開催しております。

Engineering All Handsの効果測定

現状はイベント後にSurveyを実施し、効果測定と改善サイクルに活用しています。

現在のSurveyの設問内容は下記の通りで、これはEngineering All Handsの目的とゴールを元に設計しました。

<定量設問> ※Strongly disagree ~ Strongly agreeの5段階評価

Q1. 技術経営層(CTO, VPs)の考えを理解するのに役立ちましたか? Q2. エンジニア組織全体の動きを把握するのに役立ちましたか? Q3. これからのエンジニア組織にワクワクできましたか?

<定性設問> Q4. 全体を通してよかった点 Q5. 全体を通して改善が必要だと思う点 Q6. 今後やってほしいコンテンツや取り上げてほしいトピック

定量質問は、回答が4以上の割合が80%を超えることを一つの目安としつつ、その割合とともに毎回のNet Satisfaction (NSAT = 回答が5の割合 – 回答が3の割合 + 100)の変化で時系列比較も行っております。

定性データは、具体的な改善点の抽出や次回以降のコンテンツ設計の参考として活用しています。

これからのEngineering All Hands

半年をかけてコンテンツを調整していった結果、現在のおおよそのコンテンツのフレームワークは下記のようになっております。

  • OKRの進捗確認
  • Incident Report
  • Announcement & Short Announcement
  • Welcome New members / New EMs
  • Outstanding Work
  • Q&A time

これをベースに、今後の改善ポイントとして考えているのは次の3点です。

①コンテンツのコンパクト化

Engineering All Handsはかなりの大人数が集まる場であり、それにかかるコストは非常に大きなものです。

それゆえ、コンテンツは”みなで同期的にシェアすべきもの”だけに絞るべきだと思います。

…と意識してかなりコンテンツを絞ったり、1つ1つのコンテンツの時間を絞ったりしているものの、やはり回によっては時間が大きく押してQ&A timeがほとんど削られることや、コンテンツが盛りだくさんになりすぎることも起きています。

そのあたりをうまくコントロールをできる仕組みづくりは大きな課題だなと思っています。

②おカタい会でなく楽しい会に

①のような課題感もあり、タイムテーブルを圧縮すると今度は「つまらない」「機械的な会に感じる」といった感想も出てきてしまい、”当たり障りはないが特に楽しくはない会”になってしまいがちです。

そこで、例えば、各コンテンツの合間にバッファを設けて会全体の雰囲気に余裕をもたせたる&MCが盛り上げる余白をつくるといったことや、後半にワイワイと楽しくやれるような任意参加コンテンツを提供する、といったことを考えています。

が、もちろんこれは①とバッティングする点も多く、しばらく試行錯誤を繰り返すことになりそうです。

③運営のコンパクト化

定例イベントの運営は、地味なタスクやルーティンワークが多々発生します。(例えば、似たような告知や諸連絡を毎月行うなど)

これまでも可能な部分は簡易化/マニュアル化してきましたが、おおよそのコンテンツの型ができてきたので、自動化等を今後より推進していくのも重要な改善ポイントです。

まとめ

本記事では、メルカリでのエンジニア組織の全体会議の立ち上げからその後の改善実例をまとめました。

まだまだ改善点は多々ありますが、下記2点においてEngineer All Handsを定例で開催することは非常に有用だと思います。

  • CTOやVPレイヤーで普段話している内容を組織全体に共有できる
  • 組織の取り組みや各種意思決定に対して、より詳細なコンテキストを伝えることができ、それに対する意見交換を行える

また、半年をかけて大枠のイベントのフレームワークはできましたが、これは組織の規模やフェーズによって、何が最適かはコロコロ変わるものであろうことは容易に想像できます。最適なコンテンツも変わるでしょうし、むしろ全体会議という方法自体が合わなくなることもあるでしょう。

ですので、ここで紹介したのは、メルカリという会社の現時点での組織運営というあくまで限られた条件での1つの実例ではありますが、似たような境遇にいる方や、似たようなことを考えている方の参考になれば幸いです。

我々の組織も今後さらなる拡大とともに、都度ゼロベースで考え続け、よりよい組織運営の仕組みを作り上げていければと考えています。