アットウェアインターンシップ 活動報告

はじめに

公立はこだて未来大学 学部3年の石戸です。8月21日から9月8日までの3週間、アットウェア横浜本社で開催されたインターンシップに参加させていただいたので、その内容などについて簡単にまとめたいと思います。
「Webサービス・アジャイル開発 実践」という募集要項に対し、参加した人は全国各地から集まった大学生と高専生合わせて11名。
全員の力を合わせて「プロジェクト内のタスクを管理するWebサービス」を作成しました。

参加の経緯

インターンシップに参加した理由はいくつかあります。

  • 大人数での大規模開発がやってみたい
  • Webサービスを作ってみたい
  • アジャイル開発の技法について学び、実践したい
  • 実際の現場での雰囲気が知りたい

大きな理由は以上4つです。アットウェアのインターンシップは、自分のやってみたいこと・経験したいことが盛りだくさんだと直感し、応募・参加しました。

活動内容

1週目:アイスブレイク・勉強会

初日はアイスブレイクを行いました。その日に初めて会った人たち数人+社員の方1名でとチームを組んで話し合いながら、ゲームを進めていきます。その中で開発に活かせる手法について学びました。例えばタスクの可視化ができる「かんばん」です。タスクの状態を「ToDo」「Doing」「Done」の3つに分け、そのタスクが現在どのような扱いかをすぐさま把握することができます。2人1ペア(1チーム3人1ペア)を作成し、ペアごとに機能を作成するタスクを割り振っていきます。ちなみにこのペアは1週間に1回変わります。
2日目はインターン期間中に作成するプロダクトの内容決めをし、作成に必要な機能の洗い出しをして、必要な時間を計算しました。はじめに述べたとおり、「プロジェクト内のタスクを管理するWebサービス」を作成することになりました。
3日目は集団開発で必須なgitについて勉強し、開発に必要な技術についてペアプログラミング方式で勉強・開発をしました。ペアプログラミングは1人がキーボードを叩き(ドライバー)、一人が指示を出す(ナビゲーター)開発手法です。1週目では私はドライバーとなり、ペアの指示に従って実装していきました。
4日目以降は各ペアごとに2日目に割り振ったタスクをこなし、機能を作成していきました。

2週目:開発・プログラミングコンテスト

週の初めには先週の内容についてKPTで振り返りを行いました。KPTは「Keep(保っていきたい=良かった点)」「Problem(改善したい点)」「Try(試したいこと)」の3つを考える振り返り手法です。先週の良かった点、改善点を元に試したいことを考えました。
2週目のペアが「自分の開発技術を磨きたい!」とのことだったので、自分はペアへの実装方法の提案や、実装方法の調査などをメインに行いました。
金曜日はインターン生全員でプログラミングコンテストに挑戦しました。出された問題に対し、適切なプログラムを作成する競技プログラミングです。ペアで5つの問題に挑戦します。私のチームは5問全問正解することができました。最後の問題はとても解き甲斐があり、楽しかったです!

3週目:開発・成果発表会

3週目もKPTで開発に取り組みました。この週が最終週なので、全員完成に向かって頑張って開発を行いました。
私は全体のデザインの統一や、全員の作業ブランチのマージ作業を担当しました。コンフリクトの解消や、マージして気づく不足点などの補完を行いました。地味ながらも重要な作業で、大変だったと感じています。
最終日は成果発表会です。参加者全員がこのインターンで感じたこと、成長したことなどを思い思い語りました。

作成したもの

作成したものはプロジェクト内タスク管理Webサービス「ぷろまね。」です。

image-1.png

色々機能はあるのですが、一番わかりやすいのはこの画面です(開始日でこの記事を書いた日がバレバレ・・・)。プロジェクトマネージャー(以下PM)がプロジェクトおよびタスクを作成し、そのタスクをこなすプロジェクトメンバー(以下メンバー)を指定します。メンバーはタスクに対しPMに参加申請をすることができ、PMはその申請をお知らせ画面で受け取り、参加の可否を審査します。タスクに参加しているメンバーはタスクに対し進捗度の更新やコメントを残すことができ、別のメンバーとサービス上で交流することができます。
実はこの画面、最終日から少しだけ個人的に開発を進めたものになります。最終日時点では終了日の未設定機能が未実装だったり、PMでなくてもタスクを削除できるといった実装の荒い部分が残っており、自分でちょっとだけ改修しちゃいました。インターンが終わっても開発のモチベーションが続き、作ったものを改善したい!と思って改修を進めました。この記事を読んでいる一緒に「ぷろまね。」を開発したみんなが、少し驚いてくれたら嬉しいです。

使用技術

Webサービスを作るにあたって、Javaプラットフォーム向けフレームワーク「Spring Framework」を使用しました。Spring Frameworkはユーザのログイン認証やMVC、データベースアクセスなどを簡単に実装できるものです。Webサービスの開発が比較的簡単に行えるもので、開発前はJavaの初心者でもインターン終了後にはそれなりにサービスが作れるんじゃないかといった上達が見えるすごいやつです。
その他使用した技術要素としては、HTML, CSS, JPA, JDBCです。HTML上のデザインはBootstrapを用いています。

感想

最終日には「短かったなぁ」と感じるほど濃密な3週間でした。開発では社員の方にわからない場所を丁寧に教えていただいたり、コードレビューをしていただいたりと、とても親切に指導していただきました。他にも集団開発でしか経験できないことを多く学ぶことができました。会社の雰囲気もとても良くて、社員の方とも一緒にお昼ご飯を食べ、会話が盛り上がる一面もありました。歓迎会や交流会も開催していただき、開発以外でもとても楽しい3週間でした。この度はインターンに参加させていただき、本当にありがとうございました!