インフィニットループ 広報ブログ

2023年09月27日 (水)

著者 : akanuma

ゲーム大規模開発のレビュー文化が印象的。仕事で嬉しい瞬間はGitHubのApproveをもらえた時

IさんProfile

入社年2022年中途入社
プログラミング歴約6年
前職の業界ゲーム開発企業など
前職の職種・使用言語などゲームクライアントエンジニア Unity C#
現在の職種サーバーサイドエンジニア
拠点札幌
出身岐阜県   (岐阜→名古屋→大阪→札幌)
Iさんのデスク

仕事はAPIの実装。過去にはxRプロジェクト、ChatGPTプラグイン制作

現在の仕事内容、体制を教えてください。

サーバーサイドエンジニアとして、スマホアプリのAPIの実装を担当しています。プランナーのお客様と仕様を定める会議を行った後、その仕様書を基に要件定義を定め、PHPで仮実装、本実装を行います。実装ではひたすらコードを書きますね。

合間には他の方が書いたコードのレビューもします。開発チームは全体で約50名で、そのうち私が担当しているサーバーサイドは約10名です。

ーー入社して以来、ずっとスマホアプリのサーバーサイドエンジニアのお仕事ですか?

いいえ。入社時に現在の仕事に最初に携わり、他プロジェクトに異動後、現在は入社時の仕事に戻ってきました。

ーー以前はどのようなプロジェクトを担当していましたか?

二番目に担当した仕事はxRプロジェクトです。アプリケーションをUnityとC#で制作しました。

三番目に担当した仕事はChatGPTを用いた社内新規プロジェクトの技術調査です。私はUnityで使用できるChatGPTのプラグインを制作した後、スマホアプリのAPIを実装する元の仕事に戻りました。

大規模開発で必要なレビュー文化が印象的

非常に多様な仕事をしていますよね。どれぐらいの期間での話ですか?

入社して1年以内の話ですね。

ーー1年ですか! 1年で3つのプロジェクトを経験しているのですね。新しい仕事は新しい技術の知識が必要かと思いますが、大変ではなかったですか?

インフィニットループでは設計やコーティング規約がきちんと定まっており、社内wikiに記載されています。それを元に書けば良いので、コードは書きやすい環境ですね。仮に書いたコードが間違っていたとしても、レビューでわかりやすい指摘があるので、安心して実装を進められました。

このレビュー文化はインフィニットループに入社して、特に印象的でした!

前職ではレビューがなかったのですよ。少人数で作っていたので、規模的にレビューする必要はありませんでした。テストコードも書いていませんでした。

ーーレビュー文化とはどのような文化でしょうか?

私の捉え方としては、コードの保守性を高めるために必要なものですね。全員が同じ作りをしているかを全員で確認しながら、プログラムを組んでいくイメージです。

私が所属しているプロジェクトのような大規模開発になると、コンフリクトは必ず起きてしまいます。そのようなミスを最小限に抑えられるレビュー文化はチームで実装するために良い仕組みですし、重要な文化だと感じます。

ーーレビューについて、心がけていることはありますか?

読みやすいように、機能ごとに細かく分割して、レビュー依頼を出すようにしています。

デスクでの仕事風景(左から)

初仕事は未経験のPHP。助けられたレビュー文化

入社後に苦労した思い出はありますか?

インフィニットループに入社するまで、実はPHPを書いた経験がありませんでした。前職でプログラマとして働いたことはありましたが、PHPもサーバーサイドも初めての経験だったんですよ。最初の配属になったスマホアプリのAPI実装は主にPHPを使用しているため、最初は苦労しました。

ーー初仕事が未経験のPHPでは大変でしたね…どのように乗り越えたのでしょうか?

最初は先輩の書かれたコードをとにかく読み、ひたすら真似て書いていました。レビューを出すと、わかりやすい指摘がありますので、その指摘を見ながら都度修正していきました。まさにレビュー文化に助けられました。

ーー最初は真似ていたのですね。先輩のコードを読めるまではどのように学んだのですか?

C#を書いた経験があり、コード自体に慣れていました。PHPといっても、私が経験のあるC#や他の言語と似ている部分も多く、そこまで書き方の違いがあるわけではありません。「このコードはおそらくこういう動きをするだろう」と予想して読んでいきましたね。

プログラムを書き始めたのは良いパソコンを購入したから

他プログラムの経験があるのですね。プログラマとしてのキャリアはどのように始まったのでしょうか?

最初は独学で、Androidアプリの個人開発をしました。

ーー独学で!プログラムを書き始めたきっかけはなんでしょうか?

高校卒業後に車のエンジン部品を製造している会社に就職しました。ロボットアームが停止した際の対応や、加工位置の微調整の担当です。働いて貯めたお金で、スペックの良いパソコンを購入したんですよね。それがプログラムを始めたきっかけです。

ーーえ!?パソコンの購入がプログラムを書き始めたきっかけなんですか?

そうなんです。家にパソコンはあったのですが、古かったんですよね。Androidアプリを制作してみたくて、私がやってみたかったUnityで開発するには良いスペックのパソコンが必要だったんです。

ーーなるほど。初めてのUnityはどのように勉強したんですか?教えてもらえる方はいましたか?

当時、周りでUnity開発をしている方はいませんでした。ネットでQita記事をひたすらコピペして、プログラムを書いて勉強していました。

ーーそれでプログラムを学べるのですね!どのようなAndroidアプリを制作しましたか?

画面をタッチするとジャンプして、障害物を避けられる横スクロールのステージが無限に続くランゲームです。なぜか海外の方からのダウンロードが多くて驚きました。完成したゲームは親にも遊んでもらいましたよ。

ーーすごいですね!親御さんはどのような感想でしたか?

「なにこれ?」って言ってました……笑

ーー笑笑
インフィニティキューブ
考えごとをする時の相棒、インフィニティキューブ

インフィニットループを選んだ理由とは?

その後はどのようなキャリアを歩みましたか?

プログラムを書くことに魅力を感じ、IT企業に転職しました。しかし、プログラマとしての仕事に挑戦することが難しく、退職。せっかくならゲーム開発がしたいと思い、貯めたお金でゲームプログラマの専門学校に入学し、ゲーム開発の基礎を2年間、しっかりと学びました。

卒業後は学んだ知識を活かして、大阪のゲーム開発企業に就職しました。ゲームクライアントエンジニアとして、Nintendo Switch、PlayStation 4・5のゲームの移植や、スマートフォンのゲームアプリを開発しました。

フロントエンド側でゲーム開発の仕事をしていましたが、サーバーサイド側でゲーム開発に携わりたくなり、インフィニットループに転職することにしました。

ーーサーバーサイドの技術会社が他にもたくさんある中で、なぜインフィニットループを選んだのでしょうか?

複数の理由があります。1つ目の理由は北海道にあったことですね。北海道に住んでみたかったので、北海道の会社から転職先を探しました。

2つ目の理由はゲーム開発をしていること。3つ目の理由は大規模な会社だった点です。

私が調べた範囲ではゲーム開発をしているサーバーサイドの技術会社の中で、従業員数が最も多く、大規模な会社だった点が魅力的でした。前職は小規模の会社だったので、せっかくなら大きい会社を経験してみたいと考えたんですよね。

4つ目の理由は、サーバーサイドやゲーム開発だけではなく、xR開発など様々な領域に挑戦している点です。

5つ目の理由はWebサイトから活発な社内活動やイベントを実施していることが楽しそうに感じた点です。

涼しい北海道が魅力的

なぜ北海道に住んでみたかったのでしょうか?

私は暑がりなんですよね……笑

ーー暑がりなんですか笑 岐阜県出身で暑がりだと大変ですよね。

そうなんです。極力、寒いほうが良くて、北海道に住みたいなと思いました。冬は寒くてとても良いですね。

ーー北海道の暮らしは満喫されていますか?

はい。ところが借りた部屋にエアコンがついていなくて、夏は暑くて困っています……笑 会社は涼しいので、快適に仕事ができています。

ーーそれは良かったです笑

好きな社内イベントは「ILトーク」

面接は札幌で行ったのですか?

いいえ。当時は大阪在住だったこともあり、すべてオンライン面接で行いました。

ーー社内の見学ができなかったと思いますが、不安はありませんでしたか?

Webサイトに社内の写真が多く掲載されていたので、おおよそ把握できていました。実際に訪れたら、Webサイトで見ていた写真と社内が同じで! 非常に助かりました。

ーー前職と比べて、インフィニットループの規模は大きいと伺いました。入社後、戸惑いはなかったですか?

周りのサポートが充実していたので、困った記憶はありません。入社してまもない頃はOJT担当のサポートがあり、どんな些細なことでも聞きやすい環境でした。開発の環境構築もスムーズに行えました。

ーー入社前と入社後で印象の変化はありましたか?

前職時に経験があるのですが、同じIT会社として、残業が多いのかなという漠然としたイメージがありました。ただ実際に入社してみると、残業はほぼなく、むしろ定時退社を推奨していたため、ホワイトな会社だと感じています。

ーー入社して率直にどのような感想を持ちましたか?

イベントが多くて、楽しいですね。

ーーイベントが多いことはインフィニットループを選んだ理由の一つでしたよね。特に好きなイベントは何ですか?

「ILトーク」が好きですね。社員が社内向けに毎週木曜日に15〜30分間、好きなテーマについて、ZOOMで話すイベントです。ラジオ感覚で作業しながら聴いています。ベイブレードについて語り、実際に回した回が最近では一番面白かったですよ。カメラで映しながら、ベイブレードをプレイしていて、臨場感がありました!

ーー他に好きなイベントや制度はありますか?

他部署の同期と雑談できる 「同期朝会」 が好きですね。社内には新卒同期グループや、入社時期の近い中途グループなど、各グループに応じて、Slack上のチャンネルが割り振られているんですが、そのメンバー同士で朝、GoogleMeetやSlackの通話機能で15分程度の雑談する時間があります。息抜きになって、とても好きな時間ですね。

他チームのメンバーと関わる機会は少ないのですが、「カジュアル1on1」ではランダムな組み合わせで、他チームのメンバーとの交流ができます。どこかの部屋か、Zoomなどで30分〜1時間ぐらい仕事の状況を共有したり、雑談したりするんですよね。

他にも「チーム内1on1」では、チームリーダーとの雑談、悩みやキャリア相談ができます。このような制度が充実しているので、社内の風通しが良いと感じていますよ。

デスクでの仕事風景(右から)

何でもできるプログラマが一番の理想

仕事をしていて嬉しい瞬間はありますか?

GitHubでレビュー依頼を出し、コードに問題なければ、レビュワーが承認の意味で「Approve」を送信できます。基準を満たすと実際にコードを実装できます。この「Approve」をお客様やチームメンバーから貰える瞬間がとても嬉しいですね!

ーーまさに「レビュー文化」があるインフィニットループに向いていますね!では他に、インフィニットループに向いているのはどういう方だと思いますか?

新しい技術を自主的に調べたり、取り入れられる人でしょうか。これからプログラマを目指す人には、とりあえず手を動かして、たくさんコードを書くことが大事です、と言いたいですね!

ーープログラマとして、どのような理想像がありますか?

難しいタスクも任せてもらえるプログラマになりたいですね。設計もできるようになりたい。何でもできるプログラマになることが一番の理想ですね。

ーーでは最後に、今後取り組みたいプロジェクトと個人的にやってみたいことを教えてください。

現在のプロジェクトと似たようなゲーム関連のサーバーサイドの仕事を引き続きできたらいいなと思います。

個人的には昔、趣味で制作したゲームアプリのSwitch移植を進めています。まずはリリースに持っていきたいですね!

ーーありがとうございました!

一日の仕事の流れ例

10:00出社
10:10作業 メールチェック
10:45同期朝会(去年中途入社したメンバー)
13:00昼食 家に帰り納豆ご飯を食べる
14:00作業
作業の合間にコードレビュー
16:30チーム内夕会 連絡事項の確認
17:00コードレビュー
18:45作業が途中の場合は区切りのいいところでGitにプッシュする
19:00退社

会社や近くのお気に入りポイント

インフィニットループ社内の無料自動販売機
自動販売機
社内には社員が無料で飲める自動販売機が設置されています。本数は無制限。定期的な入れ替えもあるので、新しい飲料に出合えることも出社する楽しみの一つ。
自動販売機のつぶつぶナタデココ入り白ぶどう
つぶつぶナタデココ入り白ぶどう
冷たいものから温かいものまで揃う自動販売機の中で、最もおすすめは「つぶつぶナタデココ入り白ぶどう」。数多くの飲料を飲んだ中でのお気に入りです。