LayerX エンジニアブログ

LayerX の エンジニアブログです。

数字を意識せよ! 数字を見る as 品質を実現している話

自己紹介

LayerX Fintech事業部のきむ(@jkcomment)です。

現在はFintech事業部にて、デジタル証券で資産運用ができる個人向け投資サービス「ALTERNA(オルタナ)」を開発しています。

最近ランニングを始めました。 10月に大会出る予定ですが、暑すぎてお家でYoutubeで走る映像を観ています。

ALTERNAチームではALTERNAの開発とデータ基盤開発をメインとしてきましたが、 ALTERNAチームが品質を上げるために普段やっていることについてご紹介したいと思います。

数字を見ながら話しませんか?

ALTERNAチームでは実装や設計もそうですが、プロダクトの品質を上げるために数字を大事にしています。

以前@etaroidLayerX Fintech事業部エンジニアの「領域横断な働き方」でも言及したように、MDMエンジニアは領域横断的な働きをしていて、 ただ単に開発をする、システムの運用をするに留まらず、プロダクトの隅々まで関与し、プロダクトの成長にコミットしています。

ALTERNAの開発チームはエンジニア5人、PdM1人、デザイナー2人の非常にスモールなチームですが、やりたいことも、やるべきこともたくさんあるチームです。そんな中で限られたリソースの中で最大のパフォーマンスを発揮するためにはコミュニケーションの効率性や質の高い意思決定が重要です。

数字を意識して行動することで余計なものが省ける、Factがはっきりしている課題に集中することができ、プロダクトの成長に貢献できているのではと思います。

このように、数字を常に意識するために我々はBaseMachinaとLooker Studioをフル活用しています。

左: BaseMachina 右: Looker Studio

ざっくり話しますと、BaseMachinaではプロダクトに関わるアドホックな解析、リリース直後のクイックなデータ参照を、Looker Studioでは日次・週次・月次などの定点観測や広い範囲の数字の確認をしています。

BaseMachina

BaseMachinaは株式会社ベースマキナが開発・提供している自社のデータを使った社内向けシステムを簡単に作成できるサービスで、 社内のオペレーション業務を定型化するために1から実装コストを払うことなく、データソースや処理をローコードで登録することにより、必要な画面を揃えることができます。

普段はバック業務ツールとして使うことが多いですが、SQL設定が安易にできるため、ターミナルやGUIを使って本番DBにアクセスせずとも、職種問わずWeb上で簡単に必要な情報を見ることができます。

機能追加画面

また、結果の表示も簡単にカスタマイズできて、JavaScriptの知識が少しあれば簡単に表示まわりデータも加工できたりします。

出力結果のカスタマイズ画面

ただ、専門的なBIツールではなく、あくまで業務ツールなので分析のための機能はありませんが、特定の数字を確認するのには便利で、開発チームではよく使っています。 なので例えば申込関連機能をリリースした場合、申込数や申込率などをBaseMachinaでリアルタイムなデータを見て、議論をすることが多いです。下記の画面は実際普段使っているとある申込状況についての画面です(stg環境)。

申込状況確認画面

Looker Studio

Googleが提供する有名な分析ダッシュボードが作れるツールです。

BaseMachinaはあくまで業務ツールとしての役割がメインで、分析用途メインで使うには向いていませんし、 個人情報などマスキングしなければならない情報もあったりするため、すべてのデータを本番DBで見るのは難しいです。 なのでGAや広告データなど、複数のデータを結合して分析する場合は、BigQuery上のデータを使うことが多いです。

Looker Studioで見ている数字が多くて全部話せませんが、例えば下記のような週間口座開設率や販売予測データなどをみんなで見る感じです。

Looker Studio分析ダッシュボード

我々は基本的にマーケ関連データ以外の各種データを一度S3に保存し、BigQueryにアップロードしてLooker Studioで可視化しています。

全体のパイプライン構成図

上の図のように、DBのデータはDMSでS3に書き出し、S3のデータをFivetranでBigQueryに同期するという流れでDBのデータとBigQueryが同期されています。DMSを使うことでリアルタイムでデータをS3に同期でき、CDCで差分だけ同期できるためコストも低く、DMSはマネージドサービスなので運用コストも低いというメリットがあります。GAやGoolge Adsなどのマーケ関連データはFivetranを用いて直接BigQueryにデータを同期させて利用しています(ちなみにFivetranについて話したいことはたくさんありますが、次回にしますmm)。

どのようにやっているか

上記でBaseMachinaとLooker Studioでリアルタイムな数字と、幅広い数字が見れるようにしている話をしましたが、見れるだけで、実際見ないと何の意味もありません。なのでALTERNA開発チームは数字を意識するように朝会などでみんなで数字を見るようにします。

ざっくり言いますと、下記のような流れです。

  1. 朝会で各ダッシュボードやBaseMachina上の数字をみんなで共有する
  2. 数字について話し合う
  3. 何か課題が見つかった場合、議論を通じて施策を考え、実施する
  4. 結果を確認し、改善する

簡単な事例についてご紹介します。

課題と仮説

前提としてALTERNAの商品は仮申込 -> 抽選 -> 購入申込の順で購入することができます。ただ、仮申込期間中に入金がない方は抽選対象から外れます。

チーム内で直近の購入申込率を見る際に、もっと購入申込率を上げる方法はないかと議論があり、

  1. オペ担当者が定期的にメールを送信している。だが、新規ユーザーもだいぶ増えているし、ユーザーが気づいていないだけではないか
  2. 単純にユーザーがメールに気づいていないのなら一定期間中にリマインドメールを毎日送るようにすると入金率 + 購入申込率が上がるのではないか

という仮説を立てました。

施策内容

  • 未入金ユーザーに対して入金リマインドメールを送信する機能を実装
  • ついでに手動で送信するのではなく、指定した期間中にリマインドメールが自動的に送信できるように対応

結果

過去最大の購入申込率が達成でき、かつ自動化することでオペ担当者の負荷も減らせることができました。

おわりに

開発において全ての数字が見れているわけでもないし、必ずしも数字が全てではないと思いますが、エンジニアでも数字を意識することで見えてくるもの・変わってくるものがあるんだなと身をもって実感できました。なのでもっと数字を意識しながらプロダクトの成長にコミットしていきたいなと思います。多くのチームが数字を意識してくと良いなー笑

一緒に働く仲間を募集しています!

LayerXでは現在「ALTERNA (オルタナ)」を共に成長させていく仲間を募集中です!

少しでも興味を持っていただけた方がいましたら、是非以下からご連絡下さい!

open.talentio.com

open.talentio.com