<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=707545302639771&ev=PageView&noscript=1" />

Wantedlyは、月間200万人が利用する国内最大のビジネスSNSです

This page is intended for users in Japan(Japanese). Go to the page for users in Japan(English).

現実と理想の両輪駆動。ゲーム開発に憧れてプログラミングを志した彼が、今エフ・コードで実践する「エンジニアリング」とは?

4月より、エフ・コード開発チームにまた新たなメンバーが加わりました。岩永賢明(@kiris)はエンジニアとして多彩な経験を持ち、エフ・コードが採用しているプログラミング言語Scalaも扱い始めてから10年近くになる、頼もしい仲間です。

ゲームを作りたくてプログラミングを学んだ

――岩永さん、というか「kirisさん」とオンライン・オフラインともにお呼びしていますが……そもそもなぜ「kiris」さんなんですか?

きっかけは、小学生からやっていたネットゲームで使っていたハンドルネーム、キャラクター名です。ネット上での名前というかアイデンティファイになってしまっています。ただ、なぜ「kiris」かは……なんでだったかな? もともと「ゲームのキャラクターの名前をもじった」等だったかなと思うんですが、今となってはそれ自体にあまりこだわりはないですね(笑)。

――僕らほぼ同世代ですが、我々の世代で小学生からオンラインゲームとは、ゲームお好きだったんですね。

はい、小学生の頃からゲームが好きで「将来はゲームを作る人になりたい」と思っていたんです。それで、高校の頃に独学でプログラミングを始めました。最初に使った言語はC++です。当時はScalaみたいなモダンな言語はなかったですし、マシンスペックも貧弱なので、ゲーム開発では計算能力の高いC言語やC++が主流でした。その後ゲーム作りの専門学校に進み、そこで本格的にプログラミングの学習をしました。

――ちなみに、どんなゲームが好きなんですか?

例えばFPS(ファーストパーソン・シューティングゲーム)やトレーディングカードゲーム等の、人と対戦するゲームは好きですね。アナログゲームとかも結構好きでよくやります。高校の頃に「カタンの開拓者たち」というボードゲームにハマったのがきっかけなんですが、そのころは毎日5時間近くやっていた時期もありました(笑)。オンラインゲームもそうですが、ゲームを通じて人とのコミュニケーションをとれるようなものが好きですね。

ただオンラインゲームといっても、小学生だった当時は回線も速くないですし、ゲームもまだ2Dで、インターネット接続もダイヤルアップで「11時から5時まではテレホーダイ」という時代でした。

――懐かしの、ネットにハマると夜更かしせざるを得ない時代ですね(笑)。

それ自体は親には許容されていたんですが、むしろいかに親の目を盗んで「テレホーダイ以外の時間にどれだけやるか」というのが勝負どころで、そこでの経験から「ブラウザの履歴の消し方」等を学んでいきました(笑)。

ネットゲームをやる中で実際にゲーム開発者の方とお知り合いになったりもして、色々と教えていただくことができました。実際に自分で作ってみたものだと、2Dの横スクロールアクションゲームで、蛍光刀(灯)を武器にして戦うっていうもの等があります(笑)。光のない世界が舞台でちょっと童話チックな世界観なんですが、光をあてることで影をモチーフにした敵を倒すことができる、みたいな。ただ、出来は正直イマイチでした(笑)。

作ったものをWebに公開する度胸はなかったのですが、友達にプレイしてみてもらったり、また専門学校では作ったものがそのままポートフォリオになりました。「制作発表会」という会では、実際に企業の方々に遊んで貰う機会も頂けました。自分の手で作り上げることの達成感もあって、その頃からだんだんゲームを作ることはもちろんプログラミング自体が楽しくなっていきました。手段が目的になっていったという感じですね。

――その後は、志望通りゲームを作る会社に就職されたんですね。

はい。ただし実はプログラマーではなく、企画職という立場での就職でした。当時はいわゆる「ゲームクリエイター」を目指していて、そのイメージはどちらかというと「ゲームの企画を作る人」で、昔からやりたかったのはそっちだったんです。専門学校でプログラミングが大好きになっていたんですが、プログラミングと企画とどちらも経験してみないと将来進みたい道がわからないと思い、運よく企画職で採ってもらえる会社があったので就職しました。

それが、ゲームボーイアドバンスの「ロックマンゼロシリーズ」(発売:カプコン)などを作っていた、インティ・クリエイツという会社でした。自分自身もロックマンは好きだったので、その作品に携われたのは本当にラッキーでしたね(笑)。企画職を続けつつ、やっぱり自分でもゲームを一から作りたいという思いもあったので、その間も趣味でプログラミングを続けていました。ただ、やはり仕事としてもプログラミングがしたいという思いがあり、一年半ぐらいで別の会社に移ることにしました。


「プログラミング」そして「エンジニアリング」

――その次も、やはりゲーム関連の会社に?

いえ、ゲームではないのですが、IT業界の割と規模の小さい会社でした。専門学校時代の友人が声をかけてくれて、主に客先に常駐する形で働いていました。言語としては、初めてJavaを本格的に使うようになったのがこのときです。

扱うプロダクト/サービスは半年ぐらいのサイクルで変わっており、ポイントカードとクレジットカード関連のシステムだとか、社内向けの基幹システムだったりとかでした。正社員という身分でしたが、行った先々で働くという意味ではフリーランスに近い働き方をしていたのかなと思います。ゲームからは離れてしまったのですが、「プログラミング自体が楽しい」という思いが一層強くなってきた時期ですね。

――kirisさんが「プログラミングが楽しい」というとき、具体的にはどういった部分に楽しみを感じているのでしょうか。

そうですね、「プログラミングの楽しさ」については、昔と今とで自分自身の考え方が変わってきていると思います。

プログラミングにおいて、コードを再利用するための仕組みとしてクラスやモジュールというものがあるのですが、便利なクラスを作っておくことでその先の開発を楽にすることができます。これがRPG等のキャラクターを成長させていく感覚に近かったんです。新しい技を覚えていく、しかもその技自体を自分で考えて創り出すことができるという。昔の自分は、そんな部分をプログラミングの楽しさとして感じていましたね。

プログラミング自体の楽しさ――たとえばコードがきれいに書けた時の楽しさとか――は今も変わっていないです。でもどちらかというと、「プログラミング」というよりは「エンジニアリング」が楽しくなってきたなと感じているんです。これらはイコールではなく、プログラミングはエンジニアリングの一つの手段にすぎないということに、より意識が向くようになってきました。

よく言われることですが、システムは作った瞬間から負債になります。一方で「何かしらの問題を解決すること」がエンジニアリングの本質だとしたとき、「一番いいエンジニアリング」って何だろうと考えると、極端な話「まったく新しいシステムも何も開発せずに問題を解決すること」が一番いいエンジニアリングだと思うんです。つまり、開発もあくまでエンジニアリングの、すなわち問題を解決するための一手段であるということです。

自分の中で、そういった視野やそのための手段が色々と広がってきたんだと思っています。たとえばパフォーマンスが遅いという問題を解決するときに、アルゴリズムを変更して解決する手段もあれば、インフラ構成に手を入れることで解決する手段もありますし、そもそもAWSにお金を払って積んでより強いインフラを手に入れるという手段もあります(笑)。

さらに言えば、問題を解決するための速度を上げたり、問題を正しく発見・理解するという意味では「チームビルディング」や「組織改善」もまたエンジニアリングだなと感じています。エンジニアリングってもっとすごく広い概念なのだなと思うようになり、さらに楽しく感じられるようになりました。


目指すのはあくまで「顧客に価値を届ける」こと

――なるほど。考え方がそのように変化、というか深化したきっかけのようなことがあったのですか?

私は転職が多い方で、今回のエフ・コードへの参画で5社目になるのですが、文化の違う様々な会社を経験できたことが大きかったと感じています。

例えば、コーディングについての考え方の変化は前職での経験が大きかったと思います。私はもともと、システムやコードをきっちり作るのが好きなタイプでした。プログラミングの中で一番好きなのも、リファクタリング(システムのの動作は全く変えずに、より整理されたプログラムに書き換えること)だったりします。その反面、リファクタリング「だけ」をしていてもに顧客に新しい価値を屆けることはできません

きっちり作りたいというのは、裏を返せば「最初から、きれいだけど複雑なものを作ろうとしてしまう」というクセに繋がります。しかし、「とりあえずコードは汚くても(整理されていなくても)いいから早く価値を届けよう」という姿勢が適切なときもありますし、場合によっては「きっちり作ったことでかえって複雑なシステムになってしまう」ということもあります。

そこで大事なのが、目指すところは「継続的に顧客に価値を届けること」という意識であり、それを考え方の中心に持っておく必要があります。そしてそのために必要なことは「今求められているシステムを出来る限りシンプルに実現すること」そして「将来発生しうる可能性に対して、その回避策を頭の中に持っておくこと」です。最初からきれいなコードを目指すことで、気付かぬ内に手段が目的になってしまっていた部分があることを学びました。

――開発でScalaを用いるようになったのも、その前職時代からですか?

仕事として使うようになったのは前職からですね。ただ、Scala歴自体はもう10年近くになります。まだまだそんなに詳しくないと思っているんですが、歴だけは長くて(笑)。Scalaを知った最初のきっかけは、「LL魂」というイベントでした。そこで、現在エフ・コードで技術顧問もされている水島宏太さんによる、Scalaを紹介する発表を聴いたことです。私は当時Javaを使っていたのですが、Scalaの考え方にはとても惹かれました。

具体的には、ScalaはJVM上で動作することで既存のJavaの資産を流用できる点で、現実的に使える言語として設計されていたこと。そしてその一方で、ファンクショナルプログラミングという当時としてはより先進的な概念も本当にバランスよく取り入れている、という点です。「現実と理想の両輪で駆動している言語」というところに惹かれたんですね。

今思えば、これは先ほど述べた前職で学んだ考え方とも繋がる話なのかもしれません。つまり、どんなに理想的に・キレイに書ける言語でも、それがリアルな世界での価値に結び付くものでなければいけません。高いレベルで実務と理想のバランスが取られていることが大切です。私にとって、Scalaはまさにそのような言語だと感じられました。顧客に価値を届ける部分も担保しつつ、モダンな考え方・新しい概念としても学んでいける。趣味として使っても仕事として使っても楽しい言語だなと。実際、前職を選んだときの理由としても、Scalaを使って開発ができるということが大きかったんです。

Scalaエンジニアとしてエフ・コードへ

――そんな中で、開発言語としてScalaを採用しているエフ・コードがkirisさんと出会えたわけですね。

ScalaMatsuriのスタッフをしていた時期もあったので、おえさん(現エフ・コードVPoE麻植)・がくぞさん(現エフ・コードCTO中村)とは以前から知り合いだったのですが、あるイベントがきっかけで一緒にご飯でも行こうということになったのが始まりでした。

エフ・コードに魅力を感じた理由のひとつは、Scalaのスタープレイヤーであるがくぞさん・おえさんといった方々と一緒に、しかもスタートアップの中で仕事ができるのはすごく面白そうだと感じたことです。今後有力なScalaエンジニアがさらに加入してくれるに違いないと考えると、そのチームにメンバーとして関われるのはまたとない機会だ、という思いがあります。

▲CTO就任時、中村のインタビュー記事。

▲VPoE就任時、麻植のインタビュー記事。

もうひとつは、先に挙げたお二方とはまた異なる部分の強みが自分にはあると感じたことです。私は、エンジニアリングや特定の技術に特化したスペシャリストというよりは、ボトムアップで組織やチームを改善したり価値を生み出していくことを強みにするタイプのエンジニアです。例えばですが、開発チームのみならず社内のコミュニケーションに役立つようなSlackのbotを書いてみるなど、チームや組織をよりよくしていくために皆がやっていることの透明性を高めたりだとか、そういったことに関心があります。前職ではある程度の座組が既に組まれている段階でしたが、エフ・コードではそういった新しいチャレンジを通じて価値が発揮できそうだというところに魅力を感じました。

▲作成したSlackのBot機能の一つ。リアクションのキリ番を通知することでコミュニケーションの活性化を図る。

一方で、前職は広告関連であったものの、エフ・コードの領域であるデジタルマーケティングにおいて、事業内容そのものへの理解が深かったわけではありませんでした。もともとゲーム制作からスタートして、その後も転職等を繰り返しながら様々な会社やプロダクトを経験してきましたが、その理由のひとつにはは新しいビジネスや未体験の分野に飛び込むことが好きだったということがあります。そのため、エフ・コードを選んだことについても、「よく知らなかった」ということ自体が理由のひとつだったのかもしれません(笑)。

向上心の強いメンバーたちと壁を登っていきたい

――エフ・コードの開発チームについては、実際に加入してからどんなことを感じていますか?

チームについては、まず皆さん勉強熱心ですね。技術を学ぶことに対するモチベーションが高い人達が集まっているな、と感じています。CTOのがくぞさんが目指している組織のあり方には、技術における優秀なスペシャリスト集団という面があると思っていて、実際がくぞさんがファンクショナルプログラミング等の新しい概念などをチームメンバーにいきなりぶち込んだりするんですけど(笑)、そのことを皆が楽しんでいると感じています。すごくいい環境だと思いますよ。

個人的には開発チームについて、皆がマネージャーや経営者の視点を持てるとチームはうまくいくと思っています。つまり、各々に自分の担当している部分より広いところが見えていて、その上である程度スケジュールとかも自分でコントロール・管理する。そのうえで、それぞれの得意分野やスペシャリスト性が発揮できている状態が僕の理想です。

『攻殻機動隊』に「我々の間にチームプレイなどという都合のよい言い訳は存在せん。あるとすればスタンドプレイから生じるチームワークだけだ」というセリフがあるのですが、それが自分の中で目指したいチームです(笑)。そんなチームメンバーと働きたいし、自分としてもそんなふうに働きたいですね。

――そんなメンバーと一緒に、壁を登っていきたいと。

壁、登りたいですね(笑)。もう5年以上前かな。Pythonのコミュニティの中でボルダリングをする活動があって、そこに当時の同僚と一緒に行ったら楽しくてハマってしまって。またゲームの例になってしまうんですが、ボルダリングの面白さはマリオだとかロックマンに近いと思っています。スタートとゴールが定められていて、スタートからゴールにたどり着いたらクリア。そしてコースによって難易度が異なる。失敗したらもちろん悔しいんですが、何がダメだったのかを考えて試行錯誤するんです。その先でも失敗して試行錯誤。これを繰り返してゴールにたどり着いた時の達成感がすごい。あ、ひょっとしたらこれもプログラミングの楽しさと一緒かもしれないですね。

エフ・コードの中でも有志で一緒にボルダリングに行ったりしてます。この記事を読んでくださっているあなたもぜひ、エフ・コードで一緒に壁に登りませんか?(笑)

株式会社エフ・コードでは一緒に働く仲間を募集しています
Anonymous
93644686 8669 47dd 8a59 1b5bad3ac7c7?1512725636
21271368 1458453304235074 5415237221378283863 n
13315736 10153776408153635 7403567511929137087 n
3 いいね!
Anonymous
93644686 8669 47dd 8a59 1b5bad3ac7c7?1512725636
21271368 1458453304235074 5415237221378283863 n
13315736 10153776408153635 7403567511929137087 n
3 いいね!
Anonymous
株式会社エフ・コードに遊びに来ませんか?
株式会社エフ・コードに遊びに来ませんか? エフ・コードでは、Webエンジニアを募集しています。ご興味をお持ちの方は... さらに表示
Anonymous
株式会社エフ・コードに遊びに来ませんか?
株式会社エフ・コードに遊びに来ませんか? エフ・コードでは、Webエンジニアを募集しています。ご興味をお持ちの方は、ぜひお気軽にご連絡ください!
C9f4c4e9 4609 455a 9747 988dfb229dbf?1504524944
Web エンジニア

Scalaで新規プロダクト開発ラインの立ち上げを担うWebエンジニア募集!
他の募集を見る

今週のランキング

ランキングをみる

Page top icon