この記事は、DMMグループAdvent Calendar 2021の6日目の記事です。
こんにちは、『DMMポイントをお得に「貯めて」賢く「管理」できるアプリ』DMMポイントクラブアプリのAndroid版開発を行っている宮里です。
DMMポイントクラブ|lp.pointclub.dmm.com
今日はDMM内で行われているAndroid勉強会について話を行います。
エンジニア同士の繋がりの課題
DMMでは数多くの事業が展開されており、スマホアプリ事業を展開している事業部にそれぞれAndroid/iOSのアプリエンジニアが所属しているという形になっています。
そのため、自分が所属している事業部とは別の事業部の方とのコミュニケーションを取る機会があまり生まれにくいということが現状としてあります。
実際に、自分が2020年4月に新卒入社したタイミングがちょうどフルリモートに切り替わっていたタイミングだったこともあり、元々の知り合いや同じチームの方、メンター以外のAndroidエンジニアと話す機会というのはほとんどありませんでした。
後述する勉強会の主催を始めた頃も参加者の多くの方とは話をしたことがないというような状況で、コンテンツが終わったら特にそれ以外の話も無く会が終了するといった状態でした。
そんな中で「日頃からコミュニケーションを取ることで、各事業部に所属しているAndroidエンジニアがそれぞれの業務で得た経験を共有したり相談したりしやすくするような環境を作りたい」と思うようになっていきました。
そういった環境を作り出すことができれば、自然とより多くの知見が溜まっていきDMMのAndroidエンジニア全体のスキルアップに繋がると考えています。
開催目的
そういった課題感を解決するためにも最新技術のキャッチアップだけでなく、
各事業部に所属しているAndroidアプリエンジニア同士の繋がり強化も目的として勉強会を実施しています。
勉強会の種類
勉強会は以下の2つを実施しています。
- Android会(毎週月曜日)
- Android Lunch(毎週火曜日)
この2つの勉強会はそれぞれ週一で1時間、DMMのモバイルメンバーが参加しているDiscordサーバーにて開催されています。
規模感としてはどちらも参加者2,3人と少なめですがなんと週2回もAndroidの勉強会があります。
勉強会が週に2回もあると「準備が大変そう......」といった懸念もあるかと思いますが、どちらもその勉強会内で参加者全員一緒に学ぶという形式となっているため、誰かが事前に資料の準備を行ったり予習したりする必要は特にないです。
両方とも自分が主催をしていますが、それぞれの回で扱う内容の候補を軽く考えたり周知を行ったりするくらいなため、勉強会の準備が他の業務を圧迫するといったことも起きていないです。
それぞれの勉強会がどういった形式で実施されているか詳しく説明していきます。
Android会
ほとんどの場合はGoogleから提供されているCodelabを参加者みんなで進めていくような形です。
Google Codelabs|codelabs.developers.google.com
参加者の一人がCodelabとAndroid Studioの画面共有を行い、Codelabの内容を読み上げつつコードを書きつつ進めていきます。
Advanced State and Side Effects in Jetpack Compose
画面を映している人以外の参加者は途中でもセクション切り替わるタイミングでも気になったことや感想を話題に挙げ、それに関してみんなで話をしていきます。
- ここってどういう意味ですかね?
- このコード、〇〇アプリの△△機能に使えそうですね
- □□みたいな機能を実装する時に良さそう
- 今までと××といったところが変わっていますね
- 便利〜!
といったような質問から感想までいろいろな話をしています。
参加者が知っている内容であれば質問や疑問点の解消はその都度おこなっていますが、参加者が誰も知らない場合は全員その場で一緒に解釈したり調べたりして進めています。
今まで実施したCodelabの内容としては
- Hilt
- Paging3
- animation
- datastore
- Accessibility
- Jetpack Compose
- etc...
というようにAndroidに関するCodelabをほとんど行っています。
最近はJetpack ComposeのCodelabが多いですね。
またAndroid会ではCodelabだけではなく、社内推奨アーキテクチャのサンプルプロジェクトをJetpack Composeに移行する際にどう実装するのが良いか話し合いながら進めるということも数回に渡っておこなっていました。
Android Lunch
Android LunchではAndroidアプリ開発に関する動画の視聴をメインで行っています。
普段はAndroid Developersチャンネルで公開されているMAD SkillsやNow in Androidの動画を見ていて、最近ではDroidKaigiの動画も見ています。
対象の動画を一度みんなで見た後に動画をコマ送りしながら一緒に振り返り、こちらでもAndroid会同様な内容を話し合っています。
動画を見る回以外には推奨アーキテクチャに関しての質問会が行われたり推奨アーキテクチャのJetpack Compose移行の進め方に関する共有があったりしました。
Android会とAndroid Lunchの違い
Android会とAndroid Lunchとで取り扱っている内容が重複する場合もありますが、
- Android会ではコードを動かして知る
- Android Lunchでは見て知る
といったようにそれぞれの学び方ができていると思っています。
また、両方とも勉強会とはいっているものの、最新技術キャッチアップしながらワイワイしましょうくらいの温度感です。
成果
Android会もAndroid Lunchも
- 「〇〇のアプリにこの技術組み込めそうですね」
- 「これをすでに利用されているところってありますか?」
- 「この機能を使うと△△のようなこともできそうですね」
というように、その回で触った技術周りの話を中心に雑談や会話を多めにして交流できるようにしています。
以前までは時間ギリギリまで動画を見たりCodelabを進めたりしていましたが、最近では話をしている時間の方が長くなってきています。
その結果、勉強会で行っている内容以外でも最近気になっているAndroid関連のニュースや各事業部であった出来事などの雑談が徐々に増えてきていて、各事業部のAndroidエンジニア同士のコミュニケーションが取れていないという問題が解消されつつあるのかなと感じています。
課題
そんな2つの勉強会ですが、まだ課題はいくつも残っています。
参加者が少ない・決まったメンバーになっている
それぞれの勉強会の参加者が大体固定化されつつあり、新たなAndroidアプリ開発者とのコミュニケーションが取れていないという点があります。
参加しやすいようにアプローチを仕掛けようにも、そもそもDMM全体にAndroidエンジニアがどれくらいいるのかきちんと把握できていないという問題もあります。
開催時間の設定
いくつもの事業部にAndroidエンジニアが所属していますので、多くの方が参加できるような時間帯を検討することが現状できていないです。
各事業部の方のスケジュールを並べて空いてそうな時間帯を探してみましたが、やはりそれぞれの事業部でそれぞれのことを行なっていますので時間が捻出できず、 初期から行っている時間そのままになってしまっています。
参加しやすい時間帯に設定できればより多くの方が参加できるとは思うのですが現状その時間帯を見つけることはできていないです。
これらに関してはまだ解決方法を模索していたり着手できていなかったりするので今後改善していければと思っています。
おわりに
DMMで行われている社内Android勉強会についての話をしてきました。
定期的に開催されている勉強会でAndroidエンジニア同士の交流を深めつつ技術力の向上をはかり、最終的には各サービスの更なる発展につながれば良いなと考えています。
これからもより良い方法を模索しながら頑張っていきます。
また明日の記事もお楽しみに!