CyberAgent就業型インターン「エンジニアJOB」に参加してきました!

f:id:n_atmark:20171022011229p:plain

2017/8/7〜2017/9/1 の期間で、株式会社サイバーエージェントの就業型インターン「エンジニアJOB」に参加してきました!

僕の参加したエンジニアJOBは、メンターの元で「アドテク、ゲーム、メディア、インフラ、ラボ、スタートアップ等」 サイバーエージェントグループの様々な部署で実務に携われるインターンとなってます!

今回はこの「エンジニアJOB」インターンに参加して、「AWA」のサービスに携わらせていただきました!

AWA

f:id:n_atmark:20171022011736p:plainf:id:n_atmark:20171022011749p:plain

AWAは2015年5月にサービスを開始したサブスクリプション型の音楽配信サービスで、 世界最大規模の4,000万曲を配信しています。

iPhoneAndroid用にアプリがあり、CarPlayやAppleTVにも対応しています。

なぜAWAのプロダクトでインターン

f:id:n_atmark:20171022013711j:plain

僕の趣味の1つがライブ参戦で、普段からYoutubeなどで音楽を聞くことが多く、音楽配信系のアプリを何個か入れてます。
AWAもそのうちの1つで(さっき確認したら、2015年の6月から使っていたみたいです)、 UIの綺麗さだったりとかアニソン/ボカロが収録されてたりとか、(当時は)無料でフル尺が聞けたりとか 結構好きなアプリの1つでした。

実はSpotifyも招待コードが必要だった先行時期から触っていて、聞きたいアーティストによって両方使ったりしてたのですが、 AWAが料金体系を見直してフル尺が聞けなくなってからSpotifyに浮気していました。

自分がユーザとして使っているアプリに携われる。というだけでも十分な理由ですが、「AWAがどういうプロセスを経て 今のようなサービス体系になったのか」を聞いてみたくて今回のインターンを選びました。 (実はインターン始まる前にこの話は聞かせてもらいました)

AWAでやったこ

iOSチームでAWAのサービス開発に携わらせてもらいました。

  • 新機能の開発
  • 機能改修
  • バグ修正
  • ビルド速度の向上(調査)

など、GitHubのissueベースで業務を担当させてもらいました。

f:id:n_atmark:20171022014845p:plain

よかったこ

プロダクトにガンガンコミットできました。短いインターン期間ながら、スピード感を持って業務に取り組めたので良かったです。
実務に携わることで、環境や仕事内容を知ることができ、将来の見通しを持つことができました。

課題だと思ったこ

自分の「巻き込む力」がまだまだ足りないと感じることがありました。

チーム開発を行う上で、デザイナーやプロダクトオーナーと議論することは、プロダクトの方向性を決めるために必要不可欠で、インターンといえど、その部分に力を注げなかったのは課題だと感じました。

また、コードレビューで指摘される点がコピペに起因するものが多く、もう少し気を使えるようにならないといけないと感じました。

メンターさんからも「自走できるエンジニア」を目指して頑張って欲しい。と言っていただき、自分の行動を振り返りながら次の行動に繋げられるようになるべきだと思いました。

収穫できたこ

AWAiOSチームでは週1で「コミット振り返り」という時間を設けて、1週間で発生したコミットをチームメンバー全員で確認する作業を行なっていました。
プルリクエストの段階でコードレビューしていないメンバーの目も入ることで、全員がコードに責任を持つことができ、開発を共通認識 できるため、すごく参考になりました。

実際に、僕が出したプルリクエストでマージされたものが、コミット振り返りの段階で別のエンジニアから指摘が入りリバートした事例もあったため、コードの品質を担保するのに有効な手段だと感じています。

インターン中の出来事

f:id:n_atmark:20171022020630p:plain f:id:n_atmark:20171022020635p:plain

インターン期間中に約16時間の緊急メンテナンスを伴う障害が発生しました。 サービス開始して2年経つAWAですが、この規模の大規模メンテナンスは初めてだそうです。 サブスクリプション型のサービスのため、メンテナンスでサービスを止めてしまうことはもちろん致命傷で、 ユーザからの反響も大きかったのを覚えています。

ただ、障害が起きて終わりという対応ではなく、次に同じような障害が起きないような対策や、 仮に起きてしまった場合に障害を軽減するような取り組みを、かなり細かいレベルで考えていたのが印象的でした。
障害から得た教訓を大事にしているところも参考にしたいと思いました。

まとめ

  • AWAでのインターンはチーム開発におけるチームワークが如何に大切なのかが分かりました
  • コード品質がすごく高く感じました!
  • インターン期間中に大規模障害が発生したのは貴重な経験でした

f:id:n_atmark:20171022015223j:plain 最終日には、社員みなさんに集まっていただいて集合写真を撮っていただいたり、 f:id:n_atmark:20171022015234j:plain 寄せ書きまで書いてもらえました!

人事の方にお願いして、iOSインターン生 + iOSエンジニアの呑み会も開いてもらえました! f:id:n_atmark:20171022022501j:plain 手のバツ印はXcodeポーズらしいです!

インターンとても楽しかったです!!! 🎉