その先へ

setohの色々殴り書き

半年間チーム内勉強会をやってみて

ハロー、@seto_hi です。
最近はFatActivityと戦いつつ自分のFatを減らしています。

去年の12月から半年ほどかけて、チーム向けのAndroid勉強会(全15回)をやっていました。
狙いや成果などについて書きます。

チームの構成と勉強会の狙い

 自分が11月末に今のチームに入った際、自分以外のメンバーはAndroidエンジニア1人(Android経験半年、元iOSエンジニア)とiOSエンジニア3人という構成でした。
明らかにAndroidの馬力が弱く、開発速度に差が出るのは目に見えていました。

また自分はチームの開発を軌道に乗せる開発支援の立場のため、ある程度の期間でチームを離れることが決まっていました。
経験上、その程度の期間一緒に働いただけで一人前のAndroidエンジニアに育て上げることは難しいと考えており、効率的に知見を共有するためには知識のインプットに特化した場が必要だと思っています。

前職でも勉強会をやっており、効果があったことは体感していました。
そのため、チーム向けに勉強会を開くことを決めました。

勉強会の概要

勉強会を開催するにあたり、以下の点を意識しました。

  • 参加しやすいように毎週決まった時間に行う
  • だらけないように最大15回で終わらせる
  • 15回程度では基礎から実践まで行うのは無理なので諦める
  • 広く浅く教え、実践についてはペアプロなど別の手段に頼る
  • 1回30分程度にして知識を詰め込みすぎない
  • 質疑応答の時間を必ず作って、より深い理解をしてもらう
  • 現状のAndroid開発の主流とそこに至る歴史や背景を話す
  • 後で自学できるように参考文献やリンクはちゃんと書く
  • 後から入った人が参照できるようにスライドはちゃんと残す

15回分の内容を考え、自信に満ちあふれていた時のツイートです。

 任意参加にしていましたが、iOSエンジニアや他チームのAndroidエンジニアも参加してくれました。

勉強会の内容

下記は一例ですが、本職のAndroidエンジニアの方からすると常識な内容ばかりです。

  • Jetpackとは何か、どんな歴史で作られ、どんなライブラリがあるのか
  • 通信関連、非同期処理、Database(ORM)の歴史と現在の主流
  • なぜAndroidではMVVMが採用されることが多いのか
  • 社内の推奨アーキテクチャと技術選定の背景
  • multi moduleのメリットと実装戦略
  • テストで何を保証すべきか、テストライブラリの主流

成果

参加者がどう受け取ってくれたかは分かりませんが、良かったとは言ってもらえました。

自分の成果としては、ペアプロなどの際にライブラリの説明などをする時間が省けたため効率的に時間を使えたと思っています。

リモート勉強会になった

社会的情勢により、2月の途中くらいからリモート勉強会に切り替えました。

率直に最初は滅茶苦茶やりにくかったです。
うなずきなどのリアクションが見えない、(みんなノイズが入らないようにミュートにするので)声も聞こえない、という状況で無に向かって喋っている感覚でした。
途中からは考えを変え、発表の収録をしていると思い込むようにしました。
ラジオMCをやっているイメージで喋ると心なしか饒舌になり、反応がなくても特に気にならなくなりました。

聞く側としても身振り手振りが見えなくなっているはずなので、どういう印象だったかはちょっと気になります。

自分に関する成果

主目的はチームの成長のための勉強会ですが、自分のプレゼン能力の向上も狙っていました。
自分の発表に関する課題は2つあり、スライド作成に時間がかかることとアドリブが一切効かないことです。

いつも登壇の際には完全な読み上げ台本を用意し、その通りに読み上げれば発表ができるように仕込んでいました。
恐らく聞く側の方には問題はないと思うのですが、発表者側からすると練習に莫大な時間がかかるためかなりの負担になっていました。
(DroidKaigiの40分の発表のためにスライド作成と発表練習で100時間くらい準備時間をかけているというとわかりやすいかと思います)

スライド作成時間については、初期の頃は勉強会の30分の資料を作成するのに6~8時間程度かかっていましたが、最終的には3時間程度で作成できるようになりました。
初期の頃は調べる時間がかかっていたというのもありますが、純粋にスライドを作る時間も早くなりました。
プロットを打たなくても必要な内容が思い浮かぶようになり、理解してもらうための工夫などもパターン化できてきたと思います。

アドリブが効かない点の解消のために、勉強会の発表は一切台本なしで行いました。またスライドの読み上げだけをするのではなく、理解しやすいような言い回しや抑揚をつけることも意識しました。
個人的な感想になってしまいますが、初期の頃よりは台本なしでも伝える技術が上がったと思っています。こちらもパターン化ができたので、経験を積めたことが大きいです。

今後について

勉強会という形での知見共有は終了しましたが、Androidチームとしては必要に応じて知識の共有の場を作っています。

そして...

社のAndroid開発のレベルを底上げしていきます。
Comming soon!