はじめに
インターンシップ担当の大町です。
今回は、エムオーテックスで冬に実施されたインターンシップについてお届けします!
概要
毎年、開発本部主催のインターンシップを夏は5日間、冬は1日の期間で実施しています。
本ブログでは、今年実施した冬のインターンシップについて、実施内容と参加者の声をお伝えします。
なお、エムオーテックスでは他の部門(営業、サポート)でも毎年インターンシップを行っています。
「参加した学生さんに少しでも貴重な体験をしてほしい」、「エムオーテックスに魅力を感じてほしい」という現場の思いから、新しい技術、変化しているプロセスを取り入れた形で、毎年インターンシップの内容を変えています。
実施環境
- オンライン or オフライン
- オンライン
- 開発環境
- 各自の端末からエムオーテックスが用意した仮想環境にアクセス
- 社員の人数
- 5人
当日のタイムスケジュール
時間 | 概要 | 詳細 |
---|---|---|
10:10~10:20 | オープニング | スケジュール説明、先輩社員紹介 |
10:20~11:00 | アイスブレイク | |
11:00~11:15 | インターンシップ概要 | 目的、テーマ、手法の紹介 |
11:15~11:25 | 休憩 | |
11:25~12:35 | 実践① | モブプログラミング 必須課題①~③ |
12:35~13:35 | 昼休憩 | |
13:35~14:35 | 実践② | モブプログラミング 必須課題④ + 見直し |
14:35~14:40 | 休憩 | |
14:40~15:10 | 発表準備 | |
15:10~15:15 | 休憩 | |
15:15~16:15 | 発表と講評 | |
16:15~16:25 | 休憩 | |
16:25~17:00 | 座談会 | チームごとの発表とフィードバック |
17:00~17:20 | アンケート |
今年のテーマ
今年は「モブプログラミングを体験してもらう」ことに主眼を置いてインターンシップの内容を考えました。
モブプログラミングとは、複数の開発メンバーが、1台のPCを使い話し合いながら開発を進める手法です。
エムオーテックスでも実際に使用している手法で、1人で開発するよりもコミュニケーションが多くなり、知識の共有やミスの発見が容易になるメリットがあります。
今回はオンライン開催のため、チームの中の1人がzoom上で画面を共有する形式で取り組んでもらいました。
課題の話
何を開発したのか
今年は「デバイスを貸し出し・返却ができるツール」を開発してもらいました。
本ツールはデバイス管理者が社内で利用されているデバイスの利用状況を把握し、社内資産が無駄なく効率良く利用されていることを確認するために使います。
※本課題におけるデバイスとは、アプリケーションのテストなどに用いるモバイル端末を指します。
以下は完成形のイメージです。
ツール内で「create」や「read」などの命令文を入力することで、それぞれの命令に対応する機能が動作していることが分かります。
課題の内容
今回のインターンシップでは本ツールを再現してもらうために4つの必須課題を設けました。
- デバイスの登録(Create)
- 新規にデバイスを登録する
- デバイスの表示(Read)
- デバイスの情報を表示する
- デバイスの更新(Update)
- デバイスのステータス(貸出・返却)を更新する
- デバイスの削除(Delete)
- 登録済みのデバイスを削除する
時間内に上記の必須課題を実装することを目標とし、時間が余ったチームには下記の追加課題を実装してもらいました。
- 検索できる
- 貸し出し可能/不可のデバイスを検索
- OSを指定して検索
- 複数件処理する
- まとめて貸し出し/返却
- 借りた時の日時を格納できる
- 貸し出し/返却した時の日時を登録
- CSV保存できる
- デバイスの情報をメモリ上ではなくCSVで保持
開発環境
インターンシップで利用した環境は次のとおりです。(開発環境はエムオーテックスが用意し、インターンシップ開始時に学生に貸与しています。)
- Amazon WorkSpaces
- Python3.8
ソースコード
完成形のサンプルは以下になります。
(一部省略)
実行すると以下の様になります。
命令文のやりとりを繰り返すためにwhile True:
などで無限ループを発生させ、continue
やbreak
を使ってループを制御します。
デバイス情報は配列の中に辞書型で登録し、各機能を使用する場合は同配列から必要なデバイス情報を取り出す仕組みを想定していました。
学生には本ツールの開発にゼロから取り組んでもらったため、最初はどこから手を付けたら良いのか分からない様子でしたが、後半になるとどのチームも積極的に話し合いをしながら進めることが出来ていました。
課題について所感
必須課題が間に合わなかったチームがある中で、追加課題まで取り組めたチームもいくつかありました。
どのチームも開発の方針は定まっており、「あとは時間さえあれば」という印象でインターンシップの課題としては適切な難易度に設定できたのではないかと思います。
参加者の話
人数と内訳
- 参加人数
- 22人(1日間×2)
- 出身
- 大学院: 11人
- 大学: 9人
- 専門学校: 2人
インターンシップ終了後の感想
満足度
- Q. インターンシップの満足度を教えてください(5が最高評価)
満足度 | 回答人数 |
---|---|
5 | 17人 |
4 | 4人 |
3 | 0人 |
2 | 0人 |
1 | 0人 |
未回答 | 1人 |
- Q. 満足度の理由を教えてください(一部抜粋)
モブプログラミング体験が楽しく、また開発部の雰囲気も感じ取ることができたからです。
これまでいくつかのインターンシップに参加してきたのですが、初めて開発の具体的手法を用いた体験が行えたため。
始めはプログラミングをするということであまり自信がなかったのですがモブプログラミングで班員と意見を出し合って作業をするのが楽しく時間が進むのが早く感じました。
社員の皆様との距離が近く楽しい体験や貴重な経験をすることができました。
1dayではあったが、プログラムの内容がとても充実していたため。
満足度については、回答者全員に4以上の高評価をいただきました!
理由としては「モブプログラミングが楽しかった」という内容が多かったです。
「モブプログラミングを体験してもらう」ことは事前にテーマとして掲げていたので、狙い通りの評価をいただけて安心しました。
その他にも「社員との距離が近くて楽しい」「1dayではあったが充実していた」などの嬉しい言葉もあり、開催に向けて準備した甲斐があったと感じます。
印象に残ったこと
- Q. インターンシップで一番印象に残ったことはなんですか(一部抜粋)
一人では出ないアイデアが出た事や、工夫点の多い作品を作ることができた事が最も印象に残りました。
授業や他のインターンシップでは基本的に一人ずつ別々にプログラムを作成することがほとんどだったため、1つの画面を共有しながら制作を進めていく過程を体感することができてよかった。
モブプログラミングの難しさが印象に残りました。考えをわかりやすく伝える必要があり、単純なコミュニケーション以上に難しさを感じました。
今自分が考えたことを伝えることやメンバーからの意見を聞くことなどのコミュニケーションを行いながら、開発を進めることがここまで難しいとは思っておらず、苦戦しました。ただし、悪い面だけでなく、メンバーからの新鮮な意見を取り入れられたことや、自分が考えた意見を他者を通して形にできたことなど、面白くてやり易いという面も感じ取ることができ、非常に有意義な時間を過ごすことができたと思います。
モブプログラミングはもちろん、最後の座談会での本音トークはとても参考になりました。
「モブプログラミングが難しかった」という感想も多くありましたが、「一人では出ないアイデアが出た」「自分が考えた意見を他者を通して形にできた」など、ポジティブな感想も見られました。
自分の意見を伝えることや相手の考えをコードに反映させることはとても難しいですが、その分チーム全員の思考が束になってより大きな課題に立ち向かうことができます。
学生の期間にチーム開発を経験出来る機会は中々無いので、是非エムオーテックスのインターンを通してその楽しさ・難しさを体感して欲しいです。
エムオーテックスインターンについて
採用関連情報
採用については、下記ページからご覧いただけます! インターンをはじめ、エムオーテックスに興味のある方はぜひご覧ください!
■採用ページ www.motex.co.jp
感想
以上が冬のインターンシップで実施した内容になります。
1日間開催の都合上、課題のボリューム調整などが難しかったですが、何とか無事に終えることが出来ました。
参加者により良い体験を提供出来る様、今後も改善を続けていきます!
引き続きエムオーテックスでは2023年度も夏・冬とインターンシップが実施されますので、もし少しでも興味を感じていただけたらご応募下さい!!