
23新卒がアプリボットで半年過ごしてみて学んだこと

はじめまして!!23卒クライアントエンジニアの羽鳥です。
本記事では入社して半年で感じたことや経験を紹介していきます!
技術面の成長と、エンジニアとしての仕事の向き合い方を軸にお話しできたらと思います。
入社と配属
自分は仕事としてどんなゲームにも使える、基盤となる部分を制作したいと思って就職活動を行っていました。CyberAgentに内定をいただき、SGE(ゲーム・エンターテイメント事業部。10社以上の子会社群の総称)のどの会社にするかを決める時期になった時、アプリボットの LDX という組織があるということを知りました。
LDXは課金機能やセキュリティー対策などの非ゲーム領域を担当するプロジェクト横断組織です。
様々なプロジェクトで使うシステムを共通化して生産性を上げることを目的として立ち上げられました。基盤となる部分の作成、様々なプロジェクトとの連携、難易度が高く専門性の高い技術を扱うという部分に憧れて、社内の面談等で希望を出してきました。
LDXについての詳しい記事はこちらをご覧ください。
5月末、CyberAgentの研修が終わった後、自分はアプリボットで開発中のプロジェクトのシステムチーム + LDXに所属することとなりました。(システムチーム : アプリビルド周りやツール作成など、技術でエンジニアをサポートするチーム。LDXと密に連携してよりゲームに近しいシステム部分を担当する。)
配属された直後
まず思ったことは 圧倒的な実力不足 を感じました。非ゲーム領域は学生のゲーム制作では必要としない場合が多く、経験が足りない + スマートフォンアプリの開発経験がほとんどなかったことによる知識不足が最初の関門となりました。
加えて、仕事のやり方も安定していなかった時期なので、報連相の不足や方針ずれが目立ってしまっていました。何がなんでも自分の力で進めるという学生時代の制作の癖が出てしまい、謎のプライドのようなものが円滑な進行の邪魔をしていました。
率直にいうと、仕事として成り立っていない状態だったなと思います。
技量不足に関しては前向きに、これから身につけていこう!と考えることができるのですが、働き方に関しては、「どうしてこの動きをしなかったのだろう。」「先に考慮すべき点があったな。」と反省することが多々ありました。
この問題に対してのアクションとして、トレーナーとの週次振り返りで問題点の洗い出しや、次週の目標を立てることで少しずつエンジニアとしての働き方を学んでいきました。特にLDXのような他のセクションやプロジェクトを飛び回る組織という特性上、通常のエンジニア以上にコミュニケーションが重要視されます。コードが書けるとしても、それが方針とずれていたら仕事としては成り立ちません。そういった働き方をトレーナーの姿を見て学ぶことによって自分に何が足りていないか、どのような行動が良い方向に働くのかを意識しました。

システムチームとしての苦難
プロジェクトのシステムチームで何をやるかは配属されて初めて知りました。
- アプリビルドの管理
- 各種ツール作成
- 海外用の対応
- デバッグ機能の保守
- 課金周りの実装
- チート対策
などなど… 挙げればキリがないほどに仕事があります。しかもUnity内部だけでは完結しないので、C#の他にもgroovyやpython、シェルスクリプトの知識も必要になってきます。加えてLDXとしてのタスクで、ビルド後のアプリを解析するというCLIツールを作成した際には C# .NET を扱ったので、これまたUnityのC#とは違う使い心地の言語を扱うことになりました。
扱う範囲が広いので、それ相応の技術力を求められました。
しかし、今の時代は初めて書く言語だとしても、Web上に豊富な情報が落ちていますし、最近ではChatGPTなどの対話型AIも活用できます。(自分は全く知らない分野 = 知識が「0」の状態からキーワードを出すための質問をする場として利用しています。)
これらを活用することによって、基本構文ならば問題なく書くことができるので、技術を持ち合わせていない状態だったとしても、それほど悩むことではないなと思いました。(もちろん、書けることに越したことはないですが。。。)
しかし、行っているタスクは難しいものばかりです。調べても出てこないものだったりバージョンが対応していないものも多々あるので調査と検証の時間はかなり多いと感じました。そんな状況を楽しめる人や、調査に対して真剣になれる人、技術に対しての興味が強い人がシステムチームに向いていると思います。
これらを通じて 技術 に対して思うこととしては、
- 技術に対しての興味を持ち続ける
- 新しいことに対してのアンテナを立てておく
- 対話型AIの有効活用
が、重要だなと思いました。新規実装を行う際も、とりあえずで書くのではなく、少し深いところの仕組みまで調べると理解が深まります。
エンジニアとしての仕事の向き合い方
アプリボットは年次に囚われず大きなタスクを任されることがあり、実際自分は新規ゲームの課金周りの担当をしています。
このような大きなタスクをする際に技術力の前に、そもそものエンジニアとしての力を求められるなと思います。人を頼る力がまずは重要になると感じています。
とある難易度の高い仕事を任されたとします。当然わからないことだらけになるので質問が多くなるのですが、ここで自分が意識していることは、質問を確実に言語化させることです。何がわからないのか、前提条件はなんなのか、どこまでは理解しているのか、それらを含めた状態で質問をすることで、自分の頭の中を整理することができます。質問される側も何を答えればいいのかが明確になるので、時間的な効率も良くなります。
報告に関してもやはり言語化が大事だと思います。単に「終わりました。」だけでは伝えられることが少ないので、どこまでの作業が終わったのか、どんな検証をしたのか、懸念点は存在するのか。これらを含めて報告できると円滑な進行ができると実感しました。
エンジニアなんだからコードを書ければいいだろう、という考えがありますが、円滑にコミュニケーションを行う力があってこそ、コーディングや技術が活きてくるのだなと思います。
まとめ
CyberAgentは挑戦を応援してくれる会社ですが、アプリボットも例外ではありません。
だからこそ、会社にとってベストな動きはなんなのかを考えつつ行動することが重要です。技術に対しての考え方や、エンジニアとしての仕事の仕方をある程度固めることができた半年だったと感じています。
しかし、考えすぎて空回りしてしまっては元も子もないので、適度に休みつつ一歩ずつ確実に進捗を上げていこうと思います。部活制度や、BBQなどのイベントにも全力で取り組む仲間がいる会社なので、楽しみつつ自分の実力を確実に上げていけたらと思います!
この記事へのコメントはありません。