こんにちは、NewsPicks サーバーサイドエンジニアの池川です。
NewsPicks Advent Calendar 2022 の 3 日目です。
昨日は、 Virtual Muto さんによる 2 日目の記事で、感想などを書きたいところですが、実は本記事を 11 月末に書いているので、当日のお楽しみにしたいと思います。
本題ですが、NewsPicks では、もともと Java で書かれていたサーバにおいて、Kotlin を全面的に採用しており、現在では Kotlin を変更しない PR はないのではというほど、 Kotlin 開発が浸透しております。
この状態を達成するための設けられた施策の 1 つで、現在も脈々と続いている、「Kotlin 知見共有会」について共有したいと思い、ブログにすることにしました。
背景
2021 年夏頃に、 NewsPicks サーバーのメイン言語を Kotlin に切り替えました。
また、社内での Kotlin 使いこなし力の底上げを目的に、 Kotlin 知見共有会が発足することになりました。
社内勉強会は、始めることより続けることの方が大変というのが往々にしてあると思います。
NewsPicks の勉強会も一時期だけ続いていないという時期もあったものの、現在は順調に継続開催できております。
この継続開催で気をつけていること・工夫していることを書きたいと思っております。
どのような会か
NewsPicks で利用している esa にある、以下の文章が分かりやすいと思ったので、引用しました。
Kotlinを使うからには、「日本一使いこなせている」まで高めていきたい!
- 社内のKotlin使いこなし力アップを目的とする
- たまに参加でもOK
- 2〜3週間ごとに開催
- 資料は簡素でOK。もちろんガッツリ作ってもOK
- プルリクを見せながらとか、公開されてる資料を見ながらでもOK
- 発表準備に疲弊するぐらいなら、より持続することを優先したい
- 初心者を排除しない
- 繰り返しの質問も歓迎しよう
- 良い知見をもたらしてくれる人には最大限の賞賛を
Kotlin マイスターもビギナーもいる環境では、Kotlin を学ぶ機会を増やすことが重要ということで、この勉強会を継続し続ける、というところを目標に、運営担当・登壇者・参加者に優しく運営をしております。
運営のやること
今は、自分を含めて 2 名で Kotlin 知見共有会運営という業務を実施しています。
具体的には、
- 運営 MTG を開催し、次回・次次回登壇者と日時の確認 & 前回の振り返りを実施 (30 分)
- 勉強会当日の司会進行 (30 分)
- その他、 Slack での適宜やり取り (10 ~ 15 分)
という流れです。
運営で大事だと思ったことをあげると、
- 一人でやらない
- 運営を作業化し、面倒なことを極力減らす
と思います。
運営をしていると、登壇できそうな人を探し、その方にコンタクトを取ってお願いをする、という登壇依頼作業が度々発生します。
大抵の方は、何らかの業務で忙しそうにされている場合も多く、彼ら彼女らにお願いをするのも憚れるなと思うこともしばしばあります。
これを運営 MTG 中に登壇依頼すると、(心理的な問題ではあるんですが、)自分個人からの依頼ではなく、運営からのお願いなんです、ということで依頼がしやすくなるなと感じています。
また、実際のところ、依頼をすると、快く引き受けていただける方が非常に多く、運営上の助けになっております。
勉強会の運営は、登壇者も含めて、個々人の小さいタスクの積み重ねで成り立っており、この小さいタスクを粛々と実施していくのが大事だと思います。
が、そもそも、登壇依頼作業は、やはり運営にとっても毎回実施は大変というには変わりなく、この作業をもう少し仕組み的に解決したいと思って別の取り組みを始めています。
こちらについては、Kotlin 知見共有会 当日の流れで記載します。
登壇者のやること
Kotlin 知見共有会の主役ですね。
やることは以下です。
- 登壇しますと宣言していただく ( 5 割 )
- 登壇の準備をする ( 4 割 )
- 登壇する ( 0.5 割 )
- 発表資料を esa で共有する ( 0.5 割 )
です。
やはり、一番重要なのは、「この日の Kotlin 知見共有会に出ます!」と宣言していただくことだろうと思います。
これだけで、登壇者の仕事は半分が完了します。
基本的に、 NewsPicks では、コードを書かないエンジニアはおらず、 PR 上でのレビューも活発です。 日々の業務に発表のネタはあるはずで、(それを発表用にフォーマットにする手順は必要ですが、)それを発表会に持ってきていただければ大丈夫です。
このため、発表資料・内容は、Kotlin に絡んでいれば何でもよく、
- スライドをめちゃめちゃ作りこむ方から GitHub PR のリンクをそのまま持ってくる方
- Kotlin の仕様上の疑問点を Java の Project Valhalla に絡めて説明する方からエンジニアになったばかりで学んだことを発表される方
まで、幅広く発表いただくことが可能です。
日々の業務に学びがあるので、それをまとめて共有いただければ良いなと思っています。
Kotlin 知見共有会 当日の流れ
本当は、発表の様子をキャプチャに撮れたら良かったんですが、この記事を書いているのが共有会と共有会の間のため、割愛させていただきます 😇
NewsPicks では、バーチャルオフィスツールとして、 Gather を利用しており、以下のような浜辺で 20 名ほどで勉強会を実施します。
この浜辺で、毎回発表者 2 名の方を交え、以下のような流れで発表いただきます。
- 1 人目 10 分発表
- 5 分質疑応答・雑談
- 2 人目 10 分発表
- 5 分質疑応答・雑談
- 次次回の登壇者を募集
- 登壇資料を共有
運営として今頑張りたいと思っているのは、発表の時間中にコメントを投げてもらって盛り上げたいというところです。
※ Gather では、 音声での通話の他に、チャット機能もあり、そちらで発表中の反応を見ています。
今はコメントいただく方も限られているので、このコメントをする方のバリエーションを増やしたいなと思っています。
ただ、この発表会を見ている参加者の方の中には、業務をしながら耳だけ参加しています!、という方もいらっしゃり、実際、内容によってはコメントしていなかった方がコメントで反応される場合もあります。
このため、努力目標として無理なく盛り上がる方法を模索しております。
運営上の工夫として、Kotlin 知見共有会が終わる間際に、次次回の登壇者を募集しています。
毎回 20 名ほど来ていただいているので、指名制になっていても特定の方に発表が偏るということもないため、高い負荷にならず、運営側としても継続的に発表いただける方を確保できるということで、現在はそのように運営しております。
最後に
Kotlin 知見共有会について書かせていただきました。
Kotlin 知見共有会を運営している側ですが、参加者として聞いていても面白いです。
最近は「競プロのすゝめ」というテーマの発表があり、自分はこの発表で、 AtCoder CLI があることと、 Kotlin でも書けるということを初めて知り、 AtCoder を細々とやることにしました。
登壇される方によって、発表内容も大きく変わるので、毎回楽しみに運営をしております。
また、運営としては、毎回の勉強会を参加者・発表者の方に楽しんでいただけるように、工夫していきたいと思っております。