楽天サマーインターンで優勝してきた
目次
インターンの内容
楽天O-netや楽天競馬などを開発しているOSPDという名前の部署で、平日5日間を利用して行われる短期インターンでした。
「高齢者と若者をつなげるWebアプリ」というテーマでチームごとにプロダクトを作り、最後にプレゼンをして順位を決めるという形式でした。
4人のチームにリードエンジニアレベルのメンターの方が3人ついてくださり、サービス企画から実装、プレゼンまでずっとフィードバックを与え続けていただけるという贅沢な環境でした。
サービス開発の醍醐味を感じられたと思います。
参加人数は学生12人で、4人1チームとして3チームに別れて競う形式でした。
サービス企画
まずは最初の1日と2日目の夕方くらいまでをサービス企画の時間に使いました。
いつも使わない脳を使ってとても疲れましたが、得るものも多かったです。
チームメンバーでアイデアをまとめ、メンターの方々にフィードバックをもらってブラッシュアップしました。
そして、2日目の午前にOSPDのプロデューサー陣にプレゼン形式で発表し、またフィードバックをもらってブラッシュアップしました。
コンセンサスを取ることの難しさと重要性
4人のチームで1日半という短期間でどのようなサービスを作るかを考えるには、「コンセンサス」を取ることがとても大事になってきます。
サービス企画に慣れていなかったので、アイデアを固めるのはとても難しかったですが、それよりも難しかったのは、「細かい部分でみんなの意見を一致させる」ことです。
大枠の意見は一致していても、細かい部分まで確認していくと、「あれ、そうやったっけ?」とメンバー同士が疑問を持ち合うことは珍しくなかったです。
とことんチームで話して細かい部分まで一致させていく必要がありました。
そのあたりをどこまで確認し、一致させ、コンセンサスをチームで取ることの重要性とその難しさを学びました。
煮詰まったときの対応
アイデアが煮詰まったときには「第三者の意見を聞く」のと「課題から見つめ直す」というのが大事だな、と学びました。
言葉にすると当たり前に聞こえますが、これが意外と難しく、そして大事でした。
第三者の意見を聞く場合は、「今まで自分たちがどのように考えて、どのような結論に至っているが、どのような問題があるか」を言葉にして説明する必要があります。
さらに、課題を見つめ直し、その課題を解決するようなアプローチを考えることが一番良いサービス企画のやり方です。
チーム開発
サービス企画が終了すると、2日目の夕方から4日目の午前中までの期間で実装に落とし込みました。
チーム開発の経験はありましたが、0からチーム開発をスタートした経験はあまりなかったので良い経験になりました。
0からのチーム開発
4人チームのうち僕を含めた2人はSwiftでクライアントサイドを開発し、他の2人はサーバサイドをPHPで開発しました。
チーム開発自体は初めての経験ではありませんでしたが、学生だけで0からチーム開発を「始める」経験は初めてでした。
.gitignore
の設定などのiOS開発の一般的な知識を共有せずに開発を始めてしまったため、コンフリクトが頻発してしまったりしました。
自分だけが理解していても、チームメンバーが知らなかったり、いくつかのスタイルがあったりするので、開発を開始する前にコーディングスタイルや.gitignore
について共有・確認するべきでした。
「妥協する」ことの意味
「妥協する」とは、「目的を達成するために手段を代替する」という意味で、目的を変えてしまうものは妥協ではありません。
妥協したために最初に設定した目的が達成されない場合、それは妥協ではありません。
妥協することの意味を今まで理解しているようで理解していなかったと思いました。
短い実装期間であったため、時間の都合で実装できない部分がいくつかありました。
そのとき、妥協して実装しない部分を決めることは珍しくありませんでした。
しかし、そのとき、本当の意味での妥協をして、期間内に収まるように調整することが大切だと学びました。