2019年9月にWebアプリケーション開発5daysインターンシップを実施しました。
このレポートでは、インターンシップの様子や内容をご紹介します。
今回取り組んでいただいた課題は、Switchのアカウント情報を閲覧・操作できるWebアプリケーションの開発です。
参加者の皆さんがそれぞれ1つのアプリケーションを開発する個人課題の形式で、実際にSwitchで使用されているWeb APIを利用して、下記のような機能を実装していただきました。
任天堂社内での利用実績が多いRuby on RailsやSpring Bootといったフレームワークなど、さまざまなライブラリを利用した開発になります。
Switchのサーバーシステムは、多数のマイクロサービスに分かれているため、それぞれのシステムで連携する必要がありますが、このような大規模システムにおけるシステム間連携は、なかなか個人では体験できない課題です。
参加者の皆さんは、Switchの実機を使って挙動を確認したり、WebアプリケーションとSwitchのデータ連携を確認したりしながら、熱心に開発を進めます。
ゲーム機のプラットフォームを支えるWebアプリケーションを開発するという任天堂ならではの経験で、楽しみながら取り組まれていたようです。
開発中は、現場のWebエンジニアがメンターとしてサポートを行いました。
最終日は、参加者の皆さんによる成果発表です。
一人ひとり、自動でデプロイされた自身のアプリケーションやソースコードを見せながら、デモンストレーションを行っていただきました。
今回は全員が同じ課題を実装する形式でしたが、こだわりのポイントが違ったり、独自の追加機能が実装されていたりするなど、参加者の個性が大きく表れており、お互いの成果物からも学びがあったのではないでしょうか。
発表後の質疑応答では、参加者の皆さんから質問が多数寄せられ、講師や社員からは実装面や機能面でのフィードバックを行いました。
実装課題のほかにも、Switchを支えるサーバーシステムを開発している社員が、さらに実践的なシステム開発に関する講義を行いました。
講義のテーマは、以下の3つのシステムについてです。
「可用性を維持するためのインフラ設計」や「サービスの品質を維持するための負荷試験」など、ネットワークサービスを運営するうえでの実践的な内容について紹介しました。
参加者の皆さんは、グローバルで展開する任天堂のネットワークサービスの規模だからこそ考えなければならない課題や、「セーブデータ」というゲーム特有のデータを取り扱うための工夫に興味を持たれていたようで、講義終了後も積極的に質問をされていました。
最終日には、社員との座談会や執務室の見学会を行いました。
座談会には、インターンシップのメンターのほかにも、任天堂のサーバーシステムを支える幅広い分野の社員が参加。任天堂で働く魅力や社員の学生時代の研究内容、就職活動についてなど、さまざまな質問が寄せられました。
座談会のあと、社員が働く執務室を見学しました。
昼休みには、参加者の皆さんと社員で一緒に昼食をとったり、休憩時間にはゲームで息抜きをしたりして、交流を深めました。
今回のインターンシップでは、実際に開発の現場で使われているツールやシステムを利用して、参加者の皆さんにWebアプリケーションを開発していただきました。
5日間のインターンシップの期間中、参加者の皆さんがいきいきと課題に取り組んでくださった姿が印象的でした。
今回の経験が、参加者の皆さんの将来に役立つことを願っています。