MonotaRO Tech Summer internship 2020 エンジニアリングコース フロントエンド 参加レポート 2

はじめに

はじめまして、神戸大学システム情報学研究科の寺川です。2020年9月14-18日の、モノタロウサマーインターンシップ第2タームに参加しました。これは実習の振り返りレポートです。

参加の経緯・目的

以前から何度か工作のためにサービスを利用していたというのと、LabBaseにてサマーインターンのご案内をいただいたのがきっかけです。

募集はデータサイエンスとエンジニアリングの2コースがありました。就活も研究職と開発職で迷っていたのですが、今の自分にとっては大規模なチーム開発体験のほうが得難いと考え、エンジニアリングコースに応募しました。

普段は数値計算や組み込み系開発を主に行っておりWeb系の知識はほとんどなかったので、インターンでは個別の技術的なチャレンジというよりも、業務フローや制度設計の考え方などの”企業での開発”を勉強するつもりで実習に臨みました。

実習内容

配属先

EC開発部門の改善チームという、通販サイトをより良くするというチームに配属されました。同じグループには私と合わせて2人の実習生と、それぞれにメンターの方が1人ずつついてくださるという構成でした。

課題

メール購読設定のオプトインを促すバナーを特定のページ下部に表示する、という変更のABテストを行いました。

ABテストとは、何らかの変更の影響を調べるために一定期間ユーザーをいくつかのグループに振り分け、それぞれに異なるページ・動作を提示して様々なメトリクスを計測するという手法です。

具体的には、ABテスト対象の機能とバナー等のデザインが決まっている状態で、その動作をjavascriptで実装、テスト、リリースまで体験するという課題でした。不慣れな分野だったのでキャッチアップできるか不安でしたが、実習では丁度いいレベルの課題を振っていただけました。

f:id:monotaro-tech-blog:20210409110608p:plain
図1:対象キャンペーンのランディングページ。下部グレーのバナーの表示/非表示のABテストを行った。

やったこと

実習は全日程リモートで行われ、自宅のPCからリモートデスクトップで社内環境に入るという方法が取られました。

実装としては、(1)アクセスユーザに対しA/Bの振り分け判定、(2)購読状態に従ってバナーの表示/非表示を設定、(3)購読ボタンに設定変更処理を紐付け、(4)統計情報を送信する必要があります。前半で実装を行い、3日目の午後にリリース、4日目に計測をして、最終日に分析と発表という流れでした。以下、時系列で振り返ります。

初日は顔合わせと全体ミーティングのあと、環境開発の構築を行いました。ECサイトの大きなシステムの中で、どのファイルが今回の変更に関わっているか、関連するチケットはどれか、などを教わりました。

3日目までに実装を行いました。実装・プルリクに対してはレビューをいただいたほか、作成した仕様書をもとにテスターさんにテストをしていただきました。

リリースは3日目の午後の予定でしたが、少しトラブルがありメンターの方に大変お世話になりました。事象自体は自分の手の届かない部分だったのですが、作業のフローやそれに必要なものをもっと意識しておくべきだったと思います。また、この日は終業後に他のグループの社員の方やインターン生との座談会があり、お互いに何をやっているのかや、普段の働き方などを聞くことができました。

4日目はABテストの実施と計測ということで、最終日の発表資料の準備と、テスト駆動開発のチュートリアル的なペアワークを行いました。この日はインターン生とCEO,CTOとの座談会を設けていただき、組織運営や働き方について色々とお話を伺いました。

5日目の朝にABテストの結果がわかり、結果から言えることをまとめて最終成果発表を行いました。

f:id:monotaro-tech-blog:20210419145315p:plain
図2: 4日目のTDDブートキャンプの様子

何を学んだか

上記のように、一通りの業務フローを体験できました。普段の趣味開発との差分を知りたいと思って参加したため、会社での大きなサービスの開発の雰囲気を感じられてよかったです。特に、タスクやそれに関するやり取り、作業時間見積もりとその振り返りなど、さまざまなものが可視化されていることが印象的でした。

また、何度か気になったことの歴史的な経緯を質問した際に、開発や業務の進め方が思った以上に試行錯誤で、変化しながら進んでいるんだなというのを知りました。

おわりに

5日間、それに様々な準備も含め、本当にお世話になりました。

疑似課題ではなく実際の業務を体験でき、開発職に対するイメージが具体的になりました。

また、期間中に何度か交流会の機会をいただいたほか、直接課題とは関係のない定例ミーティングなどにも参加させていただけたことは、特にリモートなのもあって様々な雰囲気を知ることができる貴重な体験でした。

社員の皆様には、決して易しくはない普段の業務のなかインターンを受け入れていただき、本当にありがとうございました。この経験を活かして、普段の開発や就職活動を進めていきたいと思います。