トライフォートの組織は、技術領域(職種)で分かれたディビジョンという縦の組織と、プロジェクトごとの横の組織を掛け合わせたマトリクス型で運営しています。
「組織と技術」では、毎回1つの組織をクローズアップし、組織の役割や取り組み、所属するメンバーについてご紹介します。
第2回目は、技術統括(エンジニア部門)より、「サーバーサイドディビジョン」「ネイティブディビジョン」「Unityディビジョン」のメンバーにロングインタビューを行い、トライフォートの魅力について語ってもらいました。
はじめに、皆さんのこれまでのキャリアと、トライフォートとの出会いについて教えてください。
HIRO(サーバーサイド):今ではサーバーサイドディビジョンマネージャーをやっている私ですが、元々はエンジニアとは無関係の音楽業界の出身です。音楽の専門学校を卒業して、プレイヤーとして活動しつつギターの講師をしていたのですが、20代半ば頃に身の回りでWEB系サービスが充実しはじめてきて、エンジニアという仕事に興味を持つようになりました。自分でもコードを書いたり、WEBサイトを作るようになって、20代後半のときに業務未経験から思い切ってエンジニアにジョブチェンジしました。
最初に入ったのはSIer企業で、常駐含め色々な現場を経験しましたが、仕事をしていく中で、エンジニアの立ち回り方次第で開発プロジェクトの動きが大分変わるものだと気づいてから、エンジニアが活躍できるようになる環境を作るにはどうすればいいかを意識して動くようになりました。
エンジニアが活躍できる場所を作りたいと思い始め、マネジメントというものを意識しだした時に出会ったのがトライフォートです。当時は良い意味でも悪い意味でもまだ制度が整っていなかったので、自分から発信すれば色々変えることができるところに魅力を感じて入社を決めました。
MITSU(Unity):私は学生時代にトライフォートのインターンを経て、2015年度の新卒として入社しています。気がついたら新卒として入社していた感じです(笑)
ゲーム好きだったこともあり、エンジニアとしてゲームの開発をしたいという思いが強く、ゲーム系の専門学校に入学しました。就職活動の際は、コンシューマーも含めてゲーム業界に絞って探していたのですが、色々な企業の話を聞く中で、大人数で時間をかけてかっちり作り上げるコンシューマーに比べて、ソーシャルゲームやアプリゲームでは比較的少人数でフレキシブルな開発が出来そうな印象を勝手に受け、若手でも関われる業務領域が広く、早くスキルアップできるのではないかと思い、ソーシャルゲームの開発により魅力を感じるようになりました。それでソーシャルゲームの開発をしているトライフォートに応募したのですが、面接官の方々が個性的で一緒に働いたら面白そうだなと感じたことが入社の決め手になりました。
YUKI(ネイティブ):私はMITSUくんとは逆で、ゲームやITとは全く関係なく、大学も経営学部出身で非理系と呼ばれていた立場なんですが、学生の時にiPhoneに触れアプリ開発をしてみたいと思い、大学卒業後iOSエンジニアとしてある会社に就職しました。
SES事業がメインの企業だったので、特定派遣として外部の色々な企業に常駐していましたが、比較的短期サイクルで場所が変わって、長いプロジェクトを経験できなかったので、「1社で腰を据えたい、長く働くには自社開発している企業がいいな」と思い転職活動をはじめました。トライフォートはアプリ開発やサービスだけではなくサーバーやゲームも開発もしていてエンジニアが働く環境として魅力的だったので入社しました。
それぞれ全く違う経歴からの入社なんですね。
トライフォートに入社してからは、どのような業務を経験しましたか?
HIRO:入社してすぐに運用中のゲームアプリのサーバーサイド開発を担当したのですが、その時ゲームのサーバーサイドは未経験の状態で、最初は少し不安がありました。でもプロジェクトが運用中で少人数体制だったため、比較的早く業務を習得することができ、技術的なところもそうですが、先程話したマネジメントの意識も強く持っていたということもあって、気づけば半年後にはリーダーを任されるようになっていました。
その後は、サービス系のプロジェクトも含めて複数の案件に関わり、3年前にサーバーサイドのDMに就任しました。今はDMとしてサーバーサイドエンジニアの管理、育成、採用をメインに行い、プレイヤーとしてはサービス系プロジェクトにアサインされています。
MITSU:インターン時代は、手首につけることのできるマルチジェスチャーバンドを使ったゲームを1人で開発しました。その時にUnityに初めて触れて、自分でも触って覚えつつ先輩社員に色々と教えてもらったのを今でも覚えています。
新卒入社後は、4年弱で3つのゲームプロジェクトにいずれもクライアントエンジニアとして関わっています。
1つ目の案件は残念なことに開発途中でペンディングとなりリリースさせることは叶わなかったのですが、コンシューマー出身のベテランエンジニアの方に色々と教えて頂き、1年目でありながら相当スキルアップできたと思っています。一般的に経験が浅いと、まず初めはUI周りから手を付けていくことが多いのですが、自分の場合はUI周りから始まり、バトルなど重要なところも開発させてもらえました。
次に大型IPタイトルにアサインされて、α版の開発からリリース後1年間ぐらいまで関わっていました。自分の開発したゲームが初めて世に出たということで、当時はとても感動したのですが、いざ運用フェーズに入ると運用経験の無さから課題も多く出てきました。現在関わっている案件ではリードエンジニアという立場なのですが、この時の経験を活かして運用を見越した開発というものをすごく意識しています。
YUKI:自分の場合は動画通話のあるリアルタイムチャットの自社SNSアプリをはじめ、JINS社のトレーニングアプリやテレビ局の動画配信アプリなどの受託開発案件を中心に、ネイティブエンジニアとして関わらせてもらいました。
現在もtoC向けサービスのアプリ開発に関わることが多いのですが、様々な特色を持つプロジェクトを経験することができています。
みなさんが思う「トライフォートの魅力」はどういったところでしょうか?
これまでの経験の中で印象に残っていることや、仕事のやりがいだと感じているエピソードがあれば教えてください。
YUKI:「幅広い技術を習得しやすい環境」に魅力を感じています。
前職では、iOSのクライアントサイドの内側だけの開発にしか関わっていなかったのですが、トライフォートに入社してしばらくたった頃、socket通信や動画通話など、今までやったことのない技術を使うプロジェクトにジョインしました。
そのプロジェクトではAndroidを専門にしているエンジニアが、リアルタイムサーバーのプログラムを書きつつ、サーバーの運用構築をサーバーサイドエンジニアと一緒に開発することもあり、今まで常駐していた企業とは違う印象を受けました。トライフォートはどんどん新しい技術を取り入れ、新しい領域にチャレンジしていくという文化が根底にあるので、それがプロジェクトにも浸透していると思える瞬間でした。
受託開発というと受身な体制や作業者のイメージを持たれることが多いかもしれませんが、トライフォートでは受託開発でも上流と呼ばれる最初の企画段階から関わることができますし、IoTやAIなど最新の技術を取り入れた案件に関わる機会を多く持てます。例えば、2015年に開発したJINS社のトレーニングアプリでは、当時最新だったBluetoothの技術を取り入れたので、単純にiOSの技術だけでは完結しない部分にも目を向ける必要がありました。
また、2017年の上半期のディビジョンの目標の1つに「メンバーが自由にArduinoやRaspberry Piを選び、GPIOを必ず使ってIoTで自分の作りたいものを作る」というものがあったのですが、自分は小さい子どもがいるので「子供のために、プラレールをiPhoneでコントロールできるIoTラジコンを開発したい!」と思いつきました。
試行錯誤の結果、iPhoneからESP32というBluetoothとWiFiモジュールが乗ったチップを使ってなんとか具現化したのですが、文系出身の自分がはんだ付けをしたり、バッテリーの事を考えながら「ものづくり」を行ったことも良い経験になりました。
システムを扱うエンジニアが、業務としてはんだ付けをするってなかなかない経験ですね(笑)
YUKI:それらが下地になったのかは分かりませんが、最近携わった受託案件では、気が付いたらBLEでのスマホとデバイス間の仕様決めから行うこともできるようになっていました(笑)
他にもApple TVを使うプロジェクトやiOSエンジニアでLuaを使ったカジュアルゲームを作ってみるという試みをやってみたり、iOSエンジニアとしてではなくネイティブエンジニアとしてAndroid JAVAを勉強させてもらう機会があったりと「何かの開発に関わることで、必ず新しい知識に触れ、蓄積できる」ので、新しいプロジェクトを経験する度に、自身の成長を感じています。
HIRO:サービス系のプロジェクトは年単位で開発する大規模なゲームと比較して、開発期間が数か月程度のものが多いからサイクルが短いし、受託案件となるとクライアントによっては、スマホだけでは完結しないものも多くて様々な技術を使う必要があるから、色々な方向の領域に関わることができるよね。
YUKI:ネイティブエンジニアに限ったことではないですが、サービス案件の中には1つのプロジェクトに対してiOS、Androidエンジニアがそれぞれ1、2人しかいない場合もあったりするので、かなり裁量を持って開発に関わることができますし、HIROさんのおっしゃっている通り、サイクルが短い分トレンドとなるツールや、設計思想、フレームワークやSDKなども試しやすかったりしますね。
自分としても入社当時より技術が身につき、開発の初期段階からお客様との話し合いにも同席させてもらえることが多くなったので、「こういう技術を使って開発してほしい」と相談された際に、「こんな技術を取り入れるのはどうですか?」と違う技術を提案することもあります。自分の提案が通ったときはすごく嬉しいですね。
HIRO:提案をするためには、技術の幅広さはもちろん、自分が一番得意としている領域での技術の高さも上げる必要があるから、必然的にどんどん力がついていくんだよね。
YUKI:以前は言われたことだけをやっていて、技術力を上げるという点に注力できていなかったんですが、今の環境だと「どんどん新しい技術を習得してスキルを高める必要があるし、挑戦し続けないといけない」ので想定していないものを作り上げる時には「自分の技術力が通じなくて苦しいな」と感じることもあります。でも、同じ技術力で同じようなものを作り続けてもスキルは伸びないし、少しでもスキルを身に付けたいのでその方がやりがいがあります。
それは「会社が幅広い技術や知見をもっていて、誰かがアドバイスをくれたりフォローしてもらえる組織体制があるので、安心してチャレンジできる」という環境も大きいのかもしれません。ある期間を過ぎると簡単にできるようになっている自分を客観的に見て「技術力が上がった!」と自信を持てる事も多くなりました。
HIRO:自分が思うトライフォートの魅力は、「自分から発信して変化させることができる」ところかな。
組織やルールというものはもちろんありますが、変化させるべきことをしっかりと発信できれば柔軟に変えることができるというのは強く感じますね。
自分が入社して初めてのプロジェクトにジョインしたばかりの頃は、不具合も多く、それに伴い残業時間が多くなり、言葉は悪いですが、ブラック企業っぽい働き方になっていた時期もありました(笑)。その時痛感したのは「ハードすぎる環境だとメンバーも疲弊するし、ますます不具合も増えるし、悪循環だな」ということ。なので、まずはその悪循環を打破するために仕組みを変えることに注力しました。すると、2か月後には残業がほぼ無くなり、結果として不具合も大分減りました。
ただ、単に発信するだけで何かが変わってくれるということは無いです。自分にカリスマ性があれば別なんでしょうけど(笑)。当時も職種の垣根を超えて意見を言い合えるように風通しを良くするのには苦労しました。
MITSU:それすごい分かります。今の案件で初めてリードをやらさせてもらっているので、プランナーやデザイナーなど別職種の方とコミュニケーションを取る機会が多いのですが、風通しの良さというのはとても重要だと感じています。
「トライフォートには職種を超えて連携しやすい環境がある」というのは、度々話題になりますね。
MITSU:僕が魅力を感じているのは「やりたいと手をあげれば、未経験でも挑戦させてもらえる」社風ですね。
僕の場合、専門学校でゲーム開発を学んではいたものの、トライフォートでのインターン以前ではUnityどころかC#さえ書いたことがなく、スマホをクライアントとした開発は未経験の状態でプロジェクトにジョインしましたが、現在の上司でもあるUnityディビジョンのマネージャーが1からしっかりフォローをしてくれました。
また、大型IPタイトルのα版に関わったときは、α版ということもあって、自分の好きに作らせてもらうことができ、実践的にバトル実装を学ぶことができました。
HIRO:MITSUくんはリードエンジニアをするようになって、輝きはじめたよね(笑)。積極的にリーダーシップをとっていて、自分みたいなディビジョンの違うDMから見ても凄く伸びているなと思うよ。
今後取り組んでいきたいことや、挑戦してみたいことはありますか?
HIRO:自分はマネージャーを任されているということもあって、マネジメントの目線になってしまうんですが、エンジニアが上手く活躍できるような場を作っていきたいと思っています。
学生時代はバトミントン部に所属していて、自分が教えたりフォローすることで後輩たちがのびていくのがすごく楽しかったんですが、今はエンジニアのマネージャーとして、MITSUくんのような若手やYUKIくんのような中堅メンバーの育成に力を入れたいと思っています。技術スキルの向上という意味でもそうですし、今以上にメンバー同士が連携や発信しやすいような体制を作ることにも注力したいです。
直近だと、メンバーの提案で開発環境の整備を行いました。業界的によくある話ですが、APIを含む開発をする場合、サーバーとクライアント間でAPI仕様書などを作成する際にドキュメントへの記載ミスや漏れなどがあったり、書くこと自体が手間だったりして、開発と運用の両面で効率がいいとは言えない状況があって課題になっていました。
そんな中、あるメンバーから「GPB(Google Protocol Buffers)を導入してはどうか?」という提案があり、すぐに調査してすぐに採用しました(笑)
その結果、定義ファイルを書く事でAPI仕様書の様なドキュメントが自動生成されるのでわざわざドキュメントを書くというストレスから開放され、エンジニアがよりコードを書くことに注力できるようになりました。jsonよりシリアライズの効率が良いので、転送量を小さくする点も採用した理由の1つです。
ただ、GBPとjsonを比較したとき、jsonは人間が目視で確認できる点が大きなメリットだったので、GPBでも中身をちゃんと見られるツールの利用と運用体制までしっかり考え、その点もフォローした上で導入に至りました。
GBPはあくまで一例ですが、メンバーからの意見で良いものがあれば、どんどん取り入れていきたいですし、メンバーがより評価されるようにバックアップするのが自分のミッションだと思っています。メンバーが持っている技術や企画を形にして、会社に貢献できるようにサポートしたいです。
マネージャー視点ではなくサーバーサイドエンジニアとしては、リリース案件が増えてきたので、チューニングでスピードをめちゃくちゃ速くしたいですね(笑)サーバーサイドの力量次第でサービスのクオリティが決まってきますし、サーバーはある意味制限がないので、強化していきたいです。
MITSU:今はゲームのクライアントエンジニアとして、Unityでの開発を担当していますが、ゲームエンジンはUnityだけに縛られる必要はないと思っています。トライフォートでは以前Cocosを使ったプロジェクトやCoronaを使ったプロジェクトもあり、会社制度の1つTech倶楽部ではunreal engineを使っているものもあります。良いものであれば、機会次第ですが他のゲームエンジンも使ってみたいです。
あとはデザイナーレベルまでとは言わないですが、グラフィックにも強くなりたいです。ゲームに必要な技術があれば、どんどん吸収していきたいですし、デザイナーの方々と連携して、クライアント側のクオリティを一層高めていきたいです。
YUKI:自分はお客さんから「こういうものを作ってほしい」と言われたときに、より最適なものを提案するのが面白いと感じるので、将来的にはコンサル的な立場の仕事もやってみたいです。その為にはクライアント側やサーバーのプログラムを書くだけではなくインフラやコスト面での知識も必要になると思い、データーセンターの作業についていって、ラックのサーバー機そのものの保守を手伝わせてもらったりしました。
トライフォートのエンジニアは「みんなが協力的」な雰囲気があります。社内の勉強会などを通じて、みんなでノウハウを共有したり、意見を出し合いながら、楽しく技術向上を目指していきたいです。
最後に、今後どういう方と一緒に働きたいですか?
MITSU:ちゃんと自走しながら、周囲を巻き込んでいける発信力のある方だと嬉しいですね。
YUKI:iOSエンジニアとして入社した自分が様々な言語を習得し、プロジェクトによっては、Androidもやってくれと言われても問題ない「ネイティブエンジニア」になることができました。変化と挑戦を楽しめる柔軟な方と一緒に働きたいです。
HIRO:トライフォートでは、どのディビジョンに所属したとしても、エンジニアだけではなく、デザイナーやプランナーといった他の職種のメンバーとコミュニケーションを密にとって、プロダクトを良くするために意見を発信することを求められるので、ただ黙々とコードを書きたいだけのコーダー志望の人や作業者になりたい方には合わないかもしれませんが、「技術に対してのスペシャリストになれる環境がある」ので、ものづくりができるエンジニアになりたい方には非常にマッチすると思います。エンジニアの価値を一緒に高めていきたいと思ってくれる方に是非入社していただきたいです。