はじめに
本記事は、22卒1年目の成長シリーズ 13日目の記事です。
2022年度新卒入社 ABEMA 所属の化田晃平(@coffee_scinf17)です。
現在はiOSエンジニアとして、ABEMAアプリのサービスグロースの機能開発を担当しています。
今回のブログでは、私が1年目で経験した業務や学びを紹介します。
1年間でやってきたこと
研修期間
全社研修
全社研修は、全職種研修と、エンジニア研修で構成されていました。
全職種研修では主に、マナー研修などが中心でした。エンジニア研修では、指定された要件を満たしたサービスをチームで開発する研修でした。今まで利用したことがなかったTCA(The Composable Architecture)での設計や、SwiftPM(Swift Package Manager)によるマルチモジュール化、GraphQLの導入などさまざまな挑戦をしつつ開発を進める経験ができました。
メディア事業部での「ジョブローテーション」
メディア事業部内の各部署を1ヶ月 x 2回のローテーションをしながら実務経験を行う研修がありました。最初はWinticketに仮配属となり、初のFlutterに触れつつ、WINTICKETアプリのSwift → Flutterリプレイスの施策に関わりました。次はABEMAに仮配属となり、Clean Architectureベースのチュートリアルアプリを通して、ABEMAの基本設計やコーディングの知識を学びました。
ABEMAのモバイルアプリにおける設計についてはこちらの記事をご覧ください。
本配属後
新規画面実装
ABEMAの本配属後の最初の1ヶ月で、新規画面実装タスクを行いました。 当時は iOS, Androidが同タイミングで行っていたため、Kotlin MultiPlatform への移行を踏まえてインターフェースを揃えながら対応しました。
ABEMAでのW杯視聴者の残存プロジェクト
ABEMAでは、「FIFA ワールドカップ カタール 2022」で全64試合を無料生中継し、多くのユーザーが来訪しました。W杯後も継続してABEMAを利用したいと思える状態を目指して、ユーザーの回遊性を強化するための施策開発に取り組みました。
修正したコードにはリアーキテクチャ前の設計も混在していたため、その箇所をリアーキテクチャ後の設計も踏まえてどのように実装すべきかを考える良い機会でした。
プロダクト課題提起 → リリースまでの経験
2022年12月までの開発体制は、PM側で課題定義から仕様策定までを行い、エンジニアがその仕様を基に設計からリリースまで行う体制が基本でした。2023年に入ってから、プロダクトの課題定義から仕様策定もエンジニアが参加し、設計、機能のリリースまで一気通貫して行う体制になりました。 仕様策定もエンジニアが主体的に行い、PMやデザイナー、他職種のエンジニア、データチームを巻き込みながら進めました。
直面した課題
ドメイン知識・技術の理解
ABEMAはテレビのみならず、ビデオオンデマンド、ペイパービュー(PPV)といった様々な視聴形態が存在します。施策開発には幅広いドメイン知識が必要なため、考慮すべき項目や、影響範囲、目的などをトレーナーと細かい確認をしながら進めていきました。また、そこで得た新たな知識を、週次振り返りを通してアウトプットしていったり、ドキュメントが整備されていない箇所はドキュメント化しながら進めました。
ソフトスキルの不足
配属された当初の私は、「安心して任せられるエンジニア」を目標に、自身の力だけで iOSの施策開発を完遂できる状態を目指していました。しかし、自身の力だけで完遂すること = 自分だけで考えて行動すると捉えてしまった結果、なかなか周りに相談せずに進めてしまいました。自分で考えた解決策が有効ではなく、手戻りが発生することがありました。自分で考えることによって得られるメリットもありますが、どうしても狭い知識や経験に基づいた解決策になってしまいがちです。自分自身の考えを持つことも非常に大切ですが、合わせてその考えが正しいかどうかが客観的に判断できる、または不備を指摘してもらう環境を用意することが重要だと感じました。
また、相談する際は相手の思考に頼らない相談の仕方を工夫することも課題になりました。当時はいくつかの解決策を検討する際、それぞれのメリデメの検討などの考慮が浅いため、それぞれの解決策の解像度が低いまま相談してしまい、相談相手に問題や解決策を検討させてしまうケースが何度かありました。 その経験を通して考慮事項を増やして、事前に問題の前提・解決策の方針を明確にした上で相談する意識を持つことで、配属当初より効果的なコミュニケーションを取れるようになりました。
まとめ
1年目は、自分自身の業務遂行上の課題や技術力不足を痛感することが多かったですが、同時に裁量が大きく、多くのことに挑戦させてもらいました。失敗もありましたが、その都度トレーナーやチームメンバーとの 1on1で振り返る中で改善点や成長点を多く見つられたので、非常に有意義な1年でした。
2年目では開発サイクルをさらに高速化することで、1年目以上に多くの施策開発を実施できる状態を作り出していきたいと思います。