2021年度夏季オンラインインターンシップ

Posted by Keita Kishino on September 30, 2021 · 1 min read

NaClの岸野です。
新型コロナウイルスの影響で、昨年度はインターンシップは開催できず、今年度はオンラインでのインターンシップを開催しました。

インターンシップ概要

初めてのオンライン開催でどうなるかわからなかったので内容は比較的簡単に、日数も例年の半分という体制で開催しました。

  • 参加人数: 7名
  • 日数: 5日間
  • 内容: シューティングゲーム作成

以下のスケジュールで開催しました。

  • 1日目: 顔合わせ、制作作業
  • 2日目: 制作作業
  • 3日目: まつもとさんとの対談、制作作業
  • 4日目: 若手社員との対談、制作作業
  • 5日目: 制作作業、発表会

また今回のインターンシップは初のオンライン開催かつ学生向けということで、ゲーム向けのチャットツールであるdiscordを利用して開催しました。
あまり開発で使われる印象の少ないツールで開発を行うというのも今回のインターンシップでの試みの一つでした。

1日目

今回は7名と多くの方に参加していただいたので、2チームに分けて行いました。
私の見てきたインターンシップでは班分けをして行っていなかったこと、オンラインであるため発言機会が通常よりも少なくなりがちであること、私の班分けのタイミングが早すぎたという3点において、初日のアイスブレークがうまくいかず滑り出しが悪かったチームもありました。これは反省点として今後のオンラインインターンシップ運営に活かしていきたいと思います。
NaCl 黒谷さんのフォローもあり、何とか滑り出しの悪かったチームも開発にこぎつけることができました。

今回のインターンシップはオンライン開催のため、世界各国からご参加いただきました。そのため、今回のインターンシップでは時差と言語の壁にかなり苦労するところがありました。言語面に関してはNaCl トアさん並びに松江市国際交流員のAarti Daasさん(通称ソラちゃん)の助けにより、学生の英語学習と同時に円滑な運営をすることができました。黒谷さん、トアさん、ソラちゃんにはご協力いただき大変感謝しております。
時差面に関しては開始時間を学生同士で決め打ちして開発してもらうようにしてもらいました。フレックスとはいえやはり半日近い時差のカバーは難しく開始時間を1時間ずらすだけといった対応になってしまいましたが、フレックスタイム制とリモートワークの利点を体験してもらうことができました。
img2

さて、こういった学生同士の開発でしばしば発生するGitでの躓きは今回も例によってありました。しかし、今年は事前講義動画でGitの使い方を予習してもらっていたため、参加者の学生さんのGitに対する理解度がかなり高く、VSCodeでのGitのGUI操作やrebaseなど若干応用的なことを教えたくらいで、基本的なpushやcommitなどはマスターしておられました。今後も事前講義動画を使えると非常にスムーズに初日が進められそうです。今後のインターンシップにとっても非常に良い収穫となりました。

2日目

1日目同様制作作業でした。2日目からは1日目に既に決めたテーマに則って開発が進んでいました。
チーム1はペアプログラミング方式で言語の壁と技術力の差をうまくカバーして開発に臨んでいました。
img1
img3
チーム2は事前にアイデアを用意して来ておられたようで、1日目に詳細設計を書いてそれに基づいて分担しながら臨んでいました。

2日目には各々やることはだんだん決まってきたので機能ごとに皆さん開発していっておられました。機能ごとに分担して作業し始めるとGitの競合が発生しだすのが恒例ですが、各機能の依存度が低いのかマージの頻度が高いのかあまり競合していることがなく、また競合の解消手段もgithubの機能を使ったりと自分たちで調べて理解していたので順調に進んでいました。

img5

2日目の最後には翌日にまつもとさんと対談しますということを告げて終了、皆さんにまつもとさんへの質問を準備してもらいました!

3日目

3日目です。3日目はチーム1で面白い事件が発生しました。チーム1はペアプログラミングで標的のモジュール作成の2名とカーソルのモジュール作成の2名で分かれて作成していました。それぞれのモジュールをマージしたときに、それぞれのモジュールでSpriteを使っているものと使っていないものができてしまいうまくマージできませんでした。どうやら、チーム内で設計の意識合わせがうまくいってなかったようです。チームを細かく区切ってしまうと小チームごとに設計が少しずつ変わってしまうのを防ぐためにお互いの情報共有は大切ですね。

かたやチーム2は初日から詳細設計を組んでいたこともあって3人でパーツを組み合わせたりがすんなりといっていました。

さて、3日目終了直前のメインイベントはまつもとさんとの対談でした。Ruby3系の理念など技術的に興味深い話題からまつもとさんの嗜好品などフランクな話題まで幅広く皆さん質問してくださいました!
また、同時に今回はまつもとさんにコードレビューをしてもらうという機会を設けました。まつもとさんがコードについて言及されることはなかなかお目にかかれないので私たちもワクワクしていました。参加者の皆さんもまつもとさんにコードレビューしてもらうということでとても緊張しておられました。それぞれのチームはほとんどゲームのベースは完成しており、リファクタリングと新しいアイデアの提案も兼ねて非常に良いタイミングで有意義な時間になったのではと思います。

img6
img7
img8

4日目

前日のまつもとさんからのアドバイスを踏まえながら、ほとんど完成したゲームの改良をしていきます。
4日目は最後に若手社員との交流会ということで私がいくつかの質問に受け答えしました。

  • 仕事での失敗談: 環境構築が勉強不足でとても時間がかかる。何度も繰り返し、エラーを出してはメモをしてで覚えた。
  • なぜNaClに入社したか: スモウルビー甲子園から知った。
  • 嗜好品: エッセンシャルオイル

5日目

最終日、今年は発表会は終了ギリギリの16:00に行いました。そのおかげで、発表準備と作品の最終調整は入念に行われました。

1班の作品はcovid-19 buster、時事ネタに乗ったアイデアです。ゲーム内容はマウスポインタ―を使ったシューティングゲームです。

img4
img9
img13

2班の作品はYou are (not) cool、自己肯定感を上げていくというアイデアです。ゲーム内容は壁避けシューティングゲームです。

img15
img18
img20

どの班も素晴らしく、独創的なゲームを作ってくださいました!

初のオンライン開催でチーム内のコミュニケーションがうまくとれるか、会社の雰囲気等のインターンシップならではの情報が得られるか非常に不安でしたが、言語が異なってもうまくコミュニケーションが取れたり、トアさんの存在もありグローバルにも対応している会社の雰囲気も伝わったりとオンライン開催でもリアル開催と遜色ないインターンシップとなりました。
さらにオンライン開催の恩恵として時差あり、言語が違うというインターンシップが開催できたのはとても良いメリットでした。

参加者の声(抜粋)

  • The internship was a great experience. I enjoyed working in the team. Thank you very much.
  • このインターンシップで多くのことを学ぶことができました。まつもとさんのお話も大変今後の人生の参考になりました。
  • 初めてのインターンシップにもかかわらず楽しみながら技術を学ぶことができました。

今回のNaClのインターンシップに興味をお持ちいただいた皆様へ

次回もインターンシップをオンラインで開催を予定しております!