在宅勤務中のエンジニアとオンライン勉強会をした中での学び

先日、入社2ヶ月目のメンバーと1年目のメンバーにベイジの業務でよく使う実装方法についてのオンライン勉強会を実施した。

講師の私と上記2名のメンバーで、1時間で座学と実践両方に取り組んでもらった。座学では私が実装方法の概要をコードを書きながら説明し、実践ではその内容に関連したお題を2人に実装してもらう流れで進めた。

オンライン勉強会を実施するにあたり、以下2つの要件を満たすため今回はプログラミングにはjsfiddle、音声チャットとしてDiscordを使用した。

  • リアルタイムでプログラムの実装と動作検証をやりたい
  • 概要説明や質問を受け付けるために音声での通話をしたい

jsfiddle
HTMLやCSS、JavaScriptのコード実装と動作確認ができるWebサービスです。
https://jsfiddle.net/

Discord
ボイスチャットや画面共有を行うことができるアプリケーションです。
https://discord.com/

最終的には参加した2人とも課題を自力で実装できるようになり、理解は深まったように思う。また、「学習した内容を実務でどう使うのかが分からなかったので、とても勉強になりました!」と嬉しい感想ももらえたので実施してよかったと思う。

今回はこの勉強会を実施してみて感じたポイントを3つまとめておきたい。エンジニアに限らず、リモート環境での後輩指導や育成に課題感を持たれている方の参考になると嬉しい。

1. 演習にかかる時間のばらつきを考慮する

実際にコードを書く時間では、早く終わった人は待ち時間が発生してしまう。人によってつまずくポイントは異なり、その度に進行が遅れると全体的にかなり時間がかかってしまう。

今回は問題ごとに制限時間を設けたものの、想定より時間がかかってしまった印象がある。

まとまった人数で実施した方が効率は良いが、次回は早く終わった人が終わっていない人のサポートをするなど、待ち時間が発生しない方法を試したい。

2.こまめに参加者全員の理解度を把握する

座学の時間では、実装しながら概要を説明し、「ここまで理解できているか」を都度確認し、両者からOKが出たら次の内容説明へすすむ方法で行った。

最初はこれで順調に進んでいるように思えたが、実際に自分でコードを書いてもらう時に理解度に差が生じていることに気づいた。

おそらく私の説明を聞き、コードを模写して動いたのでわかったつもりになっていたのだろうが、いざ自分でやってみるとわからなかった、というパターンだ。これはよくあることなので、説明が全て終わってからお題を出すのではなく、各説明ごとにお題を出すなどして、もう少しこまめに理解度を把握する必要があった。

3.参加者の状況が俯瞰で見れる環境を作る

今回、Discordを使って画面共有を行っていたが、Discordの一覧表示だと画面が小さくて何をしているかわからない上に、通信状況によっては画面の同期が止まってしまい、全員の状況を把握しながら進めるのが難しかった。

また、ペースについてこれず手が止まっている可能性もあるが、これも参加者の作業状況を把握することが今回の環境では難しく、個々人の状況が見えづらかったのも一因として考えられる。

参加者の手が止まるタイミングを俯瞰で確認できる環境が必要であるとわかったので、次回はVS Codeというエディタの「Live Share」という機能を使おうと思う。この機能を使うと、複数人でのコード編集が可能になるので、一覧画面だと画面が小さくて何をしているのかわからない問題は解決できるのではないかと思う。

最後に

今回は初めてだったので内容を録音していたが、聞き直してみると、教えている中でみんなの反応が微妙だったところもあった。

私自身も感覚的に理解していたため、言語化できるほど深く理解できておらず、わかりやすく説明ができていなかったのだと思う。そういった点を重点的に学び、もう少しかみくだいてわかりやすく説明できるようにしたい。

今回のように実際のコードを元に実装方法を伝授していくことは重要だと思うので、彼らが案件に本格参入する前にこの辺りのノウハウ共有もしておきたい。