Platinum Data Blog by BrainPad

株式会社ブレインパッドのデータ活用に関する取り組みや製品・サービス開発の裏側、社員の日常などをご紹介します。

インターン体験記 -エンジニアをめざして要件定義からリリースまでを経験してみて ー

今年4月にブレインパッドに入社した新卒社員が、入社前の4ヶ月間にわたり、マーケティングプラットフォーム本部 開発部にてアルバイトインターンをした体験記を書いてくれましたので、ブログで紹介します!
f:id:brainpad-inc:20190405101250j:plain

こんにちは、2019年4月に新卒エンジニアとして入社した新谷です。
入社前の4ヶ月間、マーケティングプラットフォーム本部(以下MP本部)の開発部でのアルバイトインターンをしていました。
今回は、インターンの内容について紹介します。

業務内容〜肉会スケジューラ〜

ブレインパッドでは社内交流の活性化を目的とした、「肉会」と呼ばれる食事会支援制度があります。

毎月2回、全社員を3名ずつの組に分けて各組に食事会の案内メールを送付します。
この案内メールが送られた3名が全員「参加する」と回答した場合、会社から一定額まで補助金が出るという、社員には美味しい取り組みです。

f:id:brainpad-inc:20190405101912p:plain
肉会システムのホーム画面

従来の肉会システムでは、開催日時や場所は参加者がやりとりをして決めることになっており、マッチしても日程を決めるのが億劫だったり、お互いが遠慮して取りまとめ役が決まらずに流れてしまう、という課題がありました。

結果としてマッチした組のうち、4割は肉会を開催しないという状況でした。

この問題を解決できないかと考えていたところ、「参加者のカレンダーを読み取って適切な候補日を提案してくれる機能がほしい」という先輩の声があり、自分としてもそれならできそうだと思ったので、先輩社員のサポートを受けながら「肉会スケジューラ」を開発することになりました。

これが今回のインターンのメイン業務内容です。

■実際の作業

今回のインターンでは、要件定義からリリースまでの一通りの手順を経験しました。

まずスケジューラの目的・機能・実現方法をまとめて、肉会を運営している人事部やエンジニアの皆さんにプレゼンをしました。

どのプラットフォーム上で何の仕組みを使えば実装が可能かを決定する作業については、実現方法の選択肢として挙がっていた技術がいずれも使ったことがなく、ひとつひとつ調査しながら進めていったので大変でしたが、ゼロからサービスを考える経験ができたのは収穫でした。

f:id:brainpad-inc:20190405102202p:plain
プレゼンで用いたスケジューラ仕様説明の資料の一例

プレゼンの時にもらったいろいろなフィードバックを反映し、ゴーサインを頂いた後、実装に移りました。

カレンダーの読み取り・書き込みの権限をOauth2などのプロトコルを用いて実装する必要があったのですが、一部のライブラリが非推奨になっていたり、そういった認可周りで特に苦戦しました。

また、プラットフォーム特有の縛りもあり、当初想定していた実装方法から変更を余儀なくされたこともありました。

それでも本部のメンターの方々のおかげで、なんとか企画通りのサービスが実装できました。

個人的には実装時は巨大なピタゴラスイッチを組んでいる感覚で、個々のパーツを組み合わせて非自明な処理が実現できた時には達成感がありました。

その後、検証環境でのテストや社員へ周知するための資料作成を経て、本番環境へのリリースまでこぎつけることができました。

リリース前は障害が出たらどうしようとか不安でしたが、思ったよりも何事もなくサービスを提供できてよかったです。

ただ、エッジケースを踏んだり、利用者にとってイマイチな仕様もあったので、今後サービスを作る上でそういう点を未然に解決したいと思いました。

f:id:brainpad-inc:20190405114803j:plain

■インターン後の感想

今回のインターンはとても実りの多いものでした。

特に感謝しているのは、希望に沿った業務内容・リモートワーク・充実したコードレビューの3点です。

まず、業務内容の希望についてですが、インターン生の希望をかなり初期の段階から聞いてくださる環境で、それまで会社では上司の指示にひたすら従うものと思っていた私にとっては衝撃でした。

例えばスケジューラ開発業務も、こういうサービスがあったら社員が楽なのではないかという、メンターとの雑談から生まれたものでしたが、それをインターン中の業務として認めてもらいました。
その後、実際の製品開発もしてみたいというお願いにも応えて下さり、希望に沿った業務ができたので、最後までモチベーションを保つことができました。


次に、今回は一身上の都合でフルリモートでの業務を希望したのですが、快く受け入れてくださりとても感謝しております。

フルリモートだと対面での指導とは勝手が違うので、大変な部分もあったと思いますが、そんな中でも手厚く指導をして頂きました。
月に一度出社し、スプリント計画・レビューに参加したり、自社製品の仕様や最近の開発内容・体制などを紹介して頂いたりしました。

これらは入社・配属後にどの開発チームを希望するか考える際に、とても参考になる情報でした。


最後にコードレビューについてです。

今まで我流でコードを書いていたので、本部のメンターの方々から頻繁に詳細なコードレビューを頂けたのは大変ありがたかったです。
勤務時間の半分以上はプルリクエストへのコメントをみて修正する時間で、この時間が一番得るものが大きかったと思います。

特に、再利用性やメンテのしやすさを考えたアーキテクチャについてのコメントがありがたかっただけでなく、参考になる読み物を紹介して頂いたりしました。

f:id:brainpad-inc:20190405102551p:plain
アーキテクチャに関するありがたいコメントの一例

今回のインターンは入社前の訓練として最適かつ楽しいもので、入社後にどう行動しようか考える上で良い指針となりました。

今後は大規模システムの業務で運用に適したコーディングを学んだり、推薦システムの拡張業務で機械学習側にどっぷり浸かる仕事がしたいと思っております。


ブレインパッドでは、一緒に働く仲間を募集しています!実際のビジネスで自分の知識・技術を活用してみたいという方、ぜひエントリーください!
www.brainpad.co.jp