月間7億PV!高トラフィックを少数精鋭でさばく『GameWith』の開発体制

2016-07-12 20:00

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/2827d46d-e259-4a80-82fc-ae053c6d7a9a.png

(写真左:田村氏 写真右:大窪氏 2人はGameWithを支える7人のエンジニアメンバーの一員)

ゲーム攻略や新作ゲームレビューなどのゲーム情報を提供している『GameWith』。創業3年で驚異の月間7億PVを達成し、国内有数のWebサービスにまで成長を遂げた。その裏側を支えるのは、わずか7人のエンジニアだという。少人数で効率良く開発するために、どのような技術的、組織的な取り組みが行われているのか。株式会社GameWithのエンジニアリングチームの両名に話を聞いた。

田村 航弥
新卒で大手SNSを運営する会社へ入社。
iOSアプリ開発、社内スマホアプリ開発研修や開発体制の立ち上げ、新規事業立ち上げなどをおこなう。
その間社内アプリ開発研修の内容を電子書籍化し出版を経験。
2014年にGameWithに入社し、サービスのインフラ、バックエンド、フロントエンド、クライアントアプリなど幅広い開発に従事。

大窪 聡
大手SNS運営会社にてコアの開発や運用に携わった後、広告配信技術を扱うアドテク会社に転職。
RTB(リアルタイムビッディング)のコア機能の開発に従事する。
GameWithには2015年の秋に入社し、主にサービスのインフラ改善や新機能のバックエンド開発を手がけている。

大手価格比較サイトに迫るPV規模。凄腕のエンジニアが増え劇的に開発体制が進化

―『GameWith』は創業から3年で月間7億PVを超えたと聞きます。途方もない数字すぎてイメージさえできないです。

田村: ゲームメディアとしては国内では頭一つ抜けた数字にまで成長してきました。近い数字でいうと日本最大の価格比較サイトが月間9億PVとのことなので、それに迫る勢いを持つ国内有数規模のWebメディアと言えるところまで成長できたと思います。またMAUは3000万人を超え、うち95%はスマートフォンからのアクセスなので、日本のスマートフォンユーザー全体の半数以上にご利用いただいている計算になります。

―ゲーマーのためのクラウドソーシングサービス『GameWorks』など関連するサービスが他にもある中、それらをたった7人のエンジニアで回していると聞いて驚いたのですが?

田村: 現在は7人ですが、ちょうど1年前までは専任エンジニアは自分だけでした。代表の今泉(卓也氏)ももともとCTOを務めた経験のあるエンジニアで、当時はエンジニアリングも兼務していたので、1.5人ですね。でも、その時点ですでに億単位のPVはありました。弊社の成長の源泉は何より質の高いコンテンツ。当時はそうした記事作りの方に注力していたので、新規開発案件の方がそこまで多いということはありませんでした。

とはいえ、作るだけで精一杯のギリギリの状態だったのも確か。コードの整理が行き届かないところもあったり、今では自動化できている部分もひたすら人力でやっているような状況でした。

昨年の6月にようやく2人目が入り、その後もエンジニアが増えていく中で、そうした状況は改善されていきました。この1年の間に、開発体制は劇的に変わったと思います。

―どんな風に変わっていったのですか?

田村: まず、(代表を除いて)2人目として入ったエンジニアが、人数が増えても一定の品質を担保できるようなコードの書き方や設計を導入してくれました。さらに3人目が入って、昔はイベントごとに手動で増やしていたサーバの運用を自動化。組織ができてきた昨年の秋ごろからは、テストの拡充にも力を入れています。最近だと、大窪が中心になって進めてくれたインフラのアップデートが大きな変化ですね。

大窪: 言語やOSのバージョンが古いのはセキュリティ上、大きなリスクなのですが、簡単に手がつけられるものでもないので、自分が入社した昨年10月時点では優先順位が劣後していました。自分が入ってマイグレーションを定期的に行い、インフラのオートスケーリングもかなり整えたことで、障害対応する機会は大幅に減らせたと思います。

田村: 弊社のエンジニアチームのメンバーは、前職で大規模開発や負荷分散の経験を持っています。だからこそ、かなりのスピードで体制を整えることができたのだと思います。

大窪: 自分は2002年に新卒でSIerに入ったのですが、その後、大手レンタルサーバ、大手SNS、アドテクノロジーといった分野で、基礎の部分から開発に携わってきました。こうした経験は、確かに今の現場でも活きていると感じますね。

田村: そうやって1年前と比べるといろいろなことがかなり整備され、今年に入ってからは異なる経歴を持つ3人のエンジニアが入社しました。とは言っても、まだまだやるべきことはたくさんあります。自ら考えて最適なものを整えていくのが好きという人にはやりがいのある環境だと思います。

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/7f889f5f-7bc5-47b4-bda0-9a68bad37910.png

普通は大丈夫な方法でも、耐えられずダウンしたことが何度もある

―なるほど。では、少人数で大規模サービスを回すために具体的にはどんな工夫を?

田村: 小さな機能を一つリリースするだけでも、本当に大丈夫なのかというパフォーマンスチェックを入念に行っています。

というのも、巨大な負荷とどう向き合うかというのは、やはり最大のテーマです。一般的には「このやり方なら大丈夫」とされる方法でも耐えられずダウンしたことが、過去には何度かありました。そのため、PHPの関数一つ使うにしても、PHPの中の構造がどうなっているのかというレベルまで常に意識するようにしているんです。

大窪: 現状、サービスはサーバ数十台から成り立っていますが、どれくらいのリクエストであれば適切にさばけるのか、取れる統計情報にはどれもかなり注視して、チューニングも定期的に行えるように気を使っています。

前職でアドテクノロジーに関わっていた時にはDSPのエンジンを基礎の部分から開発しましたが、秒単位ですごい量のリクエストをさばく広告システムでの経験は、ここでも活きていると思います。

―ということは、大窪さんがインフラ担当?

田村: いいえ、明確には分かれていません。あえて言うなら自分はサービス寄り、大窪はインフラ寄りではありますが、ウエートが違うくらいで、基本的には全員が同じレベルで全てのタスクをこなせるようにしています。

大窪: 7人しかいないわけですから、一部分だけしか分からないというのでは成立しません。逆に言えば、人数が少ない分、個人の裁量が非常に大きいというのは、この会社で働くことの一つの魅力ですね。

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/4e438f51-10aa-44dc-bee1-7e845c037405.png

新機能には「Elixir」を新たに導入

大窪: 弊社では一部サービスをRubyで書いているほかはPHPで開発してきたのですが、自分の発案で『GameWith』のサイト内に「自動マルチ募集掲示板」という機能を実装した際には、Elixirを新たに導入するということも試みました。

『モンスターストライク』は『GameWith』のサイト内で最もPVを集めるゲームタイトルで、一緒にプレーする仲間を募る掲示板は、中でも大きなトラフィックがある機能です。ただ、従来の仕組みでは一部の募集に応募が殺到してしまうという問題がありました。

改善するのには、既存のサービス以上に回転率の良いシステムを作る必要がありました。そこで、その条件を満たすいくつかの言語を比較検討し、最終的にElixirを導入することにしたんです。その結果、募集と応募をうまく分配するシステムを作ることができました。

田村: 責任ももちろん大きいですが、こうした技術的なチャレンジができるのも、エンジニアとしてやりがいを感じる部分です。

―今挙げていただいたようにエンジニアが提案して機能開発が始まることは多いのですか?

田村: いろいろなケースがありますが、一番多いのは各事業部から上がってきたアイデアや要望を代表の今泉が精査して、優先度をつけるというパターンです。僕らエンジニアは、それをどう実現していくかを考える役割です。

大窪: 先ほどの例に関しては、まず会社としてスマホアプリを作っていこうという大きな流れがあり、中でも一番PVのある『モンスト』に特化したアプリを作ろうということになった。自分は『モンスト』のヘビーユーザーでもあったので、かねてから温めていたアイデアを提案したという形です。

田村: 今回のケースなどは、大窪自身がユーザーとしてゲームを遊び、掲示板を使っていたからこそ出てきたアイデアと言えます。このように、GameWithのエンジニアはみな、ゲームに愛着を持っています。そのことが、ユーザー目線のサービス開発に活きているんです。

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/6bda9995-b3e6-4ff9-b617-820f74f645f1.png

エンジニア出身トップだから、無茶振りがなく、残業が少ない業務フロー

―代表の今泉さんは今もかなりプロダクトを見ているようですね。エンジニア出身の代表だから感じる働きやすさはありますか?

田村: 代表はしっかりとサービスを見ており状況を把握しています。また、直接コミュニケーションを取れる機会が多く、伝言ゲームが発生しにくい。非常にものづくりがしやすい環境と言えると思います。

加えて代表は現実味のある提案をしてくれますし、エンジニアチームに対する無茶振りもない。現状CTOを置いていないというのも、組織のフェーズということもありますが、それ以上に代表が技術的判断ができる人だからだと思います。

大窪: 毎週月曜朝にエンジニアチーム全員でスクラムのミーティングを行うのですが、そこには毎回必ず代表も参加します。このミーティングは先週起きたことを報告する場であると同時に、タスクに優先順位付けをして、今週やることを割り振る場でもあります。

田村: ミーティングは基本的にこの1回に集約しているので、月曜午後から金曜までは不要なミーティングに振り回されることなく、タスクに集中できるようになっているんです。

大窪: この提案を行ったのは現場のエンジニアでしたが、実際にこういう形で業務を進められているのは、代表がエンジニアのことを理解して、合理的に考えてくれているからこそだと思います。

田村: また、残業がなくても成り立つような業務フローを設計しています。業務時間中にメリハリをもって行うことを会社として意識しており、残業が40時間を超えると注意される位です。 残業が少ないことも働きやすいと思いますよ。

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/42b3c6a8-9f0d-4831-86c3-dda68c9eed52.png

これから第2フェーズ。次に入る人もコアメンバー。PHP経験は不問。

―では、今後のGameWithのビジョンと求める人材像を教えてください。

田村: GameWithが目指すのは「ゲームをより楽しめる世界を作る」こと。これまではまず「攻略情報」という一つのプロダクトで大きなトラフィックを獲得することができましたが、それは第1フェーズに過ぎません。

いよいよ第2フェーズに入る段階を迎えており、今後はアプリや新規サービスの開発にも力を入れて、これまでのメディアという枠を超えたサービスを作っていくことになると思います。

GameWithはもともと、スマホゲームがネイティブアプリの時代になり、ユーザー同士の交流する場が失われたという問題を解決しようと考えたところから始まりました。その観点で、より楽しんでもらえるようなものをいろいろと模索していきたいです。

その際に大事なのは、一つのシステムを作るというより、サービスを作るという視点。今、中にいるエンジニアはみな、そういうところにモチベーションを感じてやっています。だから逆に、この一つの技術だけをやっていたい、という人は合わないかもしれません。

大窪: 単に人手が足りないから募集する、というフェーズではないので、自ら考えて提案できる人に来てほしいです。

今から入る人でもまだ8人目ですので、当然コアメンバーといえる存在です。自分の手でサービスを成長させるダイナミックさが味わえるというのは、エンジニアとしてやりがいがあるのではないでしょうか。

そうした視点を持っていて、一つの技術のとっかかりさえしっかりしていれば、仮にPHPで書いた経験がなくても構いません。そもそも、去年入社したメンバーも入社前にはPHPにあまり触れていませんでした。しかし、それがネックになることはなく中核として活躍しています。その事実が何より証明していると思います。

―本日はありがとうございました!興味を持たれた方は、転職ドラフトでGameWithのドラフト指名を是非受けてみてください!

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/70fb29f6-98bc-4254-820d-14273acbe54d.png

(文:鈴木 陸夫)

ENTRY
pickup
interview

タグ一覧

年収診断 登録不要!30分で結果がわかる!
SIGN UPSIGN IN


転職ドラフトを友人や同僚に薦める可能性はどのくらいありますか?