TES Blog

株式会社テクニカルエンジニアリングサポートに所属する社員が、自身が携わるテクノロジーやイベントに関する情報を発信しています。

2018年8月 アプリケーション開発向けの学生インターンシップの内容と、実施結果について

はじめに

TESでは毎年学生インターンシップの受入れを行っています。
今回は2018年8月20日から8月31日にかけての10日間、アプリケーション開発者向けをテーマとしたインターンシップを行い、日本工学院八王子専門学校様から4名の生徒さんに参加していただきました。

今回の記事ではインターンシップの活動内容と、その結果について紹介します。

目次

取り組んでもらった課題

端的にまとめると、デタラメな作りをしたアプリケーションに対して、それぞれ改善案を出して実際に修正するとしました。
私の方で用意したアプリケーション(粗悪)を対象にしてグループで話し合いながら解決手段を模索する、といった内容です。

ソースコード自体はパブリックリポジトリにて公開しています。
(意図してデタラメに作っているので粗探しはご勘弁を…🙇) github.com

開発環境

  • OS
    • Windows 7
  • 仮想環境
    • Docker
  • プログラム言語
    • Ruby 2.4
  • 開発フレームワーク
    • Ruby on Rails 5.2
  • データベース
    • MySQL 5.7
  • バージョン管理
    • Git
  • 利用サービス
    • GitHub(ソースコード管理と課題管理)
    • Slack(チャットでの相談)

Windowsをホストとして、Docker上で動作するRailsアプリケーションを構築した状態で配布しました。
今までのインターンシップではネイティブ環境上に構築することが多く、参加者の方への負担が増えて結果的に作業時間が無くなることが多々あったので、今回はDocker環境の配布を選択しました。結果的に環境構築に手間取ることがなかったため、この選択は正解だったかと思います。

スケジュール

スケジュールは以下のとおりに行いました。

  • Day 1:会社説明・案内、課題説明、開発環境構築
  • Day 2:改善案の洗い出し、GitHubのissue作成
  • Day 3〜Day 9:修正作業
  • Day 6:振り返り(KPT)実施
  • Day 10:成果発表

日々の日課として朝会(スタンディングミーティング)を開き、前日の成果と当日の作業予定の報告を行ってもらいました。
また、こちらはカリキュラムではありませんが、学生が学校に向けて提出する日報の作成を帰宅前に行っています。

Day 1

初日は会社で作業するにあたっての注意事項等について、管理本部から説明を行い、その後は会社の設備案内を行いました。
以降は私の方からインターンシップで行う活動内容の説明と、各自で開発環境の構築を行ってもらいました。

Day 2

無事開発環境が整ったところで、各自でサイトとソースコードの状態を確認して、問題点とそれに対する改善案を出してもらいました。
また、挙がったアイデアをGitHubのissueに登録して、それぞれ担当割り振りを行うように指示しました。
GitHubを利用したことのない方も居たため、issueの使い方に悩んでいましたが、一つのissueに対して一つの改善案を作成するようにアドバイスをし、整理した内容を登録してもらいました。

改善のアイデア自体については、こちらからは制限することなく自由に行ってもらったため、私ではなかなか思いつかない学生ならではのアイデアが出てきたのが非常に面白かったです。

Day 3〜Day 9

この期間はソースコードの修正作業を行ってもらいました。
皆さん本格的にRuby・Railsに触れた経験がないため、苦戦しながらの作業となり少し高いハードルだったかなと思いましたが、
担当するissueを見直し、自分の力量に見合った課題について対応を行っていました。
自主的にペアプロを行い効率化を図りながら作業をしていたり、バックエンドの実装が苦手ならフロントエンドの実装を行うなど、役割分担の工夫が印象的でした。

このフェーズでは質問を受け、開発中に発生した問題に対して「私ならこう修正する」というニュアンスのアドバイスを行いました。
現役プログラマーとしてなるべく恥ずかしくないコードを見せたつもりですが、大変不安です...😰

余談ですが、事前に埋め込んだバグに対して意図通りに引っかかってくれたので、してやったり感はありました。勿論、アドバイス時には意地悪せずに回答しています🐧

Day 6

5日間経過した段階で振り返り会を行いました。
今回はKPT法を用いて各自に Keep(赤色)Problem(黄色)Try(青色) の各付箋にそれぞれ考えていることを記載してもらいました。
厳密なKPTではなく、良かったこと・改善する必要があること・これから頑張りたいこと、といったニュアンスで考えてもらいました。

Keepと Problem

f:id:t-miyahara11:20180831165343p:plain

Try

f:id:t-miyahara11:20180831165026p:plain

前週まではグループとして課題に取り組むための会話量が少なく、なかなかコミュニケーションが図れてない場面が多かったのですが、
今回のKPTを通してお互いが何を考えているのか、どんな問題を抱えているのか話せる場ができたことで、この日以降グループとしてのまとまりが出来てきたかと思います。

Day 10

最終日はこれまでの成果についての報告会を開きました。
弊社社員の前で実際にアプリケーションの動作を見せながら、各自追加・修正した機能の説明をしてもらいました。
直前の修正でマージミスが発覚したため開始直前までドタバタしていましたが、なんとか10日間の成果を発表できていました。
報告会の終盤に質疑応答の場を設け、弊社社員からの質問に答えてもらう際、それぞれ出来たこと・工夫したことを話してもらいました。

おわりに

インターンシップに参加して良かったと思ってもらえるように準備してきましたが、最後に作成してもらった日報の中で「来ていなかったら後悔していた」とコメントがあったので、適切な応対ができたかなと思います。

今回のインターンシップの目的は、技術的なことについて主眼に置かず、グループワークや課題解決の手法について考えを巡らせる意図で企画した内容となっています。
その中で苦戦しながらもグループ開発を行い、それぞれが成長できたことが実感できて嬉しく思います。

少しでも弊社のインターンシップに興味が湧いた方がいれば幸いです。