こんにちは!アソビューでバックエンドエンジニアをやっているけんすーです。
最近猫🐱を飼いたくて毎週ペットショップに行っていますが、住んでる家がペット禁止🚫なので抱っこだけして帰ってきます。まずは引っ越しを検討しようと思います。
さて、本題に入りますがアソビューでは定期的に様々な勉強会が開催されています。エンジニアに関する勉強会はもちろんのこと、経営や営業、マーケティングなど様々なテーマで勉強会が開催されています。
今回はテックブログなので、エンジニアの勉強会について紹介していこうと思います。
エンジニアの勉強会について
アソビューでは、エンジニアの勉強会は主に2パターンあります。
1つ目はTech Talkです。毎週水曜日にオンラインでエンジニアメンバーが集まりLT会をします。話したいネタでLTをしたり、新しくjoinしたメンバーの自己紹介や、テックブログの共有などを行っています。また最近では月末にオフラインで集まる場としてReal Tech Talkを開催したりしています。
2つ目は各チームで行っている勉強会です。形式は様々ですが技術書を読んでいく輪読会形式のものやLTなど、普段利用している技術について勉強する事が多いです。 利用技術に特化したトピックについて話すことでコードレビューの意思決定の背景を理解できてやりとりが減り、レビューの時間短縮に繋がったり、開発フェーズの認識を揃えれるなどの理由からTech Talkとは別で勉強会を開催しています。
今回はその中でも私が所属するマーケットプレイスユニットで実施している勉強会について、開催した背景や取り組みについて紹介していきたいと思います。
チーム構成
アソビュー株式会社は日本最大の遊び・体験の予約サイト「アソビュー!」を含む、複数のサービスを開発しています。
私の所属するマーケットプレイスユニットは「アソビュー!」の開発を担当しており、現在4チーム構成となっています。
勉強会を始めた頃は2チームでしたが、今ではメンバーも増えて、4チーム合同で勉強会を実施しています。
勉強会を開催した背景
勉強会を開催し始めたのは2022年の1月頃からでした。 当時gRPCを使ったAPIの開発やSpring WebFluxを使った開発に慣れていなかったため、チームで以下のような課題が挙がりました。
- Google APIの仕様準拠は学習コストが高い
- リアクティブプログラミングの理解
- 既存のソースになんとなく合わせて実装している
これらの課題に対して、チームでGoogle APIやSpring WebFluxの仕様を学ぶ機会を作るため勉強会を開催しました。
やったこと
輪読会形式
- Google APIの公式ドキュメント
- Circle CIの公式ドキュメント
- ドメイン駆動設計について
輪読会は公式ドキュメントや本を利用して、重要なパートを各章交代で読み合わせを行います。
大体1回1章ぐらいのペースになるので間隔をなるべく開けずに開催していました。
Google APIは公式ドキュメントを用いて、一つ一つの用語を擦り合わせながら読み合わせをしました。 認識齟齬も減り共通認識を構築できたことでAPIを開発する際には実装・コードレビューの質を高める事ができました。 cloud.google.com
DDDに関しては様々な書籍や記事がありますが、「ドメイン駆動設計入門」を利用して読み合わせしています。 www.seshop.com
LT形式
- クエリチューニングのコツ
- 会員基盤
- PostgreSQLも好きになろうの会
弊社では昨年の12月にAurora MySQL 8.0へのバージョンアップに伴い、クエリチューニングを実施しました。 各メンバー事例を紹介して、indexの貼り方やパフォーマンスが劣化した原因や解決策を共有しました。
また、会員基盤やPostgreSQLの勉強会ではそれぞれ知見のあるメンバーが、実際のコードや仕様を用いて説明いただいたことで、今までふんわりと理解していた技術に親しむ事ができました。
ネタの決め方
それぞれ取り組みたいトピックをネタ帳に溜めていて、その中から選定しています。
基本的にはチームで課題感を持っている技術等を題材に挙げることが多いです。
またネタ帳とは別に、今後チーム開発をしていく上で共有した方が良いことや(例えばSQLレビューの観点)、1人で解決が難しい問題について勉強会で取り上げるといったこともありました。
今後取り組みたいネタは以下のようなものがあります。
- 失敗から学ぶRDBの正しい歩き方
- 読みやすいコードのガイドライン
- 良いコード悪いコードで学ぶ設計入門
- 実践データモデリング
- 過去のインシデントから教訓を得る会
- 改めてスクラムガイドライン読み合わせ
- GAになったSpring Boot3.0のキャッチアップ
実際にやってみて
勉強会を開催するメリットは様々ありますが、以下のようなメリットを感じました。
- 単純なスキルアップ
- 1人で勉強するよりも継続しやすい
- +αの知識が身につく
- 技術的な議論がしやすくなる
- 実装とコードレビューを効率的に行える
特に下の2つを強く実感しています。
勉強会を通じて設計や実装の共通認識ができたことで議論しやすくなりました。
また、注視すべきポイントが似てくるので実装に納得感を持てるのと、コードレビューする際に気をつけるポイントも掴めるようになったかなと思います。
今後の課題
勉強会を実際にやってみて良かったと感じる一方で、課題もいくつか見えてきました。
- テーマに応じた勉強会の形式
- 発言者が偏ってしまう
- テーマによってはアウトプットが難しい
まだ運用して1年ですが、見えてきた課題に対していろんな取り組みを重ねてよりブラッシュアップしていきたいと考えています。 他にもハンズオン、パネルディスカッション、ワークショップなど様々な形式にも挑戦していきたいです。
まとめ
いかがだったでしょうか?
定期的に勉強会を開催するには、ネタ決めやスケジュールの調整等のハードルもありますが、開催することによるメリットはたくさんあります。まだ社内で勉強会をやったことないという方がいらっしゃいましたら、週1,2回30分でも良いので開催してみてはいかがでしょうか。今回ご紹介したネタや勉強会の形式が少しでもご参考になれば幸いです。
おわりに
アソビューでは一緒に働くメンバーを大募集しています!!
今回ご紹介した以外にも各チーム様々なテーマで勉強会行っています。カジュアル面談もありますのでもっと勉強会について詳しい話が聞きたい!という方はお気軽にご応募いただければと思います!
www.asoview.com