世界を動かす技術を、日本語で。

マイクロソフトでのシステム読書グループ運営の5年間

概要

  • Microsoft入社後、データベース関連の読書会を開始
  • 内容は進化 し、システム全般へと拡大
  • 継続性と柔軟性 が運営のカギ
  • 共同主催やゲスト招待 で活性化
  • 学びと人脈形成 が最大の収穫

Microsoft Systems Reading Groupの歩み

  • 2021年、 MicrosoftのAzure Databasesチーム に新卒入社後、数ヶ月で読書会を発足

    • 当初のテーマは データベース内部構造
    • データベースは コンパイラ構築、メモリ管理、ストレージ、アルゴリズム、ネットワーク など幅広いCS分野に関与
    • SIGMODやVLDBなど 活発な研究・カンファレンス も魅力
  • Cosmos DBの分散ストレージエンジン を担当

    • LSM-treeやB-tree、分散システムに日常的に関与
    • 同じ分野に興味を持つ仲間探しがきっかけ
  • 読書会の形式

    • 各自で論文を読み、1時間のカジュアルなディスカッション
    • 最初の論文は Algorithms Behind Modern Storage Systems
    • 続いてWiscKey、LLAMA、Haystack、Column-Stores vs. Row-Stores、Bw-Treeなどを選定
  • 運営の工夫

    • 論文提案→投票→読書・議論のサイクル
    • サイドチャネルで エンジニアリングブログや講演情報 も共有
    • インフォーマルな情報交換も大きな価値

読書会の進化

  • データベース以外の話題 へ自然に拡大

    • ストレージ論文から メモリ階層、レプリケーション論文から 合意プロトコル へと話題が派生
    • What Every Programmer Should Know About MemoryやPaxos Made Simpleなど 周辺分野 も扱うように
  • 2024年から ガイド付き読書シリーズ に移行

    • Stonebraker & Hellersteinの Red Book などを複数回に分けて精読
    • 文脈の積み重ねで 深い議論 が可能に
  • ゲスト招待 の試み

    • Niv Dayan氏によるDiva論文セッションを開催(VLDB 2025 Best Paper受賞前)
    • 著者参加 による議論の質向上
  • 2025年、 「Microsoft Systems Reading Group」 に名称変更

    • データベースを超えた システム全般 が対象に
    • 2026年テーマは データセンター基盤
      • The Datacenter as a Computerを通読し、サーバー、ラック、ネットワーク、負荷分散、電源、冷却、効率、障害などを学習

読書会運営の学び

  • 小規模・継続重視

    • 活発な時期と静かな時期があるが、 定期開催の維持 が最重要
    • 月1回でも必ず実施することが習慣と参加率を生む
  • スコープは自然拡大

    • 「データベース限定」に固執せず、 好奇心に従って話題拡大
    • 多様なチームからの参加者獲得
  • シリーズ形式が効果的

    • 一回限りの論文より、 連続テーマでの深掘り が有意義
    • 参加者間の 共通理解 と議論の深化
  • 主催者は専門家でなくてよい

    • 「一緒に学ぼう」という姿勢が 参加ハードルを下げる
    • 真のコラボレーション促進
  • 共同主催者の重要性

    • 複数人で運営することで 継続性を確保
    • どちらかが忙しくても活動継続
  • 未読でも参加しやすい工夫

    • 全員が事前読了していなくてもOK
    • 冒頭5分の要約 で参加障壁を下げる

読書会を通じて得たもの

  • 幅広い知識の獲得

    • メモリチップアーキテクチャからGoogleのコンテナスケジューリングまで多岐にわたる知見
  • 人脈の広がり

    • Microsoft内の エンジニア、研究者、科学者 との交流
    • 実務課題へのヒントや、興味深い会話のきっかけ
  • 知的好奇心を持つ仲間の存在確認

    • 同じ興味を持つ人が多いことへの喜び
  • 読書会立ち上げのすすめ

    • 深く考えすぎず、 まず論文を共有して声をかける ことが大切
    • あとは進めながら形を作っていけばよい
  • Microsoft社員向け案内

    • 参加希望者は aka.ms/msrg まで

Hackerたちの意見

こんにちはHN、私はMicrosoftで5年間、システムの読書グループを運営しています。何がうまくいったか(そして何がうまくいかなかったか)をメモしておきました。他の会社でエンジニアリングの読書グループを成功させた人がいたら、ぜひ聞きたいです!それと、私たちのリストに追加すべきお気に入りのシステム論文があれば教えてください!

面白いね。うちにはエンジニアリング文化がないから、無理だな。MSFT内で似たようなグループを見つけた?ちなみに、数週間前にこの論文[1]のことを聞いたけど、データベースとはあまり関係ないし、君たちのグループにはちょっと基礎的すぎるかも。[1]https://www.cs.fsu.edu/~awang/courses/cop5611_s2024/vnode.pd...

これは素晴らしいね、おめでとう!何年も前に、私の街でサイバーセキュリティの読書グループを始めようとしたことがあるんだけど、当時働いていたスタートアップが小さくて、みんなそのテーマに興味がなかったんだ。すごく初心者で、プロじゃない人たちが集まったけど、どこから始めるかで意見が合わなかったり、焦点をどこに当てるかもバラバラだった。ほとんどの人は要約を聞きたがって、私が期待していたような努力はしてくれなかった。長続きしなかったよ。でも、5年も続けてたくさんのことをカバーしたことに改めておめでとう!

面白くて価値のある論文を見つけるためのコツ、ありますか?

会社で本に特化した読書グループを運営することについて長い投稿をしたんだけど、君のグループは「Papers We Love」の章に近い感じだね。昔、サンディエゴの「Papers We Love」の章を共同ホストしてたんだけど、私の秘訣は、プレゼンター全員と事前に会ってリハーサルをすることを提案したこと。多分、プレゼンターの3分の2くらいがその提案を受け入れてくれたよ。リハーサルをすることで、グループとプレゼンターの両方にプレゼンの質が向上する効果があったんだ。私にとってのメリットは、いろんな人と1対1で話し合いながら学べたことと、資料を2回も確認できたこと。だから、もっと多くのことを学べたし、記憶にも残りやすかったよ。

研究所や学術界ではこれが一般的なやり方だと思うけど、私たちがいるような地味なコーディング業界では、どうやって時間を見つけるの?みんな空いてる時間に論文を読んでランチで話し合ったりするの?それとも、こういうことをサポートしてくれる理解のあるマネージャーがいるの?

地味なコーディングってどういう意味か分からないけど、私の雇い主は過去にこれをサポートしてくれたよ。いろんな会社で、大手テック企業やスタートアップなど。君の雇い主の方が例外なんじゃないかな。

いい質問だね。ほとんどの人は自分の時間で論文を読んで、ランチの時に集まるんだ。ミーティング自体は1時間だけだから、大きな時間のブロックにはならないよ。参加する人は本当に好奇心があって、こういうのを読むつもりだった人たちだし(時々、やる気を出すためにコミットメントが必要なだけなんだ)。グループがあることで、スケジュールに沿ってやる理由ができるんだよね。

これはすごく良い質問だね。私も、適切なワークライフバランスを保ちながら、同僚といろんなシグナル(論文や技術など)を処理する良い解決策を見つけるのに苦労してる。フルタイムのオタクになるか、置いていかれるかのどちらかだよね…。

SWEマネージャーとして言わせてもらうと、明確に「義務化」してるわけじゃないけど、学問的な形で自分の情熱や興味を追求することを強く勧めてるよ!私たちは存在するし、私だけじゃないと思う :) 私のチームは、タスクの合間に自然に1時間見つけることがほとんどだから、特に無理に押し付ける必要はなかったよ。

マネージャーに関係なく、ちょこちょこ30分を見つけてやってるよ。例えば、週に40〜45時間働いてるとしたら、実際に集中して生産的に働いてるのは20時間くらいだと思う。残りの時間からちょっと借りて、論文をパラパラ見るのは簡単だよ。

私の経験では、「戦略」に取り組む時間を見つけるのと似てる。明確に与えられる時間はないから、自分で日中に作らなきゃいけなくて、それが一番価値のある時間になることが多いね。

私が運営していたグループはランチの時間に設定してた。技術管理者は、時間オーバーしても、みんなが仕事の合間に資料を読んでても目をつぶってくれたよ。たとえ理解のある技術管理者がいても、こういうグループを正当化するために政治的な資本を使わせない方がいいよね。スタートアップの時は、私たちの理解のあるCTOに数百ドルの本を買ってもらうのは簡単だったけど、買収された後は、受け入れられない上司にその話をするのは誰にとっても無駄だった。

HackerNewsを訪れるたびに、2~3本の論文を読めると思うよ。私もそうだね。

オフィスで、しかもカレンダーに載ってるなら、問題になるとは思えないんだけど?(非公式の「読書グループ」で毎昼から午後までパブで楽しく過ごすのとは違って!)かなりのマイクロマネジメントとL&Dに反対する雇用主やマネージャーじゃないと無理だね。

こういうグループを運営した経験がある人の話も聞いてみたいな。今の職場で何回か試したけど、どちらも続かなかった。みんな指定された読み物をやらなくなって、参加しなくなっちゃった。こういうグループをどうやって続けるか、何かアドバイスがあれば教えてほしいな。

一度、ブッククラブを運営したことがあるんだ(「データ集約アプリケーションの設計」)。章を読んで、2週間ごとに集まる感じだったけど、実際は大失敗だった。参加者は多かったけど、他に本を最後まで読んだのは一人だけだった。ほんとにショックだったのは、その本が終わってから約1年後に、別のトピックについてまたリーダーをやるべきだと言われたこと。彼女は最初の本を終わらせていなかったのに、また別の本をグループに教えてほしいって?

私も会社で似たようなグループを運営してるんだけど(上にコメントしたよ)、私たちが早い段階で気づいたことは、全員が読む時間を持てるわけじゃないから、セッションにはドライバーやリーダーが必要だってこと。残念ながら、読書を割り当てるのはうまくいかない。多くの人が本業の傍らでこういうグループに参加してるからね。私たちオーガナイザー(少なくとも2人いるといいね)は、事前にプレゼンテーションやドキュメントを準備して、それをグループで発表するようにしてる。その間、グループはいつでも自由に議論したり、interruptしたりできる(オフィス内の少しカジュアルな場所を選んでる)。だんだん、10回くらいのセッションの後には、参加者から自発的に論文を発表したいという興味が見られるようになったんだ。正直、これは素晴らしい気持ちだったよ。だから、まずは興味のある共同オーガナイザーを見つけて、初期のセッションを自分で進めることをお勧めするよ。そう言っても、準備してるから、論文を選ぶのは自由だよ。共通の大きなテーマに関連する論文を選ぶと、人が集まることがわかった。最初は参加者が少ないけど、定期的なミーティングを重ねることで、常連が増えてくるよ。

そういう読書グループを見たことあるよ。アトラシアンで働いてた時に、読書グループがあったんだけど、印象としては、会社のためにICが頑張ってるって見せるためだけの低コストな企画だった。質もかなり低かったし、昼休みに参加することが期待されてた。ランチを持って行って、食事を楽しむ代わりに、同僚たちと狭い部屋に詰め込まれてサンドイッチや甘いソーダを飲んでるって、最悪の経験で、全く価値がなかった。

なんか雰囲気を壊すコメントだね、すごくネガティブ。

数年間、中規模のスタートアップとオープンソースコミュニティで読書グループを運営してたよ。グループはエンジニアだけじゃなくて、プロダクトマネージャーやデータパイプラインの専門家みたいな半技術職も対象にして、部門間の架け橋を作ったり、社内のリクルートを目指してた。そういう読書グループを運営することで、コンピュータサイエンスを専攻してなかったから得られなかった知識をたくさん身につけたんだ。読んだ本やMOOCは以下の通り:

  • Pro Git (Chacon) [3回]
  • Programming Language Pragmatics (Scott)
  • Calculus first semester (Coursera/OSU/Fowler)
  • Eloquent JavaScript (Haverbeke)
  • Learning Perl (Schwartz/Foy) [2〜3回]
  • Coding the Matrix (Coursera/Brown/Klein) [未完]
  • Object-Oriented Programming: An Evolutionary Approach (Cox)
  • Learning Core Audio (Adamson/Avila)

参加者のコミットメントはまちまちだった。無料のランチ目当てで来る人はいなかったけど(でも、無料ランチを用意するのは人を集めるためには必須だった)。多くの人が自分の野心に対してコミットメントが足りなかったけど、たくさんの人が活用して学んでた。一人の仲間は、全くの未経験から、2年で間違いなく最も生産的なICになって、最終的にはFAANGに入ったんだ。彼もディスカッショングループをリードすることになった。別の参加者はプロダクトマネージャーで、プログラミングの基礎を理解することでエンジニアリングとのコミュニケーションがずっと上手くなった。セッションは、参加者が持ち寄った質問を中心に進めてた — 私のモットーは「一緒に頑張ろう」だった。他の人が出す質問が好きだったけど、自分の質問もいつも十分にあった。こういうグループを運営する人へのアドバイスとしては、まずディスカッションリーダーが必要。グループをスムーズに進められる人で、教材を知ってる人がいるといい。大学のディスカッションセクションで良いTAがいるのと同じダイナミクスだね。次に、すべての障害を取り除くこと。会社が本を買ってくれない?そんなの関係ない、自分で買ったよ。会社がランチを手配してくれない?そんなの関係ない、みんなの分を自分で用意した。 (私たちのCTOはすごくサポートしてくれたけど、会社が買収された後は予算が通らなくなった)。グループを運営するためにかけた総額は数千ドルで、正式なコースに払った金額よりずっと少なかったけど、そこで学んだことは多かったよ。

わあ、コックスのオリジナルのObjective-Cの本?歴史的には興味深いけど、実用的にはあまり役に立たなかったんじゃないかな。たとえ日常的にObj-Cを使っててもね。それでも、初期のオブジェクト指向の時代の面白いアーティファクトだし、オブジェクトのライブラリを集積回路に例えたのも面白かった。

うらやましいな。25年もクソみたいなフレームワークを追いかけてきたけど、そんなところには到底近づけないよ。今はちょっと近づいたけど、あまり変わらない。もしやり直せるなら、正直言って最初の仕事に応募して生活を支え、その後こういう深い仕事に応募し続けるかな。お金もいいかもしれないけど、面白さのためだけだね。あのDCOMとかSOAPのクソみたいなことは今や無価値だし、ほとんどの技術は複利にならないから。

同意するよ。私は自由な時間を使ってこういうテーマに深く潜ってるけど、仕事でこの知識を有効に使うのは難しい。深いテーマの仕事市場は入りにくいよね。

5周年おめでとう!私はZalando(ヨーロッパのeコマース)で似たような論文読書グループを運営していて、1年以上にわたってそのグループを運営してきた経験を最近共有したんだけど、たくさんの共通点があって嬉しいよ。私たちは分散システム、ソフトウェア工学、プログラミング言語に関する論文を中心にして、論文で議論された概念の応用についても広くカバーするようにしてる。ブログ投稿には、似たようなグループを始めたい人のための「青写真」も含まれてるよ。年間を通してミートアップを推進してきたのは、私たちが2人のオーガナイザーで、プレゼンテーションを準備して自分たちで話題を進めているから(事前に読む時間がない人もいるからね)。形式も会話形式でオープンにしていて、Armaan(op)が共有したことにとても似てる。最近の実験の一つは、ベルリンシステムグループとコラボして、私たちの組織外からの参加者を迎えるイベントをベルリンで開催したこと。イベントに参加するために集まった小さなグループを見て、とても嬉しかったよ!