Q: まず、技術との出会いについてお聞かせください。
私の父は新しいものが好きで、幼稚園の頃には家にマイコンがあったんです。毎日ログインしてはBASICで雑誌のプログラムを写経したり、テープレコーダーからプログラムを読み込ませてフライトシミュレーターのゲームで遊んだりしていました。そうやってマイコンに触れて育ったのですが、小学校1年生のときにファミコンが発売されてからは、そちらに夢中になっていきました。私も父のように、新しいものが好きだったんでしょうね。
やがてパソコンが登場しましたが、しばらく触ることはありませんでした。高校生のときに学校の図書貸し出しシステムで使うこともありましたが、壊してしまいそうで怖かったのを覚えています(笑)パソコンに触り始めたきっかけは、大学に入ったタイミングでWindows95が登場し、そのタイミングで父がノートパソコンをくれたことです。そこから自作パソコンに凝り始めて、パーツ屋さんでアルバイトをしたこともありました。当時の大学ではワークステーションが主流だったのですが、自分のパソコンでプログラムを走らせた方が速かったので修士の研究も自作パソコンでやりましたね。
Q: 本格的に興味を持たれたのは、大学生の頃なのですね。エンジニアの道を選ばれたのはなぜですか?
就職を控えて将来を考えたときに、「パソコンが好き」ということが自分にとって一番の財産だと感じたんです。自作パソコンを通してエンジニアリングに興味を持ち始めていたこともあり、エンジニアの道を選びました。
最初に入った会社は、仙台にある某大手企業のSE会社です。こちらでの経験で印象深いのは、電力会社のシステム構築のプロジェクトですね。私自身はアプリエンジニアとして配属されていたんですが、「インフラのプロジェクトを手伝って」と声がかかり、携わることになりました。Oracle担当としてバックアップリカバリーの設計・構築など一通りのことを学ばせていただき、とても新鮮でしたね。その他はWebの業務システムに携わることがほとんどで、大学の履修システム開発や、社内システムを一から作るプロジェクトに入ったりしていました。
Q: その後、2社目の会社に入られた経緯をお聞かせください。
7年ほど勤めたときに、10年後のSIerで働く自分を想像してみたんです。すると、10年先も今と同じようなことをしているイメージしか湧かなかったんですよね。そこでちょっと違うことにチャレンジしてみたくなり、モバイル向けコンテンツの開発会社に転職しました。まだ業界自体ができたばかりの頃でしたから、自分のような未経験の人間でも追い抜ける気がしたんです。
そちらは仙台の小さなベンチャー企業で、20名に満たないくらいの規模だったと思います。広告系の会社から仕事をもらうことが多く、「何か面白い企画ない?」という感じで、唐突に問題を突きつけられるんです。そこでこちらの営業が一生懸命企画を考え、「技術的にできるの?」という質問に「できます」と答えてたんですよ(笑)そうなると本当に作るしかないのでエンジニアリングの力もつきますし、非常に面白い経験ができましたね。ベンチャー企業は仕事を受注できるかどうかがすべてですから、私の力量不足のせいで「できない」と断るわけにはいきません。実際に、「何とかしよう」という思いでやっていけば何とかできたので(笑)それ以来、自信を持って仕事ができるようになりましたね。
Q: 長年仙台で働いてこられて、3社目に東京のCyberXを選ばれたのはなぜですか?
私は当時、地方でも最先端のことができると証明したくて仙台で働いていました。しかし2社目のメイン事業にしていたゲームの売上が伸びず、会社を縮小することが決まったんです。そこで夢が破れてしまい、一度は、東京を見てみたいという気持ちがあったので、東京で転職することを考えました。そんな時に、東京で営業をしていた専務が知り合いに声を掛けてくださり、東京の会社の人達がプレゼンをしに仙台に来てくれたんです。その中に当時CyberXの社長だった小柳津がいて、彼の熱意に惹かれてCyberXへの入社を決めました。それが2009年の年末のことです。
CyberXはそれまでモバイル向けのコンテンツを作っていましたが、2010年からはソーシャルアプリ開発に業態変更することが決まっていました。もともと社員はほとんど営業で、エンジニアは委託という形を取っていたんですが、そのタイミングでものづくりの会社にシフトしようとしていたんです。新しくエンジニアを探していたところで、ちょうど私が入りました。
Q: 時代の流れを反映する形で、ソーシャルアプリ開発という新しい分野に移られたのですね。
そうですね。私がCyberXに入社した2010年3月当時、社内では2本のアプリを開発中で、1本はエンジニアが足りずに企画段階で止まっている状態でした。私がそのアプリの担当になって3本の開発が始まり、そのうち「星空バータウン」というアプリがヒットしたんです。私は開発には携わりませんでしたが、人員が足りなかったので運用のサポートに入りました。
インフラメンテやバグ修正などいろいろな対応をしましたが、特に大変だったのは「5秒ルール」ですね。5秒以内にレスポンスを返せない回数が5分で1000回以上になると、プラットフォームから切り離されてアプリが動かなくなってしまうんです。かなりシビアな状況でしたが、毎日一生懸命直していました。
Q: 2014年11月のCyberX解散から、現在の役職に就かれるまでの経緯をお聞かせください。
少し遡って話をさせていただくと、2010年にスマートフォンアプリ事業を始めたサイバーエージェントの子会社はアプリボット、サムザップ、CyberXの3社でした。その中でもエンジニアの社員は私が初めてだったので、入社当時から他社をフォローすることが多かったんです。そして2012年に子会社群でカードバトルを当てようという取組みが始まり、私がメインのアプリ担当として全体のまとめ役のような立ち位置になりました。そういう経緯があり、周りのフォローをするのが自然なことになっていたんですよね。
そしてCyberXを解散するときに、ゲーム事業に携わる子会社9社を取りまとめる「SGE(Smartphone Games & Entertainment)統括室」を新設することが決まりました。そこで私が管轄のCTOに就いたという流れです。自分としては役職が変わっただけで動きは今までと変わらず、周りのフォローに徹しています。他の人から見たときに立ち位置がわかりやすくなったかな、というくらいですね。
Q:子会社群のCTOというのは珍しいですが、子会社9社それぞれで開発している利点はありますか?
サイバーエージェントの特徴として、子会社戦略があります。本来は1事業部でもできるゲーム事業に、現在は子会社ごとに取り組んでいます。その背景にあるのが、「競争と協調」という考え方です。各子会社の文化は尊重しつつ、協力しながらゲーム事業に取り組むのが「協調」の部分。そして、競い合いながら事業のクオリティを高めていくのが「競争」の部分です。
この子会社戦略を取っていることが、エンジニアにとっていい環境を作り出していると思います。エンジニアは新しい技術を試してみたい欲求がありますが、自社で試せる範囲はどうしても限られてしまいます。しかし他の子会社が先に試していれば、いいやり方を教えてもらえるんですよね。もちろん悪い事例も共有するので、失敗する確率は格段に下がります。そうやって教え合うことで技術力が磨かれるので、エンジニアにとっても、会社にとってもいい取り組みだと思います。
Q: 各子会社のノウハウが集められる分、成功率が上がるのですね。
そうですね。なるべく成功確率が高い方にエンジニアリングを持っていく、という考えが前提にあります。各子会社の技術責任者にも「これにしなさい」と断定するのではなく、「これは失敗しやすいからこっちの方がいいよ」と伝えるようにしています。わかりやすい例を挙げると、最近ではCocos2d-xとUnityでしょうか。もともとはCocos2d-xが主流でしたが、今はUnityのプロジェクトが多くなってきています。Cocos2d-xは、メモリまわりにバグを埋め込んでしまうと調べるのに時間がかかるため、慣れているエンジニアでないと直すのに時間がかかります。一方Unityはメモリまわりのバグを作り込みにくく、メモリ回りでは落ちにくいので、導入の敷居が低いです。もし、どちらでもいいのであれば導入の敷居が低いUnityを薦めています。基本的には各子会社の技術戦略に任せつつ、ムダを見つけたらやんわりと方向修正する感じですね。
Q: CTOとして技術選定をされることもあるかと思いますが、どのような選定基準を設けていますか?
技術選定に関しては、基本的には運用を意識しています。開発中に埋め込んだバグが運用中に爆発することがよくありますが、それは良くないですよね。ですから、運用の負荷がいかに軽くなるかを考えながら選定しています。安定感を求められるアプリを作るときはなるべく成功確率の高いものを薦めつつ、新しい技術にも積極的にチャレンジしてもらっています。
具体的な開発環境としては、Java、PHP、Node.jsの3言語を使っています。PHPがもっとも多く、少ないのはNode.jsですね。昔の「ソーシャルアプリといえばPHP」という流れを踏襲しつつ、PHPをスマホでも使いつつ、Javaをアプリボットが使い、Node.jsも一部使っているという感じです。
Q: エンジニアの採用基準についてはどのようにお考えでしょうか。
まずは、一緒に働くイメージが湧くかどうかです。長く働いてもらいたいので、「この人と一緒に働きたい」という感覚は大事にしています。技術に通じる部分としては、情報感度の高さはチェックしています。私自身もそうですが、ゲーム事業はサイクルが早いので、新しいものへの耐性がある人の方が働きやすいんですよね。そういうところは意識しながら話を聞くようにしています。
Q: 事業との相性も重視していらっしゃるのですね。入社後の教育で工夫されている点はございますか?
若いメンバーが育つための土壌は整ってきたと思います。最近は「カバン持ち制度」というのを始めまして(笑)新卒か2年目のメンバーを1人選び、半年間ずっと私と一緒に働いてもらい、技術修行をしてもらいます。私も、緊張感を持って働けるので、お互いに刺激しあえるいい施策になっていると思います。これは今期で2回目になる試みですね。
リーダークラスの育成については、私の経験上、まずは「自分が何とかしなきゃいけない」という責任感を持つことが大事だと思っています。「任せても大丈夫そうだ」と思ったら、いきなり任せてます。無茶ぶりだと怒られることもありますが(笑)一応何かあればすぐバックアップできるような体制を敷いて、頑張ってもらっています。抜擢の文化が根付いているので、期待できる人材がいれば今後も積極的にプロジェクトを任せていきたいですね。
Q: エンジニアの評価基準についてはいかがでしょうか。
評価基準に関しては、ゲーム事業はちょっと特殊かもしれません。おそらくエンジニアは技術的な評価を求めていると思いますが、私は事業貢献度を重視しています。「アプリの売上に対してどういう貢献ができたか」ということです。もちろん技術面の評価もしますが、「技術的な満足度が得られれば売上はどうでもいい」という働き方はしてほしくありません。プロジェクトに入っていれば必ず「こうすればうまくいくのに」と思うことがあるはずなので、それをちゃんと皆に伝えて、当事者意識を持って仕事をしてほしいですね。
ただ、売上至上主義というわけではありません。アプリ開発において一番大切なのは、ユーザーさんの満足度です。売上はそこに付随してくるもので、一番わかりやすい目安です。エンジニアはそこを参考にしつつ、多くの人が楽しめるアプリを生み出してもらいたいですね。
Q: そういった意識付けは難しそうですが、どのような工夫をされているのでしょうか。
ゲーム事業全体が、売上を意識させるコミュニケーションをしているんです。アプリごとに日次の売上目標が立てられていて、朝会でプロジェクトマネージャーが前日の売上をメンバーに伝えます。逐一進捗度を報告するんです。本来であれば、エンジニアとしてはそういう話は聞きたくないと思うんですけど(笑)それが当たり前の環境になっているので、自然に馴染んでいる感じですね。
Q: 白井さんは、ご自身のエンジニアとしての成功についてどう分析されますか?
私はあくまで、相対的なものだと考えています。たまたまそのポジションをやれる人が自分しかおらず、タイミングに恵まれたのではないでしょうか。あとは、向き不向きですね。エンジニアはプログラムを書きたい人が圧倒的多数だと思うんですが、私はそんなにプログラミングに固執していないんです。どちらかというと働き方や運用の仕方、エンジニアリングのやり方などに興味があったので、そういうところはCTO向きかもしれませんね。最近もDevOpsという言葉が出てきましたが、例えばJenkinsなど、エンジニアが楽になるツールはたくさんあります。そういったものを積極的に導入しつつ、エンジニアがエンジニアリングに集中できる環境を整えることが現在の目標であり、時間を割いている部分です。
Q: エンジニアが働きやすい環境作りに取り組まれてみて、実際の成果はいかがですか?
言うのは簡単ですが、組織はそんなに急激に変わらないんですよね(笑)「去年よりは良くなったね」という感じで、微々たる変化の積み重ねだと思っています。それでもやっぱり、少しずつ成果は出てきています。エンジニアの就業時間は不規則になりがちですが、最近は、帰る時間も早くなり、皆が集中して働けるようになってきました。
ただコミュニケーションに関しては、私はアナログ寄りの人間なんです。例えばHipChatを導入して効率が上がった、コミュニケーションが円滑になったという話もよく聞きますが、どんなコミュニケーションツールにも一定の弊害はあります。他のところはいくら効率化しても、コミュニケーションは顔を合わせて話をするのが一番というのが私の考えですね。定例ミーティングなどで自分の考え方を伝えつつ、メンバーにはなるべく会って話をするようにしています。