この素晴らしい世界に変革を!

とある物忘れの激しい高専生による備忘録

DeNAサマーインターンに参加した話

はじめに

ヤマゲンです。今回はDeNAさんのサマーインターン・プロダクト開発コース( https://student.dena.com/internship/product_development/ )というのにiOSエンジニアとして参加してきたのでその参加記を書こうと思います。

インターン

このインターンですが、インターン本番にたどり着くまでに面接が二回あり、どちらもSkypeで行いました。インターンへのきっかけはサポーターズさんでの1on1面談でDeNA社員の方と喋り、楽しそうだなと思い行くことにしました。正直面接時はいろんなインターンに応募しメンタルがやられているタイミングだったので何を言っていたかはあまり思い出せませんが、どんな開発者になりたいかとか、どんなものを作りたいかとかを聞かれた気がします。合格発表的なものは電話で来て、あれは車校終わりでDDRをしに地元のゲーセンに行こうとしていたら人事の方から電話が掛かってきて焦った思い出があります。そこからチームが組まれてキックオフとかあったのですが、そのキックオフがテスト最終日で、結局行けませんでした。事前にどんなライブラリを使ってどんな技術があるのか等の案内があったのでちょっと使い方予習して本番を迎えたという感じです。インターン外でも一波乱あり、現在自分が参加しているSecHackの福岡回終了日とインターン初日が被ってしまうというのがあり、なんとかSecHackを早めに切り上げインターンに行かせてもらうことができました。そんなこんなで割と最初から極限状態でインターンを迎えることになりました。

インターン初日

f:id:ymgn_htn:20190826132212j:plain

f:id:ymgn_htn:20190826132236j:plain
DeNA渋谷ヒカリエの20階〜26階で今回の会場は21階でした。壮観。

まず、今回のプロダクト開発コースでの課題としては、「一度サービスインされているアプリがあまりにひどかったのでメンテに入り、なんとしてでも3日間で最高のアプリに仕上げリリースしなければいけないので技術で乗り切ってくれ!」みたいな感じでした。そのアプリというのはチャットアプリで、様々な部分に罠、というか良くない部分が仕込まれており、それを解決しながらさらなる価値も提供していこうみたいな趣旨でした。チームは4人(クライアント2人、サーバ2人)という構成で、5チームありました。2チームはiOS、2チームはAndroid、1チームがWebという感じでそれぞれのチームでそのアプリをどのようにするかで競い合う、みたいな感じのことをしました。チームメンバーとは一度ハングアウトで喋ったことがある程度でキックオフに行っていない自分はみんな初めましてでした。しかしまあすぐ意気投合し仲良くなることができました。今までで一番コミュニケーションを発揮した気がします。まあそんなこんなでどういう方針で進めていくかということを最初の状態のアプリを触って適当に問題をたくさん出していきました。自分はUXを高めることに重きを置こうとして見ていたのですが、後からメンターさんに聞いた話だと、ここの時点でコードにも罠があることに気づいて欲しかったということを言われました。課題をとりあえずたくさん出し、優先度をつけて課題に取り掛かりましたが、これ直すだけでいいんかなあって感じはしていました。1日目はそんな感じで進んでいき、とりあえず久しぶりに書くSwiftに苦戦しながらもいい感じに動かせていました。しかしイマイチパッとせず、どうにか他のチームとの差別化をしないとダメだよなあと思って色々話を切り出していたのですが、やはりみんな現在のタスクで精一杯になってしまっていてそれ以上の価値を出すことが難しそうと感じていました。どこまで見られるのかというのをわかっていなかったので、自分の今までの知識を総動員して、こういうときは大抵マーケティングな視点でも見られるだろうなと思い、ペルソナ(どういう人がこのアプリを使うのか)というところを決めた方がいいんじゃないかと思い喋っていましたが、普段個人で開発してる人はなかなかそういうこと考えないと思うのでなかなか話がまとまらずちょっと腑に落ちない感じで1日目が終了しました。今日やるタスク的には終わっていましたし着実に前進している感じはあったのでちょっとホテルに着いてチームでちょっと話してちょっと開発して3時くらいには寝ました。

インターン2日目

最初の朝会で新たな課題が追加されることになりました。内容的には「このアプリは格安スマホにプリインストールされ、プロモーションとして有名人に質問できるという機能をつける。それによって想定されるトラフィックは、毎秒1万件、同時接続10万人」という明らかにヤバい気配がするものでした。これによりこの日やろうと思っていたことの大半は切り捨てられ、どうするかを大慌てで決めました。まずクライアントとしては大量リクエストがあってもちゃんとぬるぬる動くということをしていました。もっとやばそうなのはサーバサイドで、とにかくずっと切羽詰まっていた感じがします。そうこうしているうちにこの日も終わり、振り返った頃には「俺たちなんも特徴がないから発表することなくね?」という危機感が発生し、ホテルに戻ったあと、メンターさん含め6人で集まり、方針決めを行いました。これは最終日前日の出来事でした。

f:id:ymgn_htn:20190826134438j:plain
これは2日目の昼ごはんに出た叙々苑の弁当。ご飯もホテルも最高のものが提供されました。

f:id:ymgn_htn:20190826134402j:plain

インターン3日目(最終日)

方針決めが終わったのは日も回り、0時になった頃でした。有名人との交流体験を良くすることに重点を置こうということでそこから一気に開発を進めていきました。クライアントは大方の実装を夜中にいい感じにし、寝たのは5時前くらいでした。眠いからレッドブルを飲んで眠気を飛ばそうと思ったら飛ばせないタイプの眠気だったのでレッドブル片手に完全に意気消沈していました。起きたらすぐにPCを開き実装をしていました。commitしてから出社を行い、とにかく発表に向けて調整を行なっていました。その間もサーバサイドはめちゃくちゃ実装していて、ずっと切羽詰まっていました。締め切りにはギリギリ間に合い、14時に無事提出することができました。それから発表資料を作り、発表の準備を行なって成果発表を行いました。僕らの発表順は一番だったので変な緊張感もなく割といい発表ができたかなという感じでした。特に深夜テンションで考えた仕様が大ウケしてなんか、もう大成功じゃね?とか思ってました。開発中は他チームの進捗や状況など全く気にする余裕がなかったのでこれが初めて聞く機会だったのですが、どのチームも違ったアプローチで開発を行なっていて面白いなあという感じがありました。それと同時に他の人の技術力や実装スピードを肌で実感し自分の未熟さを痛感していました。優勝チームは豪華某ホテルでの鉄板焼きご招待、という感じでしたが、うちのチームは優勝を逃してしまいました。しかしいい意味で結果的に尖ったプロダクトを作ってちゃんとデプロイできたというのがよかったなという感じでした。このあとはメンターさんと面談を行い、懇親会を行いました。懇親会ではいろんな人と喋ることができました。服がなかったのでSecHack365Tシャツを着て行ったのですが、それで目をつけてもらった感じもあってよかったなという感じでした。疲れたままみんなとお別れし、ホテルに着いたら一瞬で寝ました。

感想

こんな濃厚な3日間今まであったかなというほど濃密な時間をすごすことができたなという感じでした。とても楽しかったですが、とても疲れました。その分達成感も大きかったです。今回僕が得たものとして、世界の広さという感じがありました。もちろん技術力的な成長やUXへの理解も深まりましたが、今まで自分が知っていた世界と、これから踏み入る世界は全然次元が違うものだなということを感じました。今まで行っていたSecHackやセキュリティキャンプに着ていた人たちとはまた違った技術集団と関わることができ、自分の立ち位置やプロの世界というのを見ることができた気がします。もちろんそのプロの世界は他人事ではなく、2年もしたら自分が入らなければいけない世界だと考えるとおちおち夜も眠れません。もっと開発の経験を積んで、もっと技術や知識を伸ばして深め、さらに成長していかないと現場では戦えないぞ...ということを感じました。もっともっと勉強して、開発して、エンジニアとしてもっと成長できたらいいなという感じがしました。今回のインターンの総合的な感想としましては、大変でしたがめちゃくちゃ成長できていろんな世界を知ることができるめっちゃいいインターンでした!ぜひ後輩や他の方々で力試しをしたい、だとか、もっと大きな世界を見てみたい、という方はDeNAサマーインターン、おすすめです。楽しかった!!!

許可が出たので作ったアプリのUIを貼っておきます f:id:ymgn_htn:20190827210945p:plainf:id:ymgn_htn:20190827210954p:plainf:id:ymgn_htn:20190827211002p:plain