株式会社サイバーエージェント SGE(Smartphone Games & Entertainment)事業統括室 CTO 白井氏インタビュー!
業界をリードするトップエンジニアの皆さまに聞いた、プログラミングを始めたきっかけやご自身のスキルアップの極意、初心者へのアドバイスなど、貴重なお話をお届けするシリーズ「トップエンジニア・インタビュー」。
今回は株式会社サイバーエージェント SGE(Smartphone Games & Entertainment)事業統括室 CTO 白井英氏にお話をお伺いしました。
プロフィール:白井英氏
大学卒業後、大手Slerの業務系Webシステムのアプリエンジニアとして従事した後、ベンチャー企業でエンジニアとしてマネージメントも担当。
その後 サイバーエージェントグループでゲーム運営の基礎を築く。現在はサイバーエージェントのゲームに携わる子会社9社を取りまとめるSGE事業統括室のCTOを務める。
子供の頃からプログラミングに触れていたとお聞きしたのですが、きっかけはどのようなものでしたか?
きっかけは、父が持っていたマイコンを、当時幼稚園児だった私に使わせてくれたことです。マイコンを触ること自体がおもしろそうだなと思い、書き写しでプログラミングを書いていました。最初はとにかく自分が書いたプログラムが動くことが面白かったです。
大学に入ってから、研究で衛星のデータを解析する必要が出てきたため、再びプログラミングに触れることとなりました。プログラミングを活かせる仕事をしたいと思うようになり、就職活動をする際はエンジニアとして進める会社を選びました。
幼稚園の頃からやっていたんですね!
技術力をつけていくに当たって効果的だった勉強方法などはありましたか?
とにかく、自分で試すことが重要だと思っています。ネットで面白そうな技術の話題をみつけたら、すぐに自分で試してみる。プログラミングと聞くと敷居が高いと思われがちですが、いざやってみると案外できたりもします。できるようになってきたら、その次は、技術のトレンドだったり、考え方を学ぶことで技術力の向上につながると考えています。
そのときの経験などから、プログラミング初学者の方などにエンジニアになってもらう場合どのように指導されますか?
そうですね。例えば、ある程度の技術要素を含んだサイトを仕様書に従って1人でまるっと作ってもらうことをしています。
自ら調べて考え作ってみる、という体験をして自分自身がどれくらいできるのかを体感してもらいたいという意図があります。
実際に作ってもらったあと、つくったときの考え方などを聞きながら、改善点や作り方などを教えていきます。とにかく自分でやってみることが成長するために重要だと考えています。
子会社同士の横でのシナジーを生み出す
子会社9社のCTOというのは珍しいと思うのですが、どのような仕事をされているのですか?
サイバーエージェントのゲーム事業では、サイバーエージェントグループの子会社同士で競わせるという子会社戦略をとっています。1事業部でもできることを、子会社で取り組むことで競争を生み、事業のクオリティを高めています。
しかし、各社それぞれがバラバラに取り組んでいるとノウハウがうまく共有できず同じ失敗をしてしまったり、同じものを作ってしまったりと無駄が多くなっていたので、9社を集めた事業部がうまれました。その中で私は各社の開発が効率よく円滑に行えるようにハブ役というかたちで携わっています。
そうだったんですね!
9社のCTOとして気をつけて取り組まれていることなどありましたら教えていただけませんか。
9社をまとめる時のスタンスとしては、9社の方針を私が決めるということはせずに自分たちで責任をもってやってもらう主体性を心がけています。
今、何が大事で、何が必要か、であったり、目標を達成するためにはチームでどう動けばいいか、ということを自分たちで考えてもらうようにしています。
自分で考えて自分で出した結果で失敗すると、学ぶことが多い。逆に指示待ちからの失敗だと何も成長しないで終わってしまいます。
プログラミングスキルの向上だけが全てではない、成果を意識した働き方
ゲーム事業部の急成長を支えているものなどありましたら教えてください
エンジニアにも携わっているプロジェクトのKPIを意識させるようにして、毎朝共有しています。エンジニアはどちらかというとエンジニアリングだけに集中してしまいがちで、事業や成果からずれてしまう場合があります。
ですが、会社の一員として働いている以上は、成果に結びつけなければなりません。プログラミングスキルの向上だけではなく、自分たちの成果はなんなのかを意識して働いてほしいと考えています。
どう動けばどういった成果につながるのかなどを常に意識してほしい。”これだけをしていればいい”という働き方はしてほしくないですね。
KPIを意識した取り組みとしてどういったことをされていますか?
例えば、チームで不具合の数やアプリの稼働時間などを改善していこうとした時に基本的に、ユーザーの方がどう考えるのかをベースにコミュニケーションしています。
なんのために不具合を直すのかを考えたら、ユーザーの方が感じるマイナス部分を減らすことが目的になりますよね。当たり前のことなんですが、そういったことを意識しているのと、していないとでは開発する上で大きく変わってくると感じています。
これからのエンジニアに求められるものがあれば教えてください。
SGE事業統括室では、エンジニアの行動指針として「ENGINE」というものをつくっています。例えば、その中の一つに「一人プレイ禁止」というものがあります。
これは、『エンジニアこそ独りよがりな仕事をせず、チームサイバーエージェントとして大きな成果を上げること。』
『なぜ会社で仕事をするのか?を考えた時に、それは一人ではなし得ない成果を生み出すためだ。』
という2つのメッセージ性があります。
会社のエンジニアとして働いている以上、1人で何とかしようと考えるのではなく、役割を分担し、会社全体で成果をあげることを共通認識として考えてもらいたいです。
新卒のエンジニアの方などに対して意識して教えている部分などはありますか?
「自分で考えて解決する自走力をつける」という観点で考えています。
1つ1つの技術を教えるよりは、現場に入ったときにどう動いて成果につなげるかというのを肌で感じてもらう点を優先しています。また、チームのメンバーとしてなにをすべきか?ということなどを自分で考えて行動してほしいと思っています。
また、技術的な面ではサーバ・ネイティブ両方をあつかえるエンジニアになるように、両方の技術を教える施策を実施しています。
「モノをつくる楽しみを体験する」
プログラミングは、物理的にはキーボードに向かって打鍵することで自分が思い描いたモノ(プログラム)を動かせる、モノをつくる楽しみを体験できるものです。
“自分がつくったモノ”が動く喜びは、今でも私自身がプログラムを書く大きな原動力になっています。プログラミングを通して、ぜひ「モノをつくる楽しみ」を体験して下さい。