engineer is my vocation

22卒のAndroidエンジニア

DeNAのサマーインターン「プロダクト開発コース」に参加しました!

久しぶりのブログ投稿となります。@keita_developerです。

 

8/23~8/25の三日間、DeNAのサマーインターン「プロダクト開発コース」にAndroidエンジニアとして参加しました。

目次

どんなインターンだったのか

student.dena.com

 

インターンの内容をまとめると「三日間」で社員の方々がインターンのためだけに作成した「クソアプリ伸び代のあるプロダクト」を「4人チーム」(サーバー2人,クライアント2人)でより良いプロダクトに仕上げる、というものでした。

参加までの経緯

選考は書類→Skype面接で行われました。面接では個人開発のアプリについての話をしたような気がします(ユーザーを増やすためにどのような改善を行なったか、今後どのようなサービスにしていきたいのか等)。面接の場でそのまま合格発表をいただいたので、採用のスピード感に驚かされました。

また、去年同じコースの選考を受けて落選していたので、受かった時の喜びはとても大きかったです。

チームのこだわり

チームとして取り組んだ事の一つとしては「それぞれのタスクの重要性とそれを実装するコストを考えた上で、取捨選択を行う」という事です。

f:id:keita_developer:20190827080238p:plain

これは三日間という時間的制約の中で進めていく中でとても重要で、上のような表をホワイトボードに作成し、左上にあるタスクから優先的に潰していきました。

また、この表はチームメンバー全員で話し合いながら作成しているので、どの部分を重要視するかの意識の共有がしやすかったのではないかと思いました。

自分のこだわり

自分はこの三日間の間、主にUI UXデザインの改善に注力しました。具体的な作業内容としては、

  • Navigation Component の設定に関する不具合の修正(ログイン画面で戻るボタンを押すとログイン後の画面に遷移できてしまう = 余計な fragment がスタックに残っている)
  • ユーザーの一つ一つのアクションに対して、アプリ側で必ず何かしらのリアクションを返す様にする(ボタン押下時のエフェクト、データ送受信中のprogressの表示)
  • フォーム入力時のユーザーのストレス削減(適切なImeOptionの設定、キーボードの開閉制御)
  • 画面遷移、Viewの表示内容変更時のアニメーションの実装
  • 各Viewの余白、サイズ感の調整(部品の重要さを考えた上でのサイズ感の調整)

があります。

一番上の致命的な不具合以外は、最低限アプリを動かすことだけを考えると優先度の低いタスクと思うかもしれません。ですが実際にサービスを運営していくとなると、これらの要素での手抜きがユーザーの離脱率の上昇につながるということを今までアプリをリリースして行く中で身を以って体感しているので、決して手を抜くべきではない要素だと考えています。(ユーザーレビューですぐに指摘され、それがストア上で表示されるため今後の新規ユーザー流入にも影響が出る)

ただ、逆に言うと今までユーザーの目に見える部分の改善にばかり力を入れていたために、裏側のロジック部分の知識が浅く、もう一人のAndroidエンジニアの方にほぼ任せきりになってしまったのは非常に申し訳なかったです。(作業分担という意味では正解だったのかもしれない)

結果

終結果として、自分たちのチームは優勝を頂くことができました!!後から振り返ってみると、チームメンバー内での各々の役割(インフラ、サーバーアプリケーション、クライアントロジック、UI UXデザイン)がはっきり決まっていたおかげでスピーディーに機能を実装していくことができたのが良かったのではないか、と思いました。優勝チームには某ホテルでの豪華鉄板焼きコースがプレゼントされるとのことで、今からとても楽しみです。

 

f:id:keita_developer:20190826192050p:plain

感想

とても密度の高い三日間だった、というのが率直な感想です。単なるコーディング力だけではなく、与えられた制約の中で課題設定をする能力、チームメンバーと連携する能力等、現場に出てから必要となる能力を鍛えられたのではないかと思います。

他にも、交通費や宿泊費の支給、朝昼晩の食事サポート、一人10万円の報酬支給等、エンジニアにとって至れり尽くせりの待遇だったのも非常に好印象です。

また、チームメンバーとコミュニケーションをとっていく中で、Androidエンジニアとして、そして一技術者として足りない部分がまだまだたくさんあるということを思い知らされました。(ライブラリの知識、サーバーやインフラ周りの基礎知識、IDEやGit等各種ツールの活用法...etc)

9月からは別の会社での実務のインターンが始まるので、それまでに少しでも知識の穴を埋めて行ければいいな、と思います。