エンジニアとして生き続けるために富永氏が意識していること

富永裕貴氏(以下、富永):ちょっとずつ、まとめに入ります。基本的にはエンジニアとしてこの世界で30年以上生き続けるために、技術が今市場からどういうスタンスで見られているのかを、かなり強く意識していました。

Qiitaとか、はてなブックマークとか、そういうWebサービス・サイトから情報を得ていましたし、昨今は『WEB+DB PRESS』とか『Software Design』とか、雑誌の表紙だけでも今どういう技術が注目されているのかが、なんとなくわかるような気がします。

クラウドエースという会社は毎月この2つの雑誌を定期購読していて、会社に置いてくれているので全部両方読んでいます。何度も言いますが、やはり勉強こそがすべてを解決するという、当たり前だろという結論になってしまいますが、これをきちんとやっている人とやっていない人の間で差がつくというのは、6年ぐらいキャリアを積んだ今でもけっこう強く感じます。

2022年に入ったクラウドエースの新卒の人たちを比べてみても、成長率の高いエンジニアは明らかに勉強しています。なんなら中途のおじさんたちを一気に追い抜いていく新卒もいるので、僕自身も彼らからけっこう刺激を受けて負けないようにしようと思っています。

3つ目のコミュニケーションについて。なんだかんだここが一番大事だと思います。どれだけ勉強しても、「なんか面倒くさいなこの人」と思われてしまうと、自分の力を発揮できないんですよね。カジュアルなコミュニケーションを取れるキャラクターというのを、別に意識しているわけではありませんが、自然とちょっとブーストしてやる感じですね。

自分のキャラクター的に、わりとヘラヘラしているので、それをもうちょっとビジネス用にトッピングしてアウトプットすることがけっこう多いです。これはスクエニにいた時に、「適度に雑なところがメッチャいい」と言われたのがすごく印象に残っていて、その時から「適度な雑さ」を心がけてチームメンバーとコミュニケーションを取るようにしています。

これからたぶん20年以上エンジニアリングをやっていくわけですが、何歳になっても『ポケモン』と『遊戯王』と『ファイナルファンタジー』が大好きな、なんかよくわからんヘラヘラしているおじさん、くらいに思われるように振る舞っていければいいなと思っています。

もちろん、今はやっているKubernetesとかイケイケなオープンソースソフトウェアが5年後、10年後も生き残っているかは誰にもわからないので。5年後10年後にどういう技術が役に立つだろう、自分たちのビジネスに寄与するだろうということを継続的に考えていきたいと思います。

ゲーム開発に必要な素養がなかったからエンジニアの道を選んだ

富永:質問をいただいているので、お答えします。「趣味の3Dでゲームに携わろうと思わなかったのでしょうか」、これは思ってはいましたね。思ってはいたんですが、クリエイティブ寄り? ゲームの開発はできないと思っていました。

僕は美術的なセンスがあまりにもないんですね。イラストをすぐに共有できればいいのですが、ゲームの開発ができる素養がまったくなくて。3Dモデリングとかは無機物のモデリングを真似すれば作れるんですが、自分でデザインを起こすとかそういうセンスはマジでないので、ちょっとゲームを作ることは無理だなと思っていました。

だからゲームの開発ではなく、開発者が書いたプログラムとか、実際にゲームのコンテンツを動かすサーバーのエンジニアであればゲームに寄与できるだろうと思って、そういう道を選んだんですね。

大学受験まで遡ると、本当は早稲田とかいうわけわからん大学じゃなくて、実はデジタルハリウッド大学に行って、まさにそういうクリエイティブなことを専攻したいと思っていました。

ですが、私の母校である桐蔭学園という高校はけっこうな進学校で、偏差値至上主義みたいな文化を押し付けられるんですね。親からもやはりけっこういい大学に行ってほしいというプレッシャーを密かに感じていたので、どうしても偏差値だけ見ればすごく良く見える早稲田大学に行かざるを得なかったという事情もありました。

「逃げたら一つ、進めば二つ」

富永:最後にまとめが1つあります。(スライドを示して)『機動戦士ガンダム 水星の魔女』というアニメの中でこういうセリフ(「逃げたら一つ、進めば二つ」)があるんですね。僕、ガンダム自体はまったく興味がなくて、「今やっている『水星の魔女』はガンダム感がなくておもしろい」と友だちに言われたから見始めたら、すごくおもしろいんですね。

この言葉が今メチャクチャ個人的バズワードで、まさに自分の人生はひたすら進んで、2つ手に入れたものの積み重ねだなと思っています。

転職が「進むこと」かどうか、やってみないとわかりませんが、その進んだ先でさらに進んで、メチャクチャ勉強して、やりたいことが見つかったらまたさらに進んで、というふうにやってきたので、とにかくなにか迷ったらやる。気合いと根性でひたすら勉強するとか、そういう根性論になりますが、わりと僕はこういう方向でキャリアを考えているというか、やりたいことをやるためにひたすら突き進んだら、いつの間にかここにいるという感じですね。

小さな成功体験を積み重ねるゲーム『ファイナルファンタジーXIV』はおすすめ

富永:最後に、そんな成功体験をたくさん積み重ねてきて今があると思っていますが、『ファイナルファンタジーXIV』は8人でチームを作って、1つずつボスの技を攻略するというちっちゃい成功体験を積み重ねてボスを倒すゲームなんですね。

今私自身も『ファイナルファンタジーXIV』の最も難しいコンテンツである、「絶竜詩戦争」という超難しいボスを倒すために毎日同じ8人のメンバーで1日4時間、ゲームをしています。

そんなすばらしくおもしろいゲーム、小さな成功体験を積み重ねるゲームなので、ぜひ『ファイナルファンタジーXIV』で遊んでみてもらえればと思います。いやこれなんの話なんだよって思いますけれども(笑)、基本的にはメチャクチャ勉強してきました。ぜんぜん小細工というか、小手先でやってきたわけではなく、本当にただひたすら自分がおもしろいと思ったことやこの先役に立つであろう技術にフォーカスして、ただただ空き時間のすべてを勉強に費やしてきただけなんです。

その勉強を支えてくれたゲームはやはり『ファイナルファンタジーXIV』であり、そこで一緒に遊んでいる仲間たち。そのパーティメンバーの中から結婚したりする人がいるんですね。結婚した夫婦と今も一緒に遊んでいて、その人たちとは私がニートを始めた時から一緒にゲームをやっているので、なんなら10年以上一緒にゲームをやっていたりするんですね。

実際の顔は一切知らないし名前も知らないけれど声だけは知っているみたいな、すごく仲のいい不思議な関係もできるので、『ファイナルファンタジーXIV』とエンジニアのキャリアを両立させてもらえればと思っています。

個人的にTypeScriptと歩んでいこうと思っている

篭橋裕紀氏(以下、篭橋):ありがとうございます。もうずーっと質問にも答えていただいてありがとうございます(笑)。

富永:最後にもう1つ(質問が)来ていますね。

篭橋:はい。「将来性を感じる言語と、そう考えている理由を知りたいです」

富永:これはすごく難しい質問ですね。将来性を感じる言語。正解を言うつもりはまったくありませんが、僕個人はTypeScriptという言語と一緒に歩んでいこうと思っています。

理由はいくつかあって、やはりシステム開発というものに携わっている以上、Webブラウザとは切っても切り離せないお仕事がたくさんあるんですね。

ブラウザで動くプログラミング言語として、今はWebAssemblyとかもあって、RustやGoとかでもブラウザでコードを実行できますが、やはりJavaScriptを動かすのが主になると思います。静的型付け言語をしながら書ける、TypeScriptネイティブなフレームワークもたくさん登場し始めているので、フロントエンドおよびバックエンド両方に対応できて、学習コストを少なくしつつ自分ができる領域を広げるという点においては、TypeScriptこそが一番いいと個人では考えていて、TypeScriptを勉強しています。

質問者1:ありがとうございます。すごく先見の明があるというか、勉強していく中で何を勉強すればよいのかを常に考えていらっしゃったので、今現時点でどういった言語に注目されているかおうかがいしました。Rustとか、そういう答えが出るのかなと思ったらけっこう意外な回答だったんですが、非常に実践的な回答だったなと僕もあらためて思いました。

富永:そうです。Rustは実は勉強したことがあるのですが、ちょっと難しくて挫折しました。正直、はい(笑)。あれを1人で追うのはけっこう難しいなと思っていて、組織でRustを採用してやっている企業がいくつもあるので、そういうところに入ってRustをやるのはすごくおもしろそうとは思っていますね。

メタバースについて思うこと

質問者1:あともう1つ、質問をしました。詩羽さんというキャラクターのお話がありました。FacebookがMetaになったり、メタバースを盛り上げようとしているとは思うのですが、世間一般的にはやはりデバイスが普及していなかったり、現実的にまだそこまでパッとしていないと僕は考えています。これがどれぐらいになったら現実的な実用レベルになっていくと考えていらっしゃるのか、ちょっと気になっておうかがいしたいと思っています。

富永:これは答えを先に言うと、わからないんですね。わからないですが、「メタバース」という単語に実はけっこう個人的には違和感を持っています。なんなら僕自身は、オンラインゲームを始めた瞬間から名前も顔も知らない人間たちと会話をし、結婚すればお祝いを贈っていました。20代からオンラインゲームで生まれる出会いと、そこで生まれるコミュニティと一緒に歩んでいるので、今の言葉で言うとすでにメタバースの中にいると思っているんですよね。

なので、今までそれに触れてこなかった人たちが、そういう世界のことを呼称するためになにか「メタバース」という言葉を使っているような感じがしています。そんなの別に昔からあるじゃんっていうのが、コミュニティとしてのメタバースに対する僕の答えですね。

技術的には、ちょっとわからないですね。空想の物語だと、すでにAR技術が台頭してどうのこうのみたいなことはあるのですが、今の技術進歩の速度を見ていると、そんなすぐに思い描いていたような技術は実現しないような気がしています。今はまだ画面の中の世界で新しいオンライン上のコミュニティが作られていくのをいろいろなかたちで観測して、自分も参加しているのがおもしろいという感じですね。

なのでメタバースは、なんなら15年ぐらい前からトレンドだったと思います。というのが、僕の答えですね(笑)。

質問者1:ありがとうございました。私もけっこう昔から、2007年頃から『Second Life』とかずっとやっていましたので。

富永:僕も同じくらいの時期ですね。

質問者1:同じように思います。ありがとうございます。

パブリッククラウドは本からではなく経験から学ぶことが大事

富永:次の質問ですね。「経験で学んでいくタイプです。GCPに関しても同様で、目的に対して最適なサービスを探して利用するかたちです」と。ああ、なるほど。僕はスギウラさんと同じですね。座学、本などでいきなり勉強というのはほとんどしていなくて、まず公式ドキュメントを読みます。おもしろそうだと思ったら手を動かしてみます。「エラーが出るんだけど何これ」を解消する感じですね。

なので座学的に勉強するのが苦手というのはまったく同じです。とりあえずコードを書いて実行したり、パブリッククラウドであれば実際に触って、自分が書いたコードを実行させようとした時にどんな問題が出るかとか、非機能部分、そのロギングをもっとオブザーバビリティの高いロギングにするためにどうすればいいのだろうとか、自分のコードの実行速度を計測するためにトレースを使おうとか、そういう順番でいつも取り組んでいるので、私もとりあえず触ってみるというところから入っていますね。

質問者2:なるほど。じゃあ方向性としては別に悪くはないというか。

富永:同じだと思いますね。なんなら本でパブリッククラウドを勉強しちゃいかんでしょう、みたいなことをたまに思ったりしますね。

質問者2:GCP(Google Cloud Platform)のいろいろなサービスがありますが、ネットワーク系のものとかオプションがかなり大量にあって、説明が書いてあるものは何を意味しているのかわからない時もあって。

検索するとかなり大量のGoogleのドキュメントが出てきて、何を読んだらこの1つの項目に対して理解できるのだろうかみたいに、ハマる部分もあるんですね。自分はその設定値として適切なものを指定できているのかどうかがわからないという状態になったりするので、そのあたりの深掘りはかなり難しいなと思っています。

富永:ああ、なるほど。確かに僕自身もいつも使っているこのサービスのこの設定値って変えたらどうなるんだろうと思うことはけっこうありますね。そこをきちんと理解したほうがいいかどうかはちょっと難しいですね。パブリッククラウドってなくてもうまくいくことがすごくたくさんあるんですよね。

質問者2:ありますね。

富永:そう。あるので、「うまくいっているんだったら別にいいんじゃないの?」って思っちゃいますね。もしかしたらあんまりよくないかもしれませんが、けっこうそういうのは多くて。

もちろん後々「このパラメーターってどうなっているの?」みたいな議論がチーム内で生まれて、ドキュメントを読む中でみんなで「あ、そういうことだったんだ」って理解することもあるので、最初からすべてを理解しようと思うのではなく、とりあえず自分たちがやりたいことが実現できるレベルまで達したら運用を始めてみて、直したほうがよさそうな問題があれば深掘りして、このパラメーターをこういじったらこうなるんじゃないかみたいな、そんな感じですね。

クラウドエースという会社もGoogle Cloudをすごく活用していますが、そんなプロフェッショナルばかりではなく、やはり中途採用のメンバーや新卒が多いので、Google Cloudについては古参を除いたらみんなけっこうヨチヨチなんですよね。

ヨチヨチの中でもなんとなく自分たちのシステム要件とか業務要件が満たせるアーキテクチャが組めて、実際にTerraformとかで設定をコードに起こしてアプライすると、やりたいことはきちんとできているという感じで、そこが一番大事だと思っています。

なので、最初は偏差値55くらいでよくて、徐々に徐々に運用していく中で知見がたまって理解が高まってどんどん偏差値が上がっていくみたいなイメージをしておくのが、僕はパブリッククラウドとのいい付き合い方なんじゃないかと個人的には思っています。

質問者2:わかりました。そんなに間違っていないということがわかりました。他の人もそうなんだなというのがわかったので、ありがとうございます。

富永:はい。もちろんあくまで個人の主張として捉えていただければと思います。「最初から全部を理解しなきゃ使っちゃ駄目だろう」みたいな人たちももしかしたらいると思いますし、否定をするつもりはまったくないですね。

篭橋:次の質問です。「これまでのキャリアでやってよかったことと、やらなくてよかったことを教えてください」

富永裕貴氏(以下、富永):やらなくてよかったことですか。これはけっこう難しいかもしれませんね。たぶんないですね。なんなら10年保守され続けたPHPのアプリケーションですら、確実に自分のためになりました。その開発環境のVagrantをDockerに置き換えるということができたことで、個人のDockerの知識がけっこう高まったりもしたので。

別に古い技術だから嫌だったとか、そういうこともなくて、その中でも力にできるものは確実にあったので、無駄だったと思うことは本当に1つもないですね。あと10分考えたら2個ぐらい見つかるかもしれませんが、パッと思いつくものはないです。

やってよかったものはなんでしょうね。なにか1つ挙げるとするのであれば……これは難しいですね。やってよかったことか。キャリアという点で考えたら、転職に躊躇しなかったことですかね(笑)。

転職ってけっこう人によってはハードルの高い行為だと思っています。今までお世話になった会社への裏切りじゃないですけど、育ててもらった会社への恩義をやはり人間はどうしても感じてしまうと思います。私自身もトライビートにはすごくお世話になったと思っていたので、辞める時に上司の前でメチャクチャ泣いてしまいました。

すごくいろいろ考えはするのですが、自分の人生を豊かにするためにその選択が最適だと信じるのであれば、もう行ったほうがいいと思います。悩んだら行く、迷ったらやる。けっこう子どもの頃からそんな感じの生き方をしてきたので、転職は特に躊躇しないほうがよいかなと。こんな話をしていいんですか、大丈夫ですか(笑)。

篭橋:ぜんぜん大丈夫です。

富永:大丈夫ですか、一応個人としては、スクウェア・エニックスに行く時にもクラウドエースに戻る時にもやりたいことがあって、みんなに感謝はしていますが、やはりそのほうが楽しいだろうし、将来的に自分のキャリアのためになる気がする。「気がする」です、あくまで。気がすると思って進んでいました。

もちろん失敗するパターンもあると思います。実際私の身の回りにも、12月に転職して新しい会社に入ったけど「もう辞めたい」と言っている人間がいるので。もちろん失敗することもあると思いますが、ただそれを恐れずにとりあえず進んでみようと。

失敗したと思ったら、また別にいいところに行けばいいと思うんですよ。今はジョブホッパーを気にする時代でもないと思いますし、きちんと「こういう理由があってこういう転職をしています」と説明づけができることが大事だと思いますので。そういう感じですね。

篭橋:またクラウドエースさんみたいに戻ることもできますしね。

富永:そういう会社は多いですよね。スクウェア・エニックスも出戻りがすごくたくさんいて、「いつでも戻ってきていいよ」と私も声をかけてもらいました。あれは別に社交辞令でもなんでもなくて本当にそうなんだなと今でも思っているので、クラウドエースに飽きてUTAHAがうまくいかなくなったら、スクエニに戻るかもしれません(笑)。

路線を絞らず役割に閉じられずにやってきた

篭橋:(質問者の挙手を見て)どうぞどうぞ。

質問者3:「好きなことを突き進んでいったら結果的に今のポジションに就いた」という話をされていました。質問の意図としては、自分がやっていることに対して「このままやっていて大丈夫なんだろうか」という迷いだったり、今振り返ればこういう路線もあったんじゃないかみたいな、その別の路線のことを考えてしまったりしたことはないのかな? というところをお聞きしたいです。

富永:路線を絞っていなかったというのはわりとあるかもしれません。クラウドエースという会社もそうですが、エンジニアの前になにか接頭辞が付くんですね。「バックエンド」エンジニアとか「フロントエンド」エンジニアみたいな接頭辞が付くのですが、それが個人的にあまり好きじゃなくて。自分自身が「何エンジニアか?」と聞かれるといつも困るんですよね。「必要なことはなんでもやるエンジニアです」だと思っています。

特定の路線に絞るから後悔が生まれたりするんだと思っていて、僕の場合はデータ分析もフロントもバックエンドもクラウドアーキテクトも、全部やるようにしていたので、「こっちに進んでおけばよかった」という感じは今のところなくて、どこに行ってもある程度できるからまぁ大丈夫かぐらいの気持ちでいますね。

質問者3:じゃあもう初めから選択肢を極端に狭くしすぎずに、幅広いことをやってきたから今の富永さんがあるという感じですね。

富永:そうですね。クラウドエースという組織において、役割に閉じられがちなことをしてこなかったから今があると思っています。強いて言えば機械学習はあまり詳しくないので、もしかしたら将来「あの時、機械学習をもっときちんと勉強しておけばよかった」と思う時が来るのかもしれないという不安だけは朧げに抱えていますね。

質問者3:ああ、ありがとうございます。とても勉強になります。

篭橋:ちょうど30分を超えましたので、みなさんお疲れさまです。そして富永さん、ありがとうございました。

富永:はい、ありがとうございました。