今年の8月22日~26日までの5日間オンラインで実施された株式会社楽天のサマーインターン「二子玉川夏の陣2022」に参加しました。本記事では、来年以降当インターンに参加する方々のために、インターン参加に応募してからこの5日間を乗り切るまでの振り返りを書いていこうと思います。
選考会通過まで
私が参加した「新規プロトタイプ開発コース」ではエントリーシート(ES)提出・外部サービスを利用したコーディングテスト・オンラインでの最終面接に参加する必要がありました。
ESには私がこれまでにFlutterでモバイルアプリを複数人で開発した経験や、大学院での研究、学会で書いた論文について事細かに記述して提出しました。コーディングテストは制限時間もあるので相当身構えて臨みましたが、想像していたよりかなり簡単だったように思えます。高専・大学の情報科で真面目にプログラミングをやっていれば突破できるかなといった感じです。
概要
当インターンはハッカソンのような形式で、5日間の日程で
- 4~6人程度のチームを作る
- 初日に大まかなテーマが掲示される
- テーマに沿って開発するプロダクトの方向性をチームで検討
- 実装の方法やメンバーの役割分担などを決定
- 開発
- 最終日にプレゼン (英語で発表)
を行うという流れになります。スケジュールは非常にタイトで、開発にかけられる時間は1日半程度です。わずかこれだけの時間でデモを動かせるレベルまで持ってこなければなりません。
開発の進め方
開発までにメンバーの中でこれまでの開発経験や得意な言語・フレームワークを話して、開発の方針を決めていきました。といっても私がいたグループはWebやモバイル向けのアプリ開発や複数人での開発に明るい人は少なく、バックエンドを用意せずともアプリ単体で完結するシステムを構想していたため、私が得意なFlutterを使ったiOS/Androidアプリ開発を、全員で使い方を覚えるところからやっていこうということになりました。特に、1日半という開発期間の短さから、そこまで大規模なシステムは(他のチームも含めて)作れないだろうという予想をしていました。
こちらのサイトのTo-Doリスト作成手順を残りのメンバーに勉強してもらいながら、私が画面遷移の流れやProvider(Riverpodを導入すべきなんでしょうけど、ネット上の情報がまだないのと初学者には複雑すぎるので昔ながらのProviderを選択)による変数の管理などの大枠を考え、各画面ごとの開発をそれぞれのメンバーに担当していただくということにしました。最終的にこんな感じのシャンプやマスク、食料品みたいな消耗品の買い替え時期を管理するアプリ「reBUYnder」ができました。↓
振り返って
インターンが終わってから改めて自分達の仕事を振り返ってみると、最善を尽くせたとは言えないというのが正直なところでした。理由を挙げると
- 単独のモバイルアプリで勝負していたのは我々くらいで、他の多くのチームではもっと複雑なシステムを開発していた。
- 他チームはフロントエンド、バックエンド、その他(UIなど)の役割をそれぞれ得意な人が1〜2人で担当して回していた。また、それぞれ楽天レシピAPIを使ったり独自APIの実装、画像認識モデルのフレームワークを利用したり経路探索アルゴリズムを独自で作ったりと、各々のチームごとに持てる技術を最大限活かし、プロダクトにインパクトを与えていた。
- プロダクトの方向性を詰めるのが足りず、作りたいものの具体的な新規性、独自性、面白さのアピールが足りていなかった。
- 最終発表のスライドのクオリティもかなり力が入れられていた。 パッと見の可読性や全体的な統一感を保つのはもちろん、上位のチームではプロダクトのロゴやチームメンバーのZoomの背景まで作ったりと、細部までこだわって作り込まれていた。一方我々はマークダウンでスライドを作れるツールを使って必要最低限のクオリティでスライドを作ってしまっていた。
という感じです。私は過去にハッカソンに参加した経験があり、自分達が作っているもののクオリティの低さは気にかかってはいたものの、集団開発にもハッカソンにも不慣れな他のメンバーに負担をかけたくないと思って口出しは控えていました。しかし今になって考えてみると、多少なりとも経験のある私が色々と先導すべきだったなと少し後悔しています。
最後に
本記事では楽天夏インターン2022の体験談を語ってきました。来年以降に参加する方には、ぜひ参考にしていただきたいです。また、無事選考に通って本番でいい結果を残したいと思っている方は、
- プロダクトの方向性、新規性、独自性、既存サービスと比べた優位性、面白さ、...などを明確にする。
- チームメンバーの技術と人的リソースを余すことなく利用し(FigmaやTrelloなどのツールを有効に活用するのがおすすめ)、限られた時間で出来る限りいいものを作る。
- 発表スライドも可読性とデザイン性、内容のわかりやすさをよくすることに注力し、発表内容を作り込む。
ことを目指してみるといいと思います。ぜひぜひ頑張ってみてください!