はじめに
2022年3月29日に【学生限定】ZOZOとCAの若手モバイルエンジニアが「新卒1年目の業務内容」を赤裸々公開!という学生向けのイベントが開催されました。(イベントページ)
本イベントでは株式会社ZOZO様と弊社の若手モバイルエンジニアが登壇し、新卒1年目の業務内容を紹介しました。
本記事では、弊社から登壇した@go_takahanaと@ryu1sazaeより、当日お話しできなかった内容も含めて発表内容のサマリーをご紹介します。
またイベントの動画も公開されていますので、ぜひ併せてご覧ください。
(YouTubeリンク:【学生限定】ZOZOとCAの若手モバイルエンジニアが「新卒1年目の業務内容」を赤裸々公開!)
発表①:Androidエンジニアの新卒1年目の業務内容
ABEMAでAndroidエンジニアをしている高鼻郷(@go_takahana)と申します。
2021年4月にサイバーエージェントに新卒入社、7月にABEMAに本配属され、業務を行なってきました。
ここでは私が1年目の間に挑戦したことや学んだことを紹介します。
プロダクト紹介
私が配属されたABEMAについて簡単に紹介します。
「ABEMA」は、2016年4月に本開局した、テレビ&ビデオエンターテインメントとして展開する動画配信事業。国内唯一の緊急・速報をはじめとした 24 時間編成のニュース専門チャンネルや、オリジナルのドラマや恋愛リアリティーショー、アニメ、スポーツなど、多彩な番組をお楽しみいただけます。
また、ABEMAはさまざまなデバイスで視聴が可能です。Androidについてもスマートフォンだけでなく、タブレットやテレビデバイスでの視聴に適したアプリ開発を行なっています。
(参考:ABEMAを利用できるデバイスは? – ABEMA ヘルプ)
1年目の業務内容
入社後、約1ヶ月間全体研修を受けました。私たち21新卒の場合、この研修では、全職種合同で社会人としてのマナーを学んだり、エンジニアだけで技術力向上を目的としたチーム開発に取り組んだりしました。
5月と6月はメディア事業部の研修期間で、その間にメディア事業部のいくつかの事業部を回りました。そして7月にABEMAに本配属されました。本配属後は大きく分けると3つのプロジェクトで開発をしました。
モバイルアプリのリニューアルプロジェクト
これは、約1年間かけて行った大規模なUI/UX刷新のリニューアルプロジェクトです。
Androidアプリの開発期間はおおよそ2020年11月〜2021年10月で、私がABEMAに本配属されたのは7月なので、約3ヶ月間リニューアルプロジェクトの開発をしました。
なお、リニューアルプロジェクトに関連する内容は下記のページや動画で紹介しています。
- DroidKaigi Ninjas: 新しい未来のテレビ「ABEMA(アベマ)」の開発事例紹介
-
UI設計の共通化で機能差異を埋めるモバイルアプリ開発 | ABEMA Developer Conference 2021
-
Multiplatform Engineering Roadmap for the Future | ABEMA Developer Conference 2021
私の担当タスクは下記の画像のような、年齢性別アンケートページとジャンルアンケートページを実装することでした。
新規のページの実装だったので、UIレイヤーだけでなくアプリケーションレイヤー・ドメインレイヤー・データレイヤーといったABEMAのAndroidアプリのアーキテクチャの全てのレイヤーを実装をしました。
また、このリニューアルプロジェクトが始まった頃からリアーキテクチャが本格化し、私が担当するページにおいても新しいアーキテクチャで実装することになりました。
元々のFluxアーキテクチャよりクリーンアーキテクチャベースの実装の方が馴染みがあったものの、まだ実装例が少なかったので、いかに新しいアーキテクチャに沿った実装ができるかが挑戦でした。
新しいアーキテクチャについてのドキュメントを読んだり、設計レビューを丁寧にしてもらったりして実装をやり切ることができましたが、全てのレイヤーの役割を理解するのに苦労しました。しかし、本配属後すぐに全ユーザが必ず訪れるページの実装にチャレンジできたり全レイヤーの実装ができたりしたことは、今後の自信につながりました。
AndroidTVアプリのリニューアルプロジェクト
モバイルアプリのリニューアルプロジェクトが終わると、今度はAndroidTVアプリのリニューアルプロジェクトの開発をしました。
こちらもモバイルと同様に大規模なUI/UX刷新のリニューアルプロジェクトでした。
私のタスクはABEMAプレミアムの紹介ページの実装でした。
AndroidTVアプリの開発は初めてだったので、AndroidTVアプリ開発特有の実装に戸惑いました。具体的にはLeanbackというライブラリとフォーカスの制御です。
Leanbackはテレビデバイス向けのアプリを作るためのテンプレートのようなもので、開発者はテレビデバイスに適したレイアウトの実装にかける手間を少なくすることができます。
実装方法はAndroidアプリ開発の基本的なコンポーネントであるRecyclerViewと似ていますが、レイアウトについてはLeanbackライブラリが勝手にやってくれることが多いため、細かいレイアウトの調整がどのようにすればできるのかがわかりづらかったです。
細かいレイアウトの調整方法についてのドキュメントや記事も少なかったため、自分でLeanbackライブラリの実装を読む必要がありました。
また、AndroidTVアプリの開発は、モバイルアプリのリニューアルプロジェクトチームとは別のチームで業務していました。タスク管理やプロジェクトの進め方がかなり違っていて、始めは少し戸惑いましたが、以前のチームにはなかったオープンデザインやデータドリブンでの議論に参加することができ、知見が広がりました。
新機能マイリスト
この記事を書いている時期と同時期にマイリストという新機能がリリースされました。マイリストはABEMAの番組や作品をストックして、自分だけの視聴リストを作成できる機能です。
より詳しい説明は【お知らせ】新機能「マイリスト」を公開しましたをご覧ください。
私はこの開発で新規のページを2つ実装しました。その1つがマイリストが一覧表示されるページです。
この実装タスクの中で技術的な挑戦をする機会もありましたが、それよりも苦労したことがあります。それはタスク管理と開発の戦略性です。
タスク管理についてはその通りの意味ですが、これまでとはタスクの任され方が変わり、それに柔軟に対応できないことがありました。これまでにも1〜2週間かかるタスクをやることはありましたが、それでもアサインされているタスクは一つだけで、タスクが終わったら次のタスクにアサインされるという形でした。一方でマイリスト開発では、実装に1〜2週間かかる新規ページのタスク2つにアサインされました。
タスクが1つだけアサインされている状態なら、適切にタスク分解したらその通り進めていけば良いですが、複数アサインされた場合はタスクを並行して進めるという選択肢があります。例えば、仕様確認などPMやデザイナーのようなステークホルダーと調整が必要なことについてはできるだけ早く調整を進めるのが良いです。
しかし、こういった「問題を予防する」「ボトルネックを先んじて解消する」ような動きができず、後々実装する時に不明点が出てきてしまって調整が必要になり、結果的に実装が遅れてしまうことがありました。加えて、実装が遅れるとわかったタイミングで後のタスクのリスケジューリングにももたもたしてしまい、調整にチームメンバーの助力が必要になってしまう場面もありました。
開発の戦略性について、具体的には次のようなものをマイリスト開発では検討していました。
- 事業タスクであるマイリスト開発を進めながら、技術的負債の解消やリアーキテクチャを進めることができるか
- 新しい技術に挑戦ができるか(Kotlin Multiplatform MobileやJetpack Composeなど)
- アサインされた複数のタスクをどの順番で進めていくか
他にもたくさんの観点がありますが、単純に仕様を満たすように実装すれば良いわけではなく、これらの観点を踏まえて開発するのは大事です。しかしマイリスト開発中はタスク管理であたふたしてしまい、素早く戦略性を考えられず、行き当たりばったりな感じになることが多かったです。
このようにコードを書くところではないタスクの進め方などで苦労しましたが、程よいジョブサイズの中で失敗と改善ができ、今後の開発において学びが多かったと思っています。
困った時にどうしたか
私の場合は1on1で相談してアドバイスをもらうことで解決することが多かったです。トレーナーと毎週1on1をしたり、適宜マネージャーと1on1したりして、たくさんのアドバイスをもらってきました。
今となっては1on1はどこの企業でも実施されていますが、サイバーエージェントの場合はそれに加えて新卒をとにかく育成しようという文化に救われたところが大きかったと感じでいます。1on1などマネジメントのフレームワークやノウハウが浸透していることはもちろんですが、何よりどんな人でも応援してくれる雰囲気がありました。それによって他チームの人とでもコミュニケーションが取りやすくなるなど良いことがたくさんありました。
「Androidエンジニアの新卒1年目の業務内容」のまとめ
新卒1年目の業務内容の紹介をしました。
ABEMAに本配属されてから、すぐに大規模なリニューアルプロジェクトでタスクをもらったり、はじめてAndroidTV開発をしたり、常に挑戦的な課題が与えられていたように思います。そして課題に取り組む度に悩んできましたが、挑戦する環境と育成サポートする環境があったおかげで乗り越えてこられたと思います。
これからもこの環境で成長していくとともに、次に入社する方々のためにもより良い環境づくりに貢献してきたいと思います。
発表②:ABEMAの新卒1年目を大公開
ABEMAでiOSエンジニアとしてサービス開発を行なっている@ryu1sazaeです。
2021年の7月にABEMAに配属されてから、沢山の挑戦させて頂きました。その中には良い意味で未来の自分に描くキャリアの理想像を揺るがすものがいくつもありました。その挑戦を通し、配属当初と比較して、1エンジニアとして大きな成長実感を得られています。
二年目に関して自分自身、アプリ開発に対する知識は勿論、ソフトウェアエンジニアとして広く深い知識を身につけつつ、CyberAgent/ABEMAという会社から得られるメリットを享受しながら更なる挑戦していきたいと考えています。
この発表では、そんな自分が一年目でやったことやそこから実感した成長について、弊社の特徴・雰囲気を取り上げつつ紹介しました。
https://www.youtube.com/watch?v=4nVq4KUUoQQ&t=2060s
ここでは、1年目に検討していたキャリアパスについて簡単に紹介したいと思います。
目指していたキャリア
1. スペシャリスト
内定者バイト時代から自分は、iOSに限定しない幅広い知識を付けることにこだわりつつも、iOSエンジニアとしてスペシャリストを目指していました。そんな中配属直後に、新機能の開発をチームとして担当することができ、細かい仕様を実現することに快感を覚えていました。また同時に、分析観点/手法やチームとして締切のある案件を開発する上で重要なことも学ぶことができ、iOSに限定されない知見も蓄えることができました。
2. グロースエンジニア
スペシャリストを目指す最中に分析することの重要さと分析手法を学んだ自分は、自ら数字を追うことに興味を持ち始めました。実際に、自らA/Bテストの分析手法の提案を行なったり、その結果に対する考察と次のアクションの提示をしたりと、いわゆる”グロースエンジニア”の門を叩きました。
3. エンジニアリングマネージャー
2で述べたように、分析してチームや施策を改善しようと奮闘していた自分ですが、自ら考えた分析を実際に実施したり、その分析結果を踏まえて改善を行うためには、自分がチームをリードしていくことが必要だと考えました。また、当時から属する広告チームにiOSエンジニアが1名しかいないこともあり、自分が広告チームのiOSのリーダーとして、他のプラットフォームやPMなどと連携して施策を進め始めていきました。
自分が行った考察を実施するために、チームをまとめて実行に移すことに楽しさを覚え、その結果仮説の正しさを検証できることで、グロースエンジニアと(エンジニアリングマネージャーというと大袈裟ですが、)チームをまとめることの相性の良さを感じ始めていました。
4. これから目指すキャリアイメージ
1年目でいくつかのキャリアイメージを持てた自分ですが、正直まだ今後のキャリアパスは定まっていません。とはいえ、施策や(スライドでも言及されている)1on1の制度を利用して、複数のキャリアイメージを1年目の間に持てたことは2年目以降のキャリアパス決定に際してとても良い経験だったと思っています。
2年目はテックリードとして改めて自分の技術力を高めつつ、取り得る何かしらのキャリアパスに対して解像度を上げていければと思っています。
多くの人は、大きい組織だと自分のやりたいことができないのではないかという不安に駆られますが、ABEMAでは細かく分割されたチームがそれぞれ多くのことに挑戦しているからこそ、他のチームと連携しながら高いクオリティを維持してチャレンジする機会が多くあります。是非ご興味を持って頂けると幸いです。
さいごに
弊社の21新卒の2人から新卒1年目の業務内容を紹介しました。イベントのタイトルの通り、どんなことに挑戦して悩んできたのか赤裸々に紹介できたと思っています。
本記事が、サイバーエージェントに興味がある学生の皆さんにとって、弊社で働くイメージをつかんでいただく一助になれば幸いです。