【DeNA分析部特集Vol.3】データエンジニアリンググループ発足の狙いとは?MLOps導入や新技術によるコスト削減などで事業貢献を目指すゲーム開発2019.03.07【DeNA分析部特集Vol.3】データエンジニアリンググループ発足の狙いとは?MLOps導入や新技術によるコスト削減などで事業貢献を目指すBigQueryGCP分析部MLOpsDeNAが運営するゲームはプロデューサーやディレクター、プランナーなど様々な職種によって支えられていますが、分析の役割もゲームの開発・運営にとって重要な存在と言えます。今回は、分析部内に新たに組織されたデータエンジニアリンググループにスポットを当て、同グループ発起人である岩尾一優と、前回に続いて吉川正晃にインタビューを実施。データエンジニアリンググループ立ち上げの背景や目的、DeNAの中でデータエンジニアとしてどのように貢献しているかなど語っていただきました。――まずはこれまでの経歴についてお聞かせください。私は昨年7月にDeNAに入社しました。それまでは富士ゼロックスでコンビニのネットプリントサービスのアーキテクト設計を担当していました。前職でもデータ分析基盤の立ち上げをしていたことがあって、DeNAに入ってからはデータエンジニア担当として、主に分析の効率化や高度化を推進するようなことをやっています。2月からデータエンジニアリンググループを立ち上げ、マネジメントも担当しています。DeNAには7年間在籍していて、最初の4年間はセキュリティー技術、その後3年間は分析を担当し、直近1年は分析グループのマネジメントに力を入れています。岩尾さんが入社当時は、私のグループに在籍していたんですよ。エンジニア天国という印象です(笑)。PCや椅子など、職場環境が良いと感じています。社風も良い意味で自由な所があり、自分でパフォーマンスをコントロールしやすい職場だと感じています。分析部の皆さんは普段からゲームをプレイされているのでしょうか。ゲームは小さい頃から遊んでいます。コンソールではRPGや洋ゲーが好きでプレイしています。スマホでは『メギド72』をプレイしていますよ。僕はかなりやりますね。最近はコンソールはあまりやっていないんですが、普段からスマホゲームは他社さんのアプリも含めてやっています。その他のメンバーもゲーム好きが多いです。――分析部に新たに組織されたデータエンジニアリンググループですが、どのような背景で立ち上がったのでしょうか。私が入社する以前から、DeNAはデータ分析費用にかなりの金額がかかっていたことが背景としてあります。入社後、それって本当に必要な額になのか調べたところ、いろいろ改善の余地があることがわかってきました。その中で、コスト最適化もそうですし、コードの保守性や一部業務の属人化など、エンジニアリング周辺で、色々と課題があると感じていて。その度に上長だった吉川さんに相談したり、1on1の場で改善の提案をしてきました。実際に改善に力を入れ始めてみると、目に見えてコスト削減ができ、本格的に1度本来のあるべき役割や何をやるべきかを整理して、組織化することでそこの部分を改善していこうと考えました。そもそも分析部としてコスト管理の部分がしっかり定義されないまま運用していた部分も正直ありました。分析部として、コスト改善をしっかりやっていこうというフェーズになっていたところに、ちょうど岩尾さんの入社が重なったんです。そこからコスト削減という活動が目に見えて実績として生まれてきて、それを推進してくれる岩尾さんに組織を立ち上げてもらいました。――吉川さん自身も以前からコスト削減は課題として感じていたんですか。正直に言うと、一番の課題とは思っていませんでした。恥ずかしながら、できるメンバーが対応している体制だったので、まさに属人化の状態でした。分析部の元々のミッションであるデータ基盤を安定的に運用するところは、あくまでもミッション達成の一過程でしかないという考えで組織で取り組む優先度を下げていましたが、今後クラウドにシフトしていくことを踏まえ、優先度を上げていかなければならないということで認識を改めました。これはエンジニアのあるある話ですが、事業に向けた開発や作業は優先されるけど、保守や改善がどうしてもおろそかになりがちなんです。それを放置しておくと、ある時に何かちょっとした変更をするにしても、どこに影響が出るかわからないという状況に陥ってしまいます。なる前に一度、保守や改善をすることで事業開発の工数を削減できれば、全体のキャパも上がっていくと考えて今回取り組みました。なった背景としては、元々分析部のミッションが事業の最重要課題を抽出して解決することで事業に貢献するというところにフォーカスされていて、スピード感を持って取り組むことを優先している文化にあります。事業の意思決定に必要な動きを優先してしまっていたことは反省しています。人員が足りずどうしようもなかったことも事実です。そこで岩尾さんに入社していただき、魅力的な提案もあって、一気に動きが加速できた、ということで非常に感謝しています。足りていない役割、あるべき役割を設定しました。GoogleやAmazonのデータエンジニアが何を持っているのかを調べて、我々ができているところ、できていないところを見つめ直しました。できていない部分は保守もそうですが、ML系とかシステムに載せていくという所が分析部としてちょっと弱いと感じたので、週次でマネージャー陣とレビューなどを行いました。次にミッションについて、もうちょっと短期の目標からどうすべきかを壁打ちしながら磨いていきました。その過程で、実際に今の分析部と将来の分析部にどれくらいのエンジニア力を持った人材が必要なのかも含めて、設計してもらったのはかなり大きかったです。入社して3ヶ月後の10月です。コスト削減の成果がだいぶ出ていたくらいの時期でした。その成果は誰が見てもすぐわかるもので衝撃的でした。早い段階から岩尾さんの力が発揮されていたのも、データエンジニアの組織化に向けた意思決定のスピードにつながったと思います。――現在データエンジニアリンググループで取り組んでいることについて教えてください。1つはMLOpsの導入です。機械学習って、例えばデータサイエンティストがデータ分析して、マーケティングや事業部に分析結果を説明して、理解を得てプロジェクトにつなげていくことがあると思います。事業部の立場からすると、朝出社したら分析データの計算が終わったものを確認できるという状態が一番理想的ではないでしょうか。MLOpsはそれをシステム化するということなんですが、そこまではまだできていない状況です。一部ゲームにはAIが組み込まれていますが、ゲームの機能としてではなく、分析を目的としたMLのシステム化みたいな部分はまだできていなかったので、そこは我々データエンジニアリンググループの役割と考え注力しています。今は全てのモデルで動いているわけではないですが、一部のモデルで導入して動かしているという状態で、これからどんどん載せ替えていくところを本格化させていきます。主な目的として、「工数の削減」と「機械学習について高い専門性のない人でも使えるようにすること」があげられます。後者はシステム化することでハードルがグッと下がります。機械学習って、はじめの環境構築が難しくて、知識も必要になってきます。高い専門性も必要であるため機械学習モデルを作れる人ってどうしても限られるんですが、それを配布して誰でも使えるようにする、という仕組みを作ることでハードルを下げて、専門知識がないアナリストでも使えるようにしようと考えています。――そのMLOps導入で苦労されていることはありますか。苦労としては、DeNAは色々なサービスを運営している会社なので、それらにどう伝播させていくかを前提として考えているというところが大きいです。単一のサービスであればそれに特化したシステムを作れば良いですが、我々は複数のサービスを走らせているので、そこに適用できる形のシステムがどうあるべきか考える必要があります。そこのハードルはかなり高いかなと思いますが、それを乗り越えて実現できたときの効果は絶大だと思います。Googleのクラウド系はシステムアップデートが結構頻繁に行われるので、そういうところをウォッチしながら取り入れるものは随時ピックアップするようにしています。BigQueryというデータ分析基盤では、それ1つとっても新しい機能が毎月のように出ているので、β版からどんどん検証して、我々にとって良いなと思えるものならβ版であっても導入するくらいのスピード感でやっていきたいと思っています。アイデアベースですが、機械学習が増えていくことにより、一人ひとりのプレイヤーにフォーカスすることや、カスタマイズした分析が今後は必要になってくるというところで、データウェアハウスそのものもプレイヤー単位で持てるのが理想だと考えています。あとはクラウド移行ですね。これは全社の意向もありつつですが、元々物理のサーバーを使って大きなサーバーストレージを使いながらやっているんですが、それをすべてGoogleであったりAWSのサービスに載せて、クラウドで管理するように分析基盤も移管する予定です。GCPやAWSにシステムが集約されることで、GoogleやAWSが新しく機能を出したときに、我々もすぐにキャッチアップできる体制が常にできているという状態が実現できますし、コスト削減の面でも物理サーバーを持つよりも、より安価にデータ分析の環境を維持できます。その部分に対して遅れを取らないような体制を今後作っていきたいです。Google社の方と頻繁にお会いして話をしています。手を動かしてみると設計段階の構想と違うと感じることがあったので、そういうところは積極的に聞いています。あとは我々自身も国内外のカンファレンスに参加して、世界の事例を見て良い所は取り入れるようにしています。re:Invent」に参加しました。どんなことが行われているかとか、我々がやろうとしていることは世間と比べてどのくらいのレベルなのか、ということを認識することも欠かさないようにしています。BigQueryに載っていないものがまだまだあって、それを全て載せ替えようということになります。関連するドキュメントの書き直しや、あるいは我々で取捨選択をして必要ないものをちゃんと伝えてあげて、アナリストに影響のないような形でなるべく本業に集中できる形のデータ基盤の移管を進めていかなければなりません。「この業務って本当にまだ必要?」「意味があるんだっけ?」という業務の棚卸をして、最適なシステムをもう1回組むということはやりたいと考えています。――アナリストへの影響なども考慮して移管を進める必要があると。ところで岩尾さんはアナリストとどのように連携して仕事をしているんでしょうか。DeNAは、分析部内にアナリスト、リサーチャー、サイエンティスト、エンジニアがいるところが強みかなと思っています。データエンジニアって開発側に属している会社が多いと思いますが、我々はビジネス部門である分析部の中にいます。ゲームのドメイン知識も持っているので、そういったことを活かしつつエンジニアリングを発揮できる良い体制になっています。その中でアナリストとの連携の仕方は色々ありますが、例えばゲーム内でイベント用の分析が必要になったときに、どういうデータの持ち方をすると最も効率的かという所をアドバイスしたりします。同じような作業を繰り返しているチームの相談もあって、そこの効率化など横断的にデータ基盤を見る機会が多いので、我々からのインプットをアナリスト全員にシェアしていくという動き方がメインですね。あとアナリストやカスタマーサポートの方は、結構SQLをたたけるんですけど、その際に良いSQLと最適ではないSQLがあるんです。BigQueryは何ギガ、何テラ検索したかで料金が発生する従量課金が特徴としてあるので、やはり最適にQueryを書く必要があります。そこで最適ではないQueryを書いてしまったときに、slackで通知してわかるようになっていて、みんなでこのQueryはどこが悪かったか議論できるようにしています。DeNAは失敗を活かす文化があるので、我々はデータエンジニアリンググループとして最適でないQueryが発行されてしまったときにslackに通知するシステムを裏で開発して、要は気付きを与えてみんなで改善していく狙いで実施しています。何ギガ以上のQueryを投げたらシステム的にガードすることもできるんですが、それをやってしまうととメンバーを信頼していないと感じられてしまいますし、本当に必要なQueryだった場合に実行してエラーだったらストレスにもなると思います。それよりも、仮に失敗したとしてもみんなで改善していったほうが学びにもなるし、長期的に見ても良い組織になるのではないかという理由でそのようなアプローチを続けています。データエンジニアリンググループは単純なティーチングだけでなく、コーチングも組織として取り組んでいるんです。それって同じ部内にエンジニアもアナリストも一緒にいて、お互いに信頼関係があるからできることだと思います。アナリストから「こういう分析がしたいんだけど、今のテーブル構成ではどうしても1回で1テラ以上検索してしまってお金がかかってしまう」と相談を受けたときには、そのテーブル設計を見てアナリスト側からの要求を受けて「テーブル構成を効率化しましょう」という働きもあります。お互いに意見を出し合って最適化を目指している組織ですね。そこは皆ちゃんと定時に帰れています(笑)。いうのも仕事の優先順位をしっかりつけているので、普通に19時には帰宅できます。ベビーラッシュで、私に限らずみんな早く帰っていますね。手分けしてちゃんと仕事ができていると思います。今はグループと各メンバーのタスクを管理していて、1人に負荷がかかったり、チーム全体で負荷が高くなるという状況がなるべくないような状態を維持しています。あとは重要かつ緊急の仕事を持たないように意識することが大切です。緊急だけど「それって本当に緊急なのか?」を考え、そこまで実は緊急じゃない案件についてはスケジュールをきちんと引き直すなどの工夫をしながら仕事をしているので、残業はほとんどありません。我々は本質的に重要なことに集中したいと思っていて、そうできるようにがんばっています。この2ヶ月くらいでタスクすべてを棚卸して、優先順位を付け直し、さらに優先順位を付けるためのルールも作成してみんなで作業しています。関係している部署に対しては定例などをしっかりと設けて、その仕事が重要なのかどうかをタスクが発生する前に事前にキャッチできるような関係値を作り、重要な仕事は緊急になる前に依頼してもらうようなリマインドができる体制になっています。これは前職から気をつけていたことですが、エンジニアって仕事ばかりしているとそればかりになってしまうんです。仕事するよりも切り替えて、早く帰って勉強したり、最近のトレンドをキャッチアップしたり。リフレッシュしたりと、そのほうが全然良いと思っています。我々の職種は知識をアップデートしないといけないのでそこは意識しています。――コスト最適化に向けた組織化の提案が、入社後半年で実現したという事例は面白いですね。した目的を持ってロジカルに提案すれば、きちんと受け止めてくれるというところはDeNAらしさなのかなと思います。あとは提案していく中でも逆風みたいなものはなくて、そこはやはり皆ぼんやりとした課題感はあったと思います。それを言語化できて論理的に説明できれば、部長やマネージャー陣も含め、むしろ全員でそのロジックを詰めていくみたいな流れが生まれて、意思決定も立ち上げもかなり早かったですね。課題の提案がすごく前向きだったところも大きな要因で、これはイケてないと思うんです......で止まる提案と、イケてない......だからこうしたい!という提案は全然違うなと感じました。岩尾さんは後者の提案だったので、もし提案を100%実現できなかったとしても組織として前進できる内容だったので、すごく良い提案をしてくれたなとうれしく思いました。個人的に常に意識しているのは、ちょっとでも良いから成果を出して、これが完成したときのイメージの解像度を上げるという所。できるだけ不確実性を下げた状態で提案できるように意識しています。――:データエンジニアリンググループは、コスト削減などの保守的な部分と、MLOpsのような改善の部分、攻守のバランスが絶妙だなと感じました。いう表現をしていて、その部分は意識しています。メンバーと関わる中でも、この人はこの領域をやるのが好きなんだなとか、それぞれの価値観というものがあって。コスト削減が得意な人もいれば、MLOpsのような新しい技術に触れたいという人もいるので、各メンバーがやりたいことも意識して、全体を組み立てるようにしています。個人的には、アーキテクチャ設計ができる人が良いかなと思っています。ビジネス要件をどうやって技術に落とし込むかを噛み砕ける人といったところでしょうか。ビジネス要件自体も我々エンジニアは意識する必要はあると思いますが、それを技術に落とすとき世の中にはいろいろな選択肢があります。それらを広く知って比較して、チョイスしたものがどういう理由で最適なのか論理的に説明できる人が理想ですね。あと、できればゲームに興味があれば(笑)。今は立ち上げ期で、課題や新しい取り組みがたくさんあります。そこを一緒になって動いて埋めてくれるような、特に岩尾さんと並走できるシニアの方にはおもしろいと思います。課題自体も、自分自身で発見して実装できるのが理想的。それから組織を立ち上げていきたいという野望を持っている方も適任なんじゃないかなと思います。DeNAは自分の力を伸び伸び発揮できる環境だと思っているので、自分の経験をもっと発揮したい人には向いている気がします。★あわせて読みたい【後編】DeNAゲーム事業におけるデータエンジニアの貢献〜客観性を担保したLTV予測やBigQuery運用におけるコスト最適化、そしてMLOpsへの挑戦〜※本記事は2019年2月時点の情報です。※本記事は、SocialGameinfoに掲載された内容を一部構成を変更して掲載しています。GeNOM(ゲノム)とはDeNAのゲームクリエイターを様々な切り口で紹介するメディア(運営:株式会社ディー・エヌ・エー)です。ゲーム開発の現場で生まれる様々なエピソードや、クリエイター紹介、イベント紹介などを通して、DeNAで働くメンバーの”ありのまま”をお伝えしていきます。アカウントにて確認いただけます。@GeNOM_DeNA【DeNAデザイン部:合宿レポート】組織運営のホンネを部長と参加メンバーに聞きました【DeNA分析部特集Vol.2】目指すのは攻めのユーザーリサーチ。RANKING宍倉さん、ぶっちゃけDeNAと組んでどうだった?──『メギド72』開発うら...【DeNAマーケティング部特集vol.1】ROIだけが判断軸ではない。