ここ数年、データマネジメントプラッフォトーム(DMP)というキーワードを社内外で耳にするようになりました。DMPとはビックデータを活用する仕組みのこと。
DMPが広まってきた背景には、粒度や性質の違うデータを横断し、ビジネスの意思決定を行う必要がでてきたことが挙げられます。例えば、エンジニアサイドではプロダクトのマイクロサービス化が進み、ビジネスサイドでも多数のクラウドサービスの利用が増加。複数のデータを横断しながらユーザーの状況を理解し、施策を実行するケースが増えてきています。
プロダクトやサービスを横断した意思決定のコストを下げるために、DMPはこれから先、事業・サービス運営にとって欠かせないデータ基盤になっていくといわれています。
レアジョブでも2018年からデータを元にユーザーに還元できる未来に向けたDMPプロジェクトがスタート。
しかし、そこに至るまでには、エンジニアチームの膨大な試行錯誤がありました。なぜ立ち上がったのか、かつてそこにはどんな課題があり、チームはどう乗り越えてきたのか。本プロジェクトに関係する三人に話を聞いてみました。
また、話をする内に今後の取り組みついての妄想が広がっていったので、“データ活用で、教育をどのようにアップデートできるのか”をテーマに、後編ではレアジョブの描くデータ活用の未来の話をお届けします。
Contents
DMPがほしいと思った理由
なぜDMPが必要だと思ったのですか?
一言で言うと、サービスの質を高めるために有効な手段だと思ったからです。“どのようにサービスの質を高めるか”というのは、多くのサービス提供者にとって永遠のテーマだと思います。今のレアジョブにとっても、DMPを活用して情報データの扱いを見直すということは、多様かつ重要な意味を持つと考えています。
2018年に、レアジョブでは長年レッスンで利用してきたSkype®から、WebRTC技術を活用した自社開発のレッスン受講システム「レッスンルーム」に移行しました。これにより取得できうるデータが格段に増えたので、タイミング的にも今だな、というのはあります。
“データ”は、企業が目指す方向性の大きな羅針盤になります。溢れるデータをどのように整理し、どのように活用していくのか。データを整える事は、これからの我々のビジネスにとっても大きな鍵になりますよね。
はい。市場動向を適切に把握できていないと、ビジネスにおける判断も誤ってしまいます。今、改めて「データをどのように我々のオンライン英会話サービスに活用していくのか」ということを考える機会にもなっています。
データ活用の課題
どんな風にプロジェクトは始まったのですか?
元々DMP自体はあったのですが、会社のフェーズに対して、仕様と仕組みが合わなくなっていました。「レアジョブEdTech Lab」も立ち上がりデータの活用を再定義する必要があると考え、データ基盤の再構築に舵を切りました。
2年も経てば、プロダクトの仕様だって異なります。当時の考え方、当時の方針、当時のことに精通している人が社員では誰もいない・・。残っているのは数百ギガの膨大なデータと、そのデータを生成するコードだけ。でも毎日決まった時間に動いて、新しいデータは生成される。
タフですね…塚田さんはどういうポジションでこの状況を見ていたんですか。
私は、当時インフラチームに在籍していました。データ戦略チームと隣の部署だったので連携がゼロではなかったのですが、ざっくり業務内容は分かっていても、ソースコードの中身まで見ていたわけではないので、正直に言ってデータを見てもよくわかりませんでした。
どこから手をつけたらいいかわからぬまま、とりあえず1つずつ読解を試み、徐々にやっていることを理解していきました。
旧チームが残したソースコードを読んで分かったこと
読解を進めた結果、どのようなことがわかったのでしょうか。
もともと“データベースに接続して色々なテーブルを結合し、画面を表示させる”という処理が、1枚のプログラムの中で完結して行われていました。一つ一つの処理の流れはわかりやすいんですが、それを解読しようとすると、バックエンドとフロントエンド両方のスキルが必要でした。
ただ、読んでいて一番頭を抱えたのが、プログラムの中にコメントも無く書かれた複雑な各種計算処理です。どのような経緯でその計算にたどり着いたのか、コードを読むだけではまったくわかりませんでした。仮に読解したとしても、そのプログラムが正しいのか、誰も保証することができません。
イチから作り直すことにした
新たなデータベースはどのような要件で設計されたのですか。
「サービスを提供しているデータベースからデータを持って来る」「プログラムで集計する」「データ分析用データベースへ書き出す」「解析する」「描写する」。集計は複雑ですがこれだけです。この処理が大量にあるだけ。要件自体はシンプルです。
・日付が変わったタイミングで処理を開始したい。
・処理に失敗してもリトライ可能
誰もがメンテナンスをできるようにして、DMPのシステムが長生き出来るよう設計しました。仮に今のメンバー全員が辞めたとしても…
言葉に重みがあります・・・!
どのように実装したか
実際に、どのように実装していかれたのですか。
処理の流れは、5ステップです。
1.サービスを提供しているデータベースからデータを持って来る
2.プログラムで集計する
3.データ分析用データベースへ書き出す。
4.解析する
5.描写する
インフラはサーバーレス。使用しているリソースに対してのみ料金が発生する「AWS Fargate」を利用し、定時になれば大量の処理を流すためにコンテナが立ち上がり処理が始まります。計算が終わればデータを書き込み、処理を停止し、システムにかかるコストを最小限にする工夫をしております。
データ解析用のデータベースから持ってきて、データ戦略用のデータベースへ格納する処理は、実はほとんどのプログラム言語で実装可能です。
この処理は、PHPで実装しています。この部分については、どこに何のデータがあるのか知っているエンジニアが主となって作り上げて欲しかったので、社内に使いこなせるエンジニアが多いPHPを選択しました。データ基盤は長年にわたって使われるもの。生命力を大事にしたいと考えました。
なお、各種計算したりする処理はBigQueryに任せています。
・大量のデータの集計が速い。
・従量課金で且つ安価に利用できる。
など、様々な視点で考えた結果、格納先はBigQueryになりました。
どのように計算するかは、EdTech Labが担当してくれましたね。
ですね。
描写はBigQueryと親和性のあるデータポータル(旧名 data studio) で行っています。
今まではとにかく作り込まなければなりませんでしたが、これで画面は作り込まなくて済むようになりました。
サービス活用と解析活用のデータを設計する
一言にデータを活用すると言っても、使い方は様々ですよね。
そうですね。
会社でデータを必要とする人は、エンジニアや分析者のような技術的なことがわかる人ばかりではありません。そういう人たちが適正にデータを使って、様々なことを達成できる環境になっていくことがとても大切だと考えています。
最終的には様々なレイヤーの人たちが各自でデータを活用することを見据えながら、以下に気をつけて構築に携わりました。
▼各テーブルでできそうな分析やダッシュボードを想像して、テーブルの設計をする
・分析者が最終的に使うイメージができていないテーブルは、ほぼ使われないと仮定した。必要になったら作れば良い。
・テーブルごとに(少なくとも)分析者は活用できるイメージを持つ。(他のロールが活用できなくても僕たちが活用できる)▼SQLを頑張れば取得できるデータを作らない
・SQL頑張らないといけないDWHを作る意味はない。
・できる限りシンプルに。一つのテーブルである程度分析できて、join一つくらいで解決できる方法を模索▼名前が統一されていてわかりやすい
・命名規則が統一されていないデータはミスを誘発する
・最終的に、全てのデータ活用に自分たちが関わることはできないという仮定。
・特にデータ型やカラム名に気をつける。
また上記以外にも、開発者のモチベーションを高めること、最終ゴールが見えた方が盛り上がることも大切にしたいと考えました。
データに対するアクセス性を高め、利用可能な状態で保管しておくこと。それによって、今までデータを有効に活用できていなかった人たちが、データを活用できる基盤が整っていきます。あとは、どのように多くの人が利用できるようにしていくかが問題になってきます。
この問題が解決されると、意思決定に必要なデータを様々な人が取得できるようになり、ビジネスのスピードを加速させることができると考えています。並行して、気軽に活用できる状態であれば、高度な分析業務や機械学習などを用いた開発業務も行いやすくなり、企業の付加価値を上げていくこともできます。
今できていること、できていないこと
今後は、どんなことをやっていくのですか?
創業時から数年は、レアジョブはオンライン英会話サービス一本でやってきました。しかしながら、会社が成長するにつれて、事業展開の幅は大きく拡大。増進会ホールディングスと合弁で文教事業の子会社を作ったり、子供専門のオンライン英会話である「リップルキッズパーク」を買収したりと、企業の体制を変更してきました。
また、日本人トレーナーがサポートする短期集中プログラムの「レアジョブ本気塾」を立ち上げたり、オンライン完結の成果保証型英会話プログラムである「レアジョブ英会話 スマートメソッド®コース」をローンチしたりと、サービスやプロダクトの領域もどんどん広がっています。
事業やサービスを拡張されているんですね。
それに伴い、システムには重複する部分が出てきました。より効率的にレアジョブのプロダクトを運用するために、共通基盤をマイクロサービスで作り変えるという新基盤移行プロジェクトが始まりました。
現在は、1つのプロダクトに対して解析基盤を提供していますが、今後は全てのプロダクトに導入したいと考えています。つまり、解析基盤を他のプロダクトにも利用できるよう作る作業がこれから必要になります。
なので、そこをリードできる優秀なエンジニアが欲しいなと思っています(切実)。
いきなりの求人情報ですね。
その先には、データを有効活用させて更なる分析が可能になり、ユーザーや社会にサービスとして還元する未来が広がりますね。
例えば、ユーザーの英会話レベルのみならず趣味・嗜好を分析し、ユーザーがモチベーションを維持しながら語学力を高めることができるようにするとか。あるいは、人気のある講師とそうでない講師の間のギャップを分析し視覚化させ、そのギャップを埋めるアプローチを描くことができるようにもしていきたいと考えています。
これは一例です。現在のDMPはゴールではなく、あくまでもスタート地点。”データ活用で、教育をどのようにアップートできるのか”という挑戦は、始まったばかりです。毎日たくさん考えて、悩んで、作って、改善し続けて、そしてサービスを使ってもらうことで誰かの未来の選択肢を広げる。さらには人生を変えうる機会をも提供できることにつながる仕事だと、確信を持っています。
未来が近づきますね。
最後の最後で、未来から来た設定の向さんがしゃべりましたね。
最後の最後で、しゃべりましたね。
〜後編へ〜
あくまでも今はスタート地点…ということですが、では彼らは実際にどんな理想を描いているのか?ぜひ後編をご覧ください。