月間150億PV超、延べ会員数は1600万人以上と、多くのユーザに支持されているソーシャルアプリケーション(図1 )をリリースし続けているのがグループスです。さらにエンジニアの視点では、アプリケーションサーバにIIS、データベースにSQL Server 2008 R2、そして実際の開発をC#とASP.NETで行うなど、Microsoftのテクノロジを積極的に採り入れていることも見逃せないでしょう。同社の取締役CTOである池田秀行氏(写真1 )に、ソーシャルアプリケーションの開発に至った背景や、Microsoftの技術を積極的に採り入れている理由などについて伺いました。
図1 グループスの人気ソーシャルゲーム「大召喚!!マジゲート」と「大連携!!オーディンバトル」
独自のSNS開発がきっかけでソーシャルアプリの世界へ
「もともとは広告代理店として立ち上げられた会社で、扱っていたのも紙媒体であり、いわゆるネット系とは全然関係のない事業分野だったんです。そこに私が2007年にジョインしまして、広告代理店業の傍らでゼロベースで自社サービスを作ろうということになりました。インターネット上でのサービス開発という意味では、そこがスタートだったのです。当時はFlexやSilverlightを使ったRIA(Rich Internet Applications)が流行していたこともあり、そうした技術を使ってSNSを作ればおもしろいんじゃないかということでコミュニケーションサービスを開発しました」
こうして開発したSNSは思うようにユーザ数が伸びなかったようですが、そのあとに新たな転機となったのが携帯電話をターゲットとしたSNSの流行です。
「携帯電話にターゲットを絞ったSNSが各社から登場し、人気を集めていたんですね。そういった世の中の流れを受けて、携帯電話向けに自社サービスとしてモバイルSNSを開発しました。以前開発したPC版のバックエンド部分を流用しつつ、携帯電話からアクセスできるようにフロントエンドを作りなおした形です。そのあと、さらにソーシャルネットワークとゲームを組み合わせたサービスが登場して人気になったのを見て、自分たちでもやってみようとゲームをリリースしました。ここがソーシャルアプリケーションプロバイダとして事業展開するようになったきっかけですね」
写真1 グループス取締役CTO 池田秀行氏
エンジニアが本来の業務に集中できる環境
ソーシャルアプリケーションの開発、運用において、一般的に使われているのがLinuxとApache、MySQL、PHPを組み合わせたLAMP環境でしょう。一方グループスでは、アプリケーションサーバとしてWindows Server 2008 R2+IIS、データベースサーバにSQL Server 2008 R2、そして開発はやはりMicrosoftのC#とASP.NETを利用しています。Microsoftのこうした製品や技術は、業務系アプリケーションの領域では幅広く使われている一方、ソーシャルゲームの開発・運用で使われるケースはけっして多くはありません。その理由の1つとして、ライセンスコストの問題が挙げられます。
当然ですが、Windows ServerやSQL Serverはプロプライエタリなソフトウェアであり、利用するにはライセンスコストが必要となります。サーバの台数が少なければライセンスの負担も小さくて済みますが、人気の高いソーシャルアプリケーションでは、大量のアクセスを迅速にさばくために、複数台のサーバを利用して負荷分散を行う構成を採るのが一般的になっています。オープンソースのソフトウェアであれば、サーバをどれだけ増やしてもライセンスコストが必要になることはありませんが、Windows ServerやSQL Serverを利用した場合、負荷分散のためにサーバを増やせば、それだけコスト負担が大きくなってしまうわけです。
ただ、このようにコスト面での負担があっても、Microsoftのソフトウェアや技術を使うメリットは大きいと、池田氏は言い切ります。
「たしかにコストはかかりますが、あまり気にしてはいません。もちろんけっして安くはありませんが、それ以上のメリットがあると考えています。たとえばデータベースであるSQL Serverを実際に利用していると、その完成度の高さを実感します。オープンソースのデータベースと比べた場合、SQL Serverは本当にメンテナンスの手間がかからないんです。MySQLの運用について解説している記事をよく見かけますが、SQL Serverであればそうした情報がなくても問題なく運用できます。管理環境も充実しているほか、たとえばSQL Server Management Studioというツールを利用すると、『 こういうインデックスを張ればパフォーマンスがどれくらい改善します』といったことをアドバイスしてくれるんです。こういったチューニングはエンジニアとしての腕の見せどころではありますが、別にそれが目的ではないですよね。ツールにできることはもう任せてしまって、本来エンジニアがすべきことに集中できる。こういったところが魅力です」
グループスがC#での開発にこだわる理由
さらに池田氏は、C#の開発生産性の高さにも言及します。
「C#はJavaに比べてはるかに開発生産性が高いと考えています。言語としての完成度も高い。それから、開発から実行、そしてデータベースまで含め、シームレスに環境が整えられているところも魅力です。たしかに、カスタマイズ性という観点から考えるとLAMPと呼ばれる環境には及ばない部分があります。たとえば、Javaであればミドルウェアの選択肢が数多くあり、好みのものを選択して利用できます。ただ、その一方で相互運用性の問題を意識しなければならないわけです。一方、Microsoftのソフトウェアや技術であれば、それぞれがシームレスにつながっているので、そのあたりを強く意識する必要はありません。こういった部分においても、Microsoftのソフトウェアや技術を使うメリットは大きいと考えています」
ちなみに、池田氏自身はもともとJavaエンジニアだったと話します。
「この会社に来る前は、SEとして働いていました。そこで使っていたのはJavaで、業務でC#を利用してアプリケーションを開発した経験があったわけではありません。単純に言語としてC#は完成度が高いと感じていて、最初にSNSを作る際にバックエンドの開発に利用したんです。そうして実際に使うようになってから、Javaよりも開発生産性が高いということがわかったわけです。実際に同じものをC#とJavaで開発して比べたわけではないので、定量的にどのくらいかとは言えませんが、コード量は圧倒的に少ないというのは言えると思いますし、コード自体も書きやすいですね」
ただ池田氏は、すべてをMicrosoftに頼っているわけではないとも話します。具体的には、フロントエンドにはLinux上で動作するNginxを利用しているほか、複数台のサーバのメモリを使ってキャッシュシステムを構築できるmemcached、あるいは分散KVSとして注目を集めているRedisなども使っているとのこと。何かにこだわるのではなく、あくまでもニュートラルな立場で、目的を達成するために最適なものを選択していくということのようです。
エンジニアが意欲的に働ける環境を構築
さて、グループスではコンテンツごとに7~12名のプロジェクトチームを作って開発・運用を行っているとのこと。チームの内訳は、コンテンツ責任者であるディレクターとエンジニア側のコンテンツ責任者であるメインエンジニア、そしてメインエンジニアを中心に、デザイン面での責任者であるプランナーとエンジニア、Webデザイナーとイラストレーターで構成されており、Flash開発者やインフラエンジニアは全プロジェクトに横断的に関わるという形になっているようです。
新しいものに積極的にチャレンジし、意欲的にプロジェクトに取り組んでもらいたいという考え方から、プロジェクト間での人の異動も頻繁に行われています。
「1つのプロジェクトにじっくり取り組むというやり方もありますが、チームの固定化には弊害もあると考えています。そのためグループスでは、プロジェクト間のメンバーの移動は頻繁に行っています。新しいことにチャレンジしてほしいということと、やる気を出してプロジェクトに取り組んでほしいというのが理由ですね。メンバー自身が手を挙げて、プロジェクトを移動することも珍しくありません」
また、「 グループスで働くエンジニアには作業者にはなってほしくない」と池田氏は話し、その理由を次のように説明します。
「人が多くなるとどうしても作業分担ができてしまうと思いますが、いつも同じ仕事だとつまらないじゃないですか。たとえば、発注する側とそれを受けて作業する側に完全に分かれてしまうと、作業する側は受け身となってしまいますし、仕事に対する不満も出てくると思うんです。しかも、100万人規模の会員を少数のメンバーで運用するという形をとっているため、時間的に厳しくなるケースも多々あります。そのとき、単なる作業だと『なぜこんなにツラい仕事をやってるんだ?』という話にもなりかねません。そういう状況に陥ることなく、個々のエンジニアが高いモチベーションで働ける環境を整備していきたいという考えから、プロジェクトチームのメンバーは流動的に動けるようにしています」
グループスが求めるエンジニア像
それでは、グループスはどういったエンジニアを求めているのでしょうか。これについて池田氏は、まず「自分でサービスを作りたい」と思っているかどうかが一番重要だと言い切ります。
「自分でソーシャルゲームを開発し、多くの人に楽しんでもらいたいと考えているかどうか。開発スキルは当然求められますが、それ以上に自分たちのサービスを責任を持って届けたいという気持ちを持っているかどうかを重視しています」
ちなみに異業種からの転職は難しいのではないかと考えている人が多いそうですが、実際にはそうではないようです。
「ゲームに関しての開発経験は不要ですね。ゼロでいいと思います。ただ、ユーザとしての感覚は求められるので、ソーシャルゲームを楽しめる人に来てほしいですね」
グループスのエンジニアには、自分たちのサービスを責任を持って届ける気持ちが求められる
最後にグループスで働くメリットについて聞いたところ、次のような答えが返ってきました。
「グループスでは、大量のトラフィックを効率的にさばくために新しい技術も積極的に採り入れているので、そういったところに興味がある人にはチャレンジしがいのある職場ではないでしょうか。さらに、Microsoftが優れたエンジニアを表彰するMVP(Most Valuable Professional)を受賞したエンジニアも在席しています。そういったスキルの高いエンジニアと、切磋琢磨しながら自分自身の腕を磨けることも大きいと思います」
「大召喚!マジゲート」「 大熱狂!!プロ野球カード」「 大連携!!オーディンバトル」のヒットなどにより、国内有数のソーシャルアプリケーションプロバイダとなったグループスですが、サンフランシスコやベトナムに開発拠点を設立するなど、さらなる成長を目指して意欲的に事業を展開しています。エンジニアとしてのステップアップを考えるうえで、このように成長する会社で働くことは大きなプラスとなるのは間違いないでしょう。