この10年の技術的あゆみを振り返ってみる

本記事はMynet Advent Calendar 24日目の記事です。

本日クリスマスイブが誕生日のhirashiがお送りします。

マイネットの創業から各種開発に携わってきて、気がついたら10年目です。

会社スタートしたときはまだ27歳ピチピチの茶髪若造だったのが、知らないうちに歳を重ねてしまったものです。

ちょうどいろいろと節目のタイミングでもあるので、せっかくなので本記事では、自分および会社について、この10年の技術的領域のあゆみを、いくつかのトピックで振り返ってみたいと思います。振り返るとだいたいは反省反省の歴史ばかりで胃が痛くなるような話だらけなのですが、誰かにとってなにかしら有益な振り返りもあるかもしません。

OSSフレームワークを採用して、数年経ったら典型的な技術的負債になった話。

サービス立ち上げ時。ちょうどそのとき時流で話題になっていたものだったり、担当エンジニアが個人的に使ってみたいという思いで選定したようなOSSフレームワークを採用して、サービスつくって、幸いそこそこ軌道に乗って、サービス運営を続けて2〜3年もするとたいてい古さが見えてきます。あまり枯れていなかったがゆえに独自カスタマイズを加えていった結果、導入した人にしかコード触れないようになり、そのうちその人が別の担当に異動したりするとアンタッチャブルになっちゃいます。ああ、自分もいっぱいそういうものを引き継がせてしまったなあ。。。

これという銀の弾丸となるような対策は難しくて、負債発生するのは不可避なことで、サービスが長く続くことはむしろ幸運なことなんだと愛でる気持ちで向き合っていくのがよいと思っています。そのうえで、まずは選定時点で、そのような将来にわたっての重みになりそうなものは慎重に検討すること。また、どうしても古いものは適切にリプレイスしていくのがよいですが、ユーザーさんにどんな価値を今後提供していくか、それをどんなスピード感で実現していくか、というあたりの目的を見失わないことが大事と思います。

ほら、エンジニアってどうしても、手段に興味が沸く人が多くて、どうしても目的と手段とを取り違えやすいんですよね。自戒もこめて。

情報発信してるとなにかいいことあるよ、な話。

自分が最近ほとんどなにもブログ等のアウトプットしていないのでオマエが言うなですが。 以前には積極的にやっていた時期があって、振り返るとこういうことしてるとよいことがいっぱいあったなあと思います。

  • 文章に書いてアウトプットすることで、自分自身の知見の整理になる。自分の記憶を高めるにはエピソードを周囲の人に話すとよい、なんて話もありますが、これに直結する行為です。

  • 社内外に友達が増える。普段から何かしらアウトプットしてると、対面で会ったときの話も弾みやすいのです。

  • 思いもよらぬオファーが来たりする。講師としてセミナー登壇しませんかとか、その知見を書籍に執筆しませんかとか、自分には縁の無さそうな話がひょいっと舞い込んできたりするものです。

そんなこんなが自分自身のこれまでの実体験としてあり。今回のアドベントカレンダーも、きっかけとしてよい取り組みですね。いいだしっぺのtakashabeさんありがとうございます。

自社の強みをどこに据えるか、な技術戦略の話。

自分たちの手数が無限大にあるわけではありません。また世の中には数多くの会社さんがあってそれぞれがいろんな価値を提供しています。 そんななかで、自分たちはどう生き残っていくか、というのを考えていくにあたって、全方位に手を出していくのではなく、自分たちが強みとすべきところに資源を集中させて、それ以外の部分は極力深みに立ち入らない、という取捨選択をこれまで繰り返してきました。それはベンチャー経営では当然のことですが、技術戦略についてもですね。

振り返ると、うまくいったもの、いかなかったもの、両方いろいろありました。たとえば、データセンターラックを全て解約して自社サービスをクラウドに完全移行させた話はうまくいったケース。またあるいは、一時期「Android集中」を謳っていてiOSへまったく展開しなかった、という時期もありまして、現在では方針転換して両バリしているので結果的にどうよという案件ではありますがw、一定期間中はうまくリソース集中投下ができていたケースでした。

環境変化や事業転換に対する心構えな話。

インターネット/ゲームにまつわる技術は変化がとにかくはやくて、過去の常識だったことが新しい価値観でガラッと変わってしまうことがままあります。また、上述の「選択と集中」により、会社の方針としてそれまでの方針が一新されることもしばしばあります。

そんな環境のなかで、いかに変化を受け入れて、それでいて第一線での活躍を続けていくか、という命題があります。自分もまだまだ上から偉そうなことを言える立場ではないですが、振り返って感じるのは2点。

1つは、変化を楽しむ気持ちでいること。こだわりを持つことはもちろんよいことですが、その一方で1つの価値観だけに変に固執するような思いがあったりすると、精神衛生的によろしくないことになりがちです。 もう1つは、新しいことをできるだけ最速で身に着ける方法論。普通の人がやってるのと同じような方法では、なかなか第一線には躍り出れないです。詳細はここでは省略しますが、なにかしら頭をひねって作戦を練って取り組んだことが結果的によかったな、と思えることが何度かありました。変化が激しい環境だらこそ、こういう急アクセルを踏む訓練が意義が大きいのだと思います。

マイネットのエンジニアとしてのこの先にあるもの、の話

マイネットはこれまで何度か事業転換をしてきているのですが、現在ではスマホゲーム運営のリビルド事業というものをやっています。あまり見慣れない事業名と思いますが、簡単にいうと、提供中のゲームタイトルを運営移管して、機能や施策の適切な再構築を行い、より長くユーザーさんに楽しんでいただけるようサービス運営をつづけていく、というものです。 エンジニアが具体的にやっていることというのは、挙げてみると広範です。再構築にはアプリケーション設計力がなによりも問われたり、エンドユーザーを魅了するフロントインタフェースが重要だったり、大量トラフィックを捌くサーバインフラや対負荷設計が必要だったり、安定提供にはDevOpsの領域が不可欠だったり、データ分析基盤ももちろん活用必要だし、運営には人間のオペレーションも必要ななかでの効率化安定化が重要だったり。

一昔前はWebサービスと言われたりしていましたが、今やwebなのかアプリなのか垣根がなくなってきていて、またスマホだけでなくウェアラブルとかのデバイスも普及していたり、既存の家電やゲーム機なんかもネットとつながるようになっていたりして、このへんを総称するよい言葉が見当たらないのですが(社長上原は「オンラインサービス」と呼んだりしていますが)。 こういった、「ネットとつながっていて、スマホやPCなどなんらかのデバイス/UIを通じてエンドユーザーに提供されるサービス」というのは、スマホゲームに限らず、今後もっともっと増えていくと思っています。

で、ゲーム運営リビルド事業を通じてわれわれが日々実践していることって、これらのサービスを提供していくうえでも、普遍的に不可欠な技術・知識・経験だと思うのですよね。目先は現在の事業に注力していますが、この事業ではない別のことをやるとしても、エンジニアとして様々な方面から求められる有益なキャリアになると思っています。

おわりに

ということで、この10年を振り返って思ったことを順不同でつらつらと書いてみました。読み返してみると、やっぱりどこかしら上から目線になってしまいがちで、どうもこっぱずかしいですね。。。まだまだ自分も日々勉強中の身ですので、次の10年も精進していきたいと思います。では!