SCOUTER社でデータ可視化が定着するまで

こんにちは、株式会社SCOUTERの開発責任者の小平(@ryotakodaira )です。 業務では、SARDINEという人材紹介会社向けの業務管理システムを開発しています。

自分の担当している事業では、metabaseというBIツールを使用して数値管理・可視化をしています。 そこで今回は事業全体にBIツールを用いた数値管理を定着させるまでの話を書いていきます。

BIツールとは簡単にいうとサービスのDBなどに蓄積されているデータを可視化するためのツールです。

BIツールの「BI」とは、「ビジネス・インテリジェンス(Business Intelligence)」を意味します。ビジネス・インテリジェンスとは、企業が日々蓄積されていく膨大なデータを分析し、その分析結果を経営意思決定に活用することをいいます。 このBIを助けるシステムを総称したものを「BIツール」と呼びます。 *1

metabase導入前

導入前は、サービス内の主要KPIを確認するものはほぼ存在せず、どうしようもない状態でした。。。

そんな状態でも当然、事業部のメンバーから数値を出力する依頼が来る訳ですが、その都度SQLを書いて出力結果のCSVを渡していたり、クレンジングされたデータが無かったので毎回クレンジング用のクエリを追加していましたw

なぜmetabaseを選択したのか

BIツールはかなり多くのサービスがあり、OSSのものからサブスクリプションモデルで高価なものまで幅広いのが現状となっています。 OSSのBIツールもいくつかありますがその中でもmetabaseを選択した理由は主に以下の3点となります。

親しみやすさ

f:id:ryotakodaira:20190117114813p:plain

上の画像を見ていただければわかると思いますが、metabaseのユーザーインターフェイスはかなりシンプルでわかりやすく作られています。

データが可視化できれば見た目はどうでもいいだろと思うかもしれませんが、「親しみやすさ」はかなり重要だったと考えています。

エンジニアのみが使うものなら見た目を度外視していてもある程度は我慢できる?かと思いますが、触る時間が長いのは常に数値確認を行う事業部のビジネス職のメンバーだからです。

実際、数値が可視化されていてもそれが見にくい場合は時間が経つに連れて見られにくくなってしまうため、選定時に「親しみやすさ」(見た目)は重要視して比較していました。

扱いやすさ

metabaseにはダッシュボードという複数のグラフを1画面に並べて表示すること出来ますが、画像のようにセルの範囲内でグラフの大きさを自由に変更することが出来ます。

ダッシュボードの中でも大きく表示したい重要なグラフや参考程度の情報のグラフが混在することがありますが、グラフの大きさで分類する事ができます。

f:id:ryotakodaira:20190117114708p:plain

また、クエリビルダーのような機能が搭載されており、SQLを書かずにグラフを表示することが出来ます。

複雑な条件には対応出来ないものの1テーブルの中のデータを可視化するくらいであれば一瞬で作ることが出来ます。

これならエンジニア以外のメンバーでもグラフを作成することができるためSQLに触れるきっかけを作ることもでき、多方向で効果を発揮します。

f:id:ryotakodaira:20190117114745p:plain

導入コスト

metabaseはOSSのプロジェクトとして開発されているため無料で使うことが出来ます。

当初からサクッと環境を作って運用まで持っていきたいという思いがあったため、OSSのプロジェクトであるmetabaseは適していました。

また、dockerイメージが用意されているためサーバー上にmetabaseを構築するのは普段インフラを触っていないエンジニアでも簡単にできるようになっています。 なので短期間で導入までたどり着くことができました。

最近では大体のOSSのBIツールはdockerイメージが用意されている印象です。

導入後に気をつけたこと

BIツールを導入したのはいいけど、使われるのは最初の1ヶ月で直ぐに忘れ去られてしまうという事態は以外と多いのではないかと思います。

しかし、BIツールは事業にとって非常に重要なものであり、無いと意思決定を間違いかねません。

僕も以前にそのような失敗をしていますが、今回は同じ失敗を繰り返さずメンバーに親しまれるツールにするために実行したことを上げます。

事業目標数値を常に可視化する

metabaseを使って数値やグラフを見るタイミングは大きく2つあると考えています。

  1. 標数値/中間指標の確認
  2. 実績の原因分析

特に 1 目標数値/中間指標の確認 に関してはほぼ毎日行います。そのため、metabaseで可視化することによって強制的にmetabaseに触れる機会を増やしています。

追加して、metabaseのグラフを全員が見ることができるため "AさんとBさんの集計結果が違った" などの事態の発生を防ぐこともできるようになっています。

クレンジング済みのデータを用意する

データクレンジングとは、データベースに保存されているデータの中から、重複や誤記、表記の揺れなどを探し出し、削除や修正、正規化などを行い、データの品質を高めること。 *2

グラフの作成依頼は直ぐにそのグラフを確認したい場合に飛んで来ることがほとんどです。素早くそれらの依頼に対応するために、よく使われるデータについては常にクレンジング済みのものを用意するようにしました。

依頼者からすると見たいときにデータを見れないことが一番のストレスとなるため、そうならないようクレンジング後のデータの整備にはかなりの力を割きました。

クレンジングすることによってデータが扱いやすくなっているため、素早く求められているデータの出力が可能になったり元々のデータ構造を完全に理解していなくてもクエリを書くことができるようになりました。

弊社では、Laravelのデイリーバッチ処理でクレンジング後のデータをMySQLに格納する形で運用されています。

データ量を考慮しても今のところは前述の運用で間に合っていますが、今後さらなるスケールをした場合は違った運用方法に乗り換えるべきなのではないかという所感です。

まとめ

このようにして、BIツール(metabase)で数値を確認し、数値振り返りを行うことができるところまで作りあげることが出来ました。 今まで数字を見ていなかったメンバーや開発チームも数値で振り返ることができるようになったことが今回の一番の収穫だろうと感じています。

これからBIツールを導入するという方はぜひ試してもらえたらと思います!

今回はデータソースとしてMySQLのみに対応させていましたが、社内ではGoogleAnalyticsなども使っているため今後は他のデータソースの可視化も出来たらと考えています。

さいごに

事業・サービスが成長していくにあたって、これからもメンバーを増やしていきたいと思っています。

興味のある方は下記からご応募いただくか、@ryotakodairaにご連絡ください!!

www.wantedly.com

www.wantedly.com

www.wantedly.com