新卒 Android エンジニア、勉強会をする

はじめまして。2022年新卒で Fenrir に入社した Android エンジニアの半揚 @cffYoHa です。 社内で Jetpack Compose について気軽にキャッチアップするための勉強会を企画・運営したので紹介します。

Fenrir Compose Campについて

まずは今回企画したFenrir Compose Campという勉強会について紹介します。 Fenrir Compose Campとは、Google が10月から12月にかけて開催している、Jetpack Compose について学習するオンラインプログラム Compose Camp のFenrir 版です。

Compose Camp

Jetpack Compose は、ネイティブ UI をビルドする際に推奨される Android の最新ツールキットです(android developers より抜粋)。 Compose Campでは、学習ツール Pathways を活用して個人でも、コミュニティでも学習できる仕組みとなっています。

DroidKaigi に参加した際にこのプログラムが開催されることを知り、社内にも展開できないかなと考え始めたのがきっかけでした。 DroidKaigi に初現地参戦した記事はこちらです。

なぜ企画したのか

DroidKaigi に参加して様々なセッションを見て回った最初の感想は「うん、Jetpack Compose 多いな!」でした。そこで出会ったのが先程の Compose Camp というわけです。 私が今回勉強会を企画する上で必要だと考えていたのは、以下の3つです。

  • 社内の多くの Android エンジニアと交流ができること
  • 社内の先輩 Android エンジニアから知識を享受するだけではなく、自分からもキャッチアップした上での気づきを共有できること
  • 企画・運営にあたり、様々なコンテンツを用意する必要がなく、案件作業の負担にならないこと

Fenrir でも Jetpack Compose を使って開発している案件はいくつかありますが、まだ View ベースの案件が多いのが現状です。Jetpack Compose はまだ学習できていない方も一定層おり、Compose Camp をうまく活用できれば、上記の3つをクリアできそうだと考えました。

実施方法

毎週水曜日の午後に1時間半開催しました。Fenrir ではオンライン上で会話できる選択肢として、Google Meet・oVice・Slack のハドルがあります。気軽に参加したり、途中で抜けたりする際の心理的負担が少なくなると考え、今回は oVice 上で実施しました。1時間各自の理解度に合わせて Pathways を進め、残りの30分で学んだ点や不明点、その他 Android に関わるトピックについて話し合う形式となっています。

oViceの様子

工夫した点

開催する際に最も検討した点が、どのようにして参加者同士の学びを共有するかです。参加者一人ひとりに案件作業や MTG があるため、当然参加できない回が多数あるはずです。非同期で学んだ点や進捗を共有する仕組みが必要でした。

そこで、スプレッドシートのテンプレート機能を採用しました。参加者はテンプレートをコピーし、各自の進捗を記録していきます。テンプレートには、各 Pathways へのリンクと学習内容、チェックボックス、メモ欄が設けてあり、チェックした数に応じて上部のグラフが連動するようにしています。短時間でさくっと作ったため、見た目が酷いのは許してほしいです笑

テンプレートを元に各自の進捗を記録していく

この方法の利点はいくつかあると考えています。

  • スプレッドシートは業務でも活用されているため、誰でも簡単に扱える点
  • 途中の回から参加する場合でも、テンプレートを作成し、個人のペースで学習を進めることが容易な点
  • 他のシートに切り替えることで他の参加者の学びや進捗をひと目で確認可能な点
  • 特定のセルにコメントという形式で、非同期に質問をすることが可能な点
  • 勉強会が終了後も互いの進捗を確認可能なため、他の人の学びを吸収しつつ空いた時間に進めることができる点

企画を終えて

Fenrir Compose Camp は10月の中旬から開始し、全9回実施しました。Google の Compose Camp のプログラム期間は12月30日(土)までですが、Fenrir は年末きちんとおやすみをするため、12月21日(水)までの開催となりました。

アンケート

最終回開催後に今後に向けたアンケートを実施しました。

Fenrir Compose Camp 参加回数の割合

参加者全員からの回答ではありませんが、グラフを見る限り、半数以上は3回以内の参加でした。

今回試験的に実施したスプレッドシートでの進捗共有についての質問では、以下のような意見を頂きました(一部抜粋)。

  • 他の人がどのコースを完了しているかがわかるので、質問する際に、誰に質問すれば良いかが明確だと思う

  • 意識的にコメントさせてもらいました。個人的には気軽にコメントできたのでよかったのではと思いました。

  • 見やすくはあったけど、個人的にはあまり人の進捗を見る機会はなかった。

  • 進捗の方はあまり気にしなかったのですが、 各項目に感想や学びについて書いてくださっている方のものは参考になって、 めちゃくちゃ良かったです。

スプレッドシートでの進捗共有は、一定の効果があったようです。しかし、学んだことに対する記載量にはかなり個人でばらつきがあったため、その点はさらなる改善の余地がありそうです。

今後 Android に関する勉強会で何かあったらいいなと思う施策・テーマについて以下のような意見を頂きました(一部抜粋)。

  • まだまだ Jetpack Compose を使いこなせる人は多くはないので、続けてもいいのかなと思います。
  • 新OSが出たタイミングでのキャッチアップ
  • 非 Android エンジニアや、非エンジニア向けの内容の勉強会があると多くの人に参加してもらえるかもなと思いました。 (デザイナー向けに、Material デザインや Android の View の実装方法の勉強会など)

今回の勉強会は Android エンジニアに身近なものでしたが、他のエンジニアやデザイナーにとってはとっつきにくいものだったかもしれません。 Fenrir にはたくさんのデザイナーがいるので、デザイナーとのコラボでの勉強会は両者にとってもかなり勉強になりそうです。

良かった点

今回、Fenrir Compose Camp を開催したことで良かった点が3つあります。1つ目は、Android に興味がある web / iOS エンジニアの参加者も取り込んで交流ができた点です。初級コースも用意したことで、iOS ではこういった実装になっている、といった他の参加者からの気づきを得ることができました。これは、一人で学習していたら得られない体験です。企画側としては、中級コースと同様に初級コースのコンテンツへのリンク等を用意するだけで、対象となる参加者の間口を広げることができたため、非常に効果を感じました。

2つ目は、雑談会で出た疑問点を Slack の Android 技術チャンネルにも投下することでより多くの方の目に触れて、議論が活発化していた点です。これは、参加していただいた他の Android エンジニアの方が実施してくれました。Fenrir Compose Camp 内の雑談タイムで出た疑問をより深堀りできました。加えて、自分がキャッチアップできた内容を他の方に共有する、という企画時のモチベーションも達成できました。

3つ目は、勉強会の企画と運営を早めに体験できた点です。社内の勉強会を覗くことはあっても、企画をしたことはなかったため、非常に良い学びになりました。今後もやってみたい勉強会があった際に二の足を踏むことなく実現方法を模索しようと考えられるのは非常に良い収穫だと思います。

うまくいかなかった点

今回の勉強会でうまくいかなかった点が2つあります。1つ目は、今回導入したスプレッドシートの形式では、進捗に対するアウトプットがあまり見えてこないということです。チェックをつけるのはとても手軽なため、全参加者が実施してくれました。しかし、各コースで何を学んだのかの記載がない場合が多く見られました。本勉強会でのスプレッドシート導入の目的は、進捗を手軽に確認することではなく、各コースで個々人が学んだものを手軽に共有できるようにすることです。参加者の方にスプレッドシート導入の目的をあまりうまく説明できていなかったと反省しています。何かツールや手法を勉強会に導入する際は、その使用目的を明確に記載しておく必要がありそうです。

2つ目は、参加者の固定化と参加人数の減少です。はじめは参加者が多めでしたが、回を重ねるごとに参加者が固定化し、なかなか人が集まらない状態となっていました。コンスタントに参加者を募るためには、回ごとに固有のトピックを設定したり、隔週開催などの工夫が必要かもしれません。雑談タイムのトピックは私が随時共有していたため、目新しさや着眼点に問題があった可能性もあります。定期開催の勉強会では、毎週の宣伝時に「今回は〇〇について話すよ!」といった変化を加える必要がありそうです。

最後に

新卒のエンジニアが社内勉強会を開いてみて感じたことを書きました。企画時に必要だと考えていたことを形にできた一方で、導入した仕組みの目的をうまく伝えきれていない、といった問題点もありました。それ以上に、自分から積極的に動いてみたことで、学びたい技術のキャッチアップや勉強会の企画・運営の経験、学びの共有のためのアウトプットなど一人で勉強する以上の価値を得ることができたと感じています。せっかく学習した技術も継続しないとただの付け焼き刃になってしまうため、今度は1からアプリを Jetpack Compose で実装して確実に身につけたいです。