エムオーテックス株式会社が運営するテックブログです。

エムオーテックス Summerインターン 2022 開催報告!!

はじめに

インターンシップ担当の伊藤です。 今回は、エムオーテックスで夏に実施されたインターンシップについてお届けします!

概要

毎年、開発本部主催のインターンシップを、夏は5日間、冬は1日の期間で実施しています。 本ブログでは、今年実施した夏のインターンシップについて、実施内容と参加者の声をお伝えします。 なお、エムオーテックスでは他の部門(営業、サポート)でも毎年インターンシップを行っています。

「参加した学生さんに少しでも貴重な体験をしてほしい」、「エムオーテックスに魅力を感じてほしい」という現場の思いから、新しい技術、変化しているプロセスを取り入れた形で、毎年インターンシップの内容を変えています。

今年のテーマ

今年は、次の2つを意識してインターンシップの内容を考えました。

  • AWS に触れてもらう
  • 実際の業務に近い体験をしてもらう

1つ目はクラウドプラットフォームのAWSを体験してもらうことです。 エムオーテックスが開発している LANSCOPE でも使用してますが、今やクラウドサービスには不可欠な要素です。 AWS は個人でも無料で触れることができたり、学べる環境が意外と多いのですが、やはり学生さんは触れづらい、とっつきにくいだろうということから今回のメインテーマに据えました。

2つ目は業務体験です。 インターンシップなんだから業務体験ができるのは当たり前と感じるかもしれませんが、一重に業務体験といえど1から10まで全部体験してもらってたらとても5日じゃ終わりません。ではどこに注目するかですが、今回は特に開発業務に寄せようということになり、以下の4つを意識しました。

  • フロントチームとバックエンドチームに分かれて開発をする。
  • DDD (ドメイン駆動設計)で開発する。
  • Git で管理する。
  • モブプログラミング(以降、モブプロ)

できるだけ業務に近いプログラミングをしてもらうことで、会社の風土、空気感を知ってもらいたいという狙いです。

以上を踏まえて学生に取り組んでもらった課題が、「TODOリストの作成」です。

課題の話

何を作ったか

前述したとおり 「TODO リスト」です。 「TODO リスト」だけだとイメージがつきづらいかもしれませんが、「Microsoft To Do」を参考にしてもらえると、イメージしやすいと思います。

www.microsoft.com

開発環境

インターンシップで利用した環境は、次のとおりです。(開発環境はエムオーテックスが用意し、インターンシップ開始時に学生に貸与しています。)

■共通

  • Amazon WorkSpaces
  • AWS
  • Git

■バックエンド

  • Python3.8

■フロント

  • TypeScript

ゴール

学生には、フロント開発/バックエンド開発を一から作るのではなく、ある程度ひな形を用意し、そちらを更新するような形式にしました。穴埋めが終わると以下の2点を達成できるようにしています。

  • TODO の「タイトル」「詳細」の CRUD(Create、Read、Update、Delete)
  • 進捗ステータス管理(進行中、完了、削除 etc...)

上記2点の課題を達成したチームは、ソート機能やフィルタ機能などを追加で開発してもらいました。

フロント開発では Angular を使用して SPA を作っていましたが、私はバックエンド開発を担当していましたのでここからはバックエンド開発で実施した内容を説明します。

AWS構成図を書く

簡単ではありますが、今回 AWS 構成図も学生さんに書いてもらいました。 見たままですが、API を叩いて Lambda が DynamoDB を処理するという流れになります。

ソースコードなど

バックエンドサイドでやることは、大きく分けて2つです。

  • Swagger を書く
  • コーディングする

まずは Swagger です。前述したとおり穴抜けになっています。 抜粋ですが、穴抜けは大体こんな感じ。(左:模範解答、右:学生に渡したコード)

定義づけばかりなので、何が必要かを考えて埋めてもらう感じになります。

続いてソースコードです。 こちらはなかなかハードですが、DDD で設計してます。

大まかなファイル構成。ここではドメインの具体的な説明は省きますが「DDD わかりやすく」とかで調べると出てきます。

試しに Create を開いてみると下記のような穴抜けになっています。実部がないことに気づけば、呼び出し元をたどると思います。下の順番に埋めていけば、ある程度動くようになります。(左:模範解答、右:学生さんにお渡ししたコード)

  1. ドメイン、ドメインサービス
  2. インフラ
  3. インターフェース

Swagger にしろ、本文にしろ調べれば、正解に近いコードが出てきます。 上記の流れで埋めていけば、エラーを返してくれるようになります。後はエラーをつぶしていき、動作するコードが完成します。 DDD に限らずですが、処理がディレクトリごとに分割されていると学生さんには逆にわかりづらいかもしれません。 最初こそ時間がかかりましたが、そこは社員も入ってフォローしつつ完成を目指します。1つの API が作成できれば、他のAPIも同じ流れのため、学生さんが主導で作成できていました。

動作確認

穴埋めが終われば AWS にデプロイして画面と疎通します。 肝心の AWS ですが特別なことはしていないのでここでの説明は割愛します。

実際に学生さんに作成していただいた画面になります。

「Microsoft To Do」と操作感はほぼ一緒かと思いますが、TODO の CRUD 処理がちゃんと行えることが確認できました。

課題について所感

参加いただいた全チーム CRUD の作成ができました。 かなり苦戦したチームもありましたし、テンポよく実装できて追加要望もできた!というチームもありました。 学生さんもいろんな分野の方が参加されているので、得意不得意はありましたが、十分な結果だと思っています!

参加者からの感想

参加者:27人(5日間×2回)

満足度

Q.インターンシップの満足度を教えてください(5が最高評価)

5:21人
4:5人
3:1人
2:0人
1:0人

Q.満足度の理由を教えてください(一部抜粋)

  • モブプログラミングという、学校や個人ではできない開発体験ができたから。

  • ほぼ触れたことない技術が多く、すべてが新鮮でどのような作業でも、楽しく開発ができました。

  • 実際にアプリの開発を経験したいという動機で参加したので、とても満足できました。

  • AWSに関してほとんど知識がなかったので、非常にいい経験になった。

  • 社員さんの雰囲気もよく、実務に近い形でチーム開発の経験ができたため。

  • 5日間びっちり開発に専念できたこと、さまざまな方がおられるチームで開発できたことが良い経験になったと感じました。

満足度については、とても高い評価をいただけました!! 理由の中では「モブプロができた」というのがダントツで多かったです。 実際に学生さんから高評価を受けると、狙い通りだったと思います。

印象に残ったこと

Q.一番印象に残ったことはなんですか

  • LambdaやDynamoDB、API Gatewayなど、情報をどのようにして受け渡ししているのか知ることができたのはよかった。

  • 1人で作るのではなく、コミュニケーションをしながら開発することが初めてだったのでとても魅力的で楽しかった。

  • チームのメンバーと協力して作成したものが実際にエラーを出さずに動いたことがとてもうれしく、印象に残りました。

  • プログラミングについても、働き方についても、なんでも社員の方がすごく丁寧に教えてくれたことが一番印象に残った。

  • 私がドライバーを担当している時に、何をすればよいのかわからないことが多々あった中で、社員の方やチームメンバーが逐一フォローをしてくださり、詳しく説明を受けることで課題をクリアすることができ、最終日に達成感を味わえたこと。

全体的に「難しかった」「苦戦した」という感想が多かったですが、同じぐらい「完成したのがうれしかった」という意見もありました。 プログラミングに限らず、開発業務の楽しいところはまさにここだと思っています。なかなかハードな課題でしたが、その分大きな達成感を得られたのでは思います。

おわりに

だいぶ端折ってしまいましたが、以上が夏のインターンシップで実施した内容になります。 感想の中には「進行がグダついていた」など厳しい意見もありましたし、社員からも多くの課題をもらいました。今後、よりよいインターンシップになるよう改善していきます!

学校では間違いなく触らない内容ばかりですし、例年と比べても課題がハードだったため、インターンを開催するまで内心穏やかではありませんでしたが、インターン終了時に多くの学生さんから「楽しかった」と言ってもらえたことがとても励みになりました。 今は AWS や API といった内容が濃いですが、今後も新しい技術や、設計の要素をインターンシップにも取り入れていきます!

引き続き エムオーテックス では 2022 冬、2023 夏とインターンシップが実施されますので、もし少しでも興味を感じていただけたらご応募下さい!!