🎉

Go Conference 2024でスピーカーとスタッフとして参加した話

2024/06/17に公開

2024/6/8に開催された Go Conference 2024 に参加しました。スピーカーとしても登壇し、スポンサー班のスタッフとしても運営のお手伝いをしました。

感謝と振り返りの気持ちで体験記を書いてみます。
どちらも初チャレンジだったのでフレッシュな記事になると思います。

参加したきっかけ

コミュニティの良さ

勉強会への参加が、本カンファレンスの参加に影響しています。
去年は5つの勉強会に参加し、そのうち1つは『Go言語100Tips』[1]輪読会を自ら社内で主催しました。

そこで "興味のある人同士で好きなことを発表し合う良さ" を強く実感しました。

これを "コミュニティの良さ" と呼ぶことにします。
具体的には、出会い、シナジー、人脈、発見、といったものを含みます。
ただ完全に列挙できるものではなく、出会ってから自然発生的にわかるものが多いと経験的に思います。

これらの経験から、特に深いことを考えず「コミュニティはいいぞ」と思うようになりました。

カンファレンスに関わろう!

そのころ、ちょうどX(ツイッター)でGo Conference運営の募集がありました。

「カンファレンスに関われば、コミュニティの良さをより享受できるのでは?」という素直な考えで応募しました。

https://twitter.com/haruyama480/status/1749458750271095225

できるなら登壇もしたいなと思い、セッションにも応募しました。

結果、運営と登壇どちらも参加できました🎉

どちらも人生初のチャレンジだったので、運に恵まれたと思います。
(今回の「一期一会」というコンセプトに助けられた説もある)

運営と登壇についてそれぞれ書いていきます。

初めてのカンファレンス運営

運営に興味なければ「初めての登壇」まで飛ばしてください。

下調べ

カンファレンス運営には様々な班があり、自分は スポンサー班 に振り分けられました。

参加が決定したはいいものの、カンファレンスの経験が皆無だったので正直心配でした。

なので、

  • 社内でカンファレンス経験のある人に1on1してもらったり
  • 過去のカンファレンスの話を調べたり(スクラップ)

しました。直接意味があったかわかりませんが、なんとなく想像力がつきました。

お手伝い

心配もありましたが、なんとか3月から6月のイベント当日まで貢献することができました。

主に、協賛いただいたスポンサーさんが気持ちよくイベントに参加いただけるように、様々な確認やメールでのやりとりを担当しました。

他スタッフの方にいろいろ聞いて回ることもありましたが、どなたからも迅速にレスポンスいただき、とても感謝しています🙏

当日は受付や搬出のお手伝いをしました。
文化祭のような楽しさがあったので、気づいたら終わっていました。

よかったこと

主には以下です。

  • Goが好きな人と交流できた
  • イベントを無事終えるという成功体験が得られた
  • すべてのイベント運営に深い感謝を感じるようになった
  • 運営上の学びがあった

運営上の学び

運営上の学びについて深堀りしてみようと思います。

具体的には、以下のコミュニケーションのプラクティスを得ることができました

  • コミュニケーションルールを定める
    • 対応フローやツールの使い方などのルールがある程度定まると、各メンバーの動きを想定しやすい
    • 自然発生したルールは追従する
  • 寛容さ
    • 必要以上にこだわりすぎない。スムーズな意思決定を優先
  • クライアントの気持ちを考える
    • 自分がスポンサーだったら?をシミュレーションすると、いろいろ見直すきっかけになる
  • できることにフォーカスする
    • いろんな要望に応えたくても、イベントの成功という目的を忘れない

カンファレンスには多くの方が参加されるため、スポンサーだけでなくスタッフ間でも価値観の相違があるはずです。その中で寛容さは重要に見えました。また、様々な期待に応えたい中で、できることにフォーカスすることも重要だと思いました。

例えば、@ymotongpoo さんから4月に以下の方針を共有いただきました。

今回はオフライン復帰最初なのでまずやることは絞ってできることを確実にやる方向にしましょう

この言葉にはとても勇気づけられました。過度なサービスを宣言して、やりきれなかったら参加者の不満につながりますし、やりきったとしてもスタッフに燃え尽きが起きるかもしれません。結果的に、できることにフォーカスすることで、イベント終了後も 「次はこうしよう!」みたいな主体感 が自然と湧きました。

初の運営 & 久しぶりのオフライン開催で慣れないことだらけでしたが、とても勉強になりました。

スポンサー班の方々(@N9tE9, @chiroruxxxx, @ymotongpoo, etc.)、大変お世話になりました🙏

初めての登壇

モチベーション

次のモチベーションで応募してみました。

  • Goの魅力を伝えたい
  • 多くの人に見られるレバレッジを使って勉強したい(登壇駆動)

Goの魅力を伝えたい

自分は、Goはシンプルでわかりやすく、良い設計思想を持っていると思っています。また、それに至るまでの議論は知れば知るほど知識や教訓を学べるスルメ言語だと考えています。

一方で、シンプルさゆえに機能の少なさが抵抗感につながることがあります。
そこで、その裏にある議論を説明できれば、好きな人はもっとGoを好きに、苦手な人はちょっとでも興味を持つきっかけを提供でき、Goコミュニティへの発展につながると思いました。

まさに、今回発表したトピックである「const型修飾」もその一つでした。なんとなく欲しいと思うことはあっても、そこにどんなトレードオフがあるかは整理されておらず、"ないデメリット"のみが嘆かれ、"ないメリット"は無視されがちに感じていました。しかし、Goコミュニティは後者を認識し議論しています。自分は、これらをまとめることで、const型修飾がないGoのメリットに加え、Goコミュニティの知見や設計思想を共有したり、議論の解像度をより高くする概念や説明を提供できるのではと考えました。

タイトルの決定

タイトルは、「Goにconst型修飾を期待しなくてよい理由」にしました。

const型修飾の是非は完全決着したわけではないので、「const型修飾がない理由」だと若干恣意的です。また「~を諦めて良い理由」だと若干消極的で、まだ提案されてないけど将来追加可能な機能の議論を潰してしまうかもしれません。そんな理由で「~期待しなくてよい理由」としました。少しぼやけたタイトルに見えますが、中立的立場を保ちたかったため必然的にそうなってしまいました。

登壇駆動なCfP

そんなこんなで、主張をざっとまとめてCfPを提出しました。細かい部分は、CfP通ったら後に勉強して整理しようという軽い気持ちで応募しました。

このアプローチは 登壇駆動と呼ばれるらしいです。

今回のセッションはいわゆる「登壇駆動」でした。 登壇駆動というのは、面白そうな仕様や挙動を見つけてCfPを出し、その"後"にそれらの謎を証明していくという順番の発表/勉強手法のことです。

https://karamaru-alpha.com/posts/gocon2024/

苦労したこと

発表資料の作成に時間がかかりました😇

@karamaru_alpha さんは登壇駆動のリスクを次のように表現しています。

ある種知識の前借りというか、登壇までに必ず提示した謎を証明しないといけないというリスクと責任が伴う行為ですよね。このせいでスライド作成に行き詰まるなど非常に苦しい時間もあった (略)
https://karamaru-alpha.com/posts/gocon2024/

まさに自分もスライド作成に行き詰まり何度も手戻りしました。

いろいろ試行錯誤しましたが、やってよかったことを抜粋すると以下です。

  • 材料をスプレッドシートにまとめる
    • その記事/論文の言っていることを1行=1材料として書き出す
  • 一度発表してフィードバックをもらう
  • 構成にこだわる
    • マインドマップやタイトルだけのスライドをつくったり、ポストイットでペタペタしたりして設計
    • オーディンスを設定し、彼らが知っていることからどのように発表内容に導くか想像する。知らないことが続いてしまうと聞きづらい
    • わかりにくかったら思い切って作り直す
  • スライドを印刷して校正&校正
    • 発表練習を兼ねながら、資料をできるだけ90点に近づける作業

当初は既存のissueをいくつか取り上げるだけのつもりが、論文や他言語の記事を読み[2]、不変性をまとめ、図説によって納得感を与えるという野心的な発表内容に育っていきました。

どれも納得の行く発表に必要だったのでやる価値はあったのですが、ほとんどGoに直接関係なかったので苦行と言えば苦行でした。

発表内容

詳しく触れませんが、発表内容は以下から読めます。
https://docs.google.com/presentation/d/e/2PACX-1vSWVLveC-AdAoBebAVx3lU4C8bUSBN5_vx-1x_4AWgwddild-kkEqypIp0ox8gGA32SMPu3xchsqGDw/pub

個人的には以下が気に入ってます。

  • 値と参照を「▢」と「◯→」で表現
  • 不変性の分類
  • const型修飾のトレードオフの表

反響

mattnさんにポストしてもらえました☺️
https://twitter.com/mattn_jp/status/1799464379328659458

また、レポート記事を書いていただいたり、

https://blog.giftee.dev/2024-06-11-go-conference-2024-session-report-const-qualifier/

こだわった部分にポジティブなポストをもらえたりしました🎉

https://twitter.com/_ryukez/status/1799327492152664413

https://twitter.com/y_taka_23/status/1799330840826314979

また、ポストの検索によってGoに欲しい不変性は人それぞれ異なることがわかり、少なくとも不変性の議論に解像度を与える意味では成功したかもしれません。

今後、別の文脈でも今回の内容が参照されるように広げられたらいいなと思いました。

  • コピーや不変性にまつわるGoのセマンティクス
  • Goだけではなく、他言語での不変性についての議論

よかったこと

  • Goが好きな人と交流できた(再掲)
  • コミュニティに発表するというプレッシャーを使って勉強できた
  • 調査から発表までの自信がついた

まとめ

コミュニティはいいぞ

脚注
  1. 『Go言語100Tips』は実践的で示唆に富む素晴らしい本なので、とても社内勉強会にオススメです ↩︎

  2. 最終的にスプレッドシートは100行以上になりました ↩︎

Discussion