見出し画像

ダッシュボード設計の学習と実践

初めまして!株式会社PREVENT、データアナリストの代島といいます。

今回、データアナリストとして初めてダッシュボード設計の学習からその実装までを担う機会を掴むことができたので、その学習から社内の実装に至るまでの振り返りをしてみたいと思います。


経緯

今回のダッシュボードPJの始まりは、私が所属しているデータサイエンス部で本PJにアサインされたことでした。もともと私自身が「データの可視化」に強い興味関心を持っており、これを考慮して頂いたのかなと考えています。ただ個人としてダッシュボードを設計するのは初めてでした。

ダッシュボード設計にあたり学習したこと

そこでこれを機会にスキルアップも兼ねて、ダッシュボードの基礎を学習するところからスタートしました。そのために選んだ書籍がこちらになります。

まずは上記の書籍から学んだことをここにまとめていきたいと思います。

使われるダッシュボードとは

ダッシュボードはただ闇雲に作成すれば良いという訳ではありません。どんな目的で、何を見せて、誰がこのダッシュボードを使うのかを明確にする必要があります。これらを明確にせずにダッシュボード作成を進めると、「使われないダッシュボード」が出来上がってしまいます。また、単純にこれらを満たしていたからといって、使われるダッシュボードが出来上がるとは限りません。もう一つは「使いやすさ」があります。いくら中身が有用なものでも、読み込みに時間がかかったり、必要な情報が必要なタイミングで更新されていなかったり、複雑なレイアウトで見づらかったりすると、ダッシュボード利用者は見る気を失ってしまいます。

ダッシュボードを定義する

ここでは「どんな目的で、何を見せて、誰がダッシュボードを使うのか」を明確にします。そのためには要求定義と要件定義をします。

【要求定義】
まず要求定義では、ダッシュボードの利用者が抱えるビジネス課題を明らかにし、それを観測・改善するためのKGIやKPIを定めます。これはダッシュボードの根幹をなす非常に重要な定義なので、慎重に進める必要があります。
・ダッシュボードで何を実現したいのか
・どのビジネス課題に対して使うものか
・何が改善されるとビジネス課題は解決に近づくのか
上記を整理したうえで、KGI・CSF・KPIを定めていきます。

【要件定義】
もう一つの要件定義は、ダッシュボード作成者が要求定義をもとにデータを可視化するのに必要な情報を整理し、使用するデータの整理をします。そしてどのようなデータを可視化すれば、要求定義を満たせるのかを整理します。
・改善に向けてダッシュボードをどう使ってもらうか
・ダッシュボードで何を見る必要があるのか
・ダッシュボードにどのようなデータが必要なのか
これらをもとに、以下のようなユースケースを定めていきます
・ダッシュボードを使う人は誰か
・ダッシュボードを使う人は誰か
・なんのためにダッシュボードを使うのか
・ダッシュボードを見る頻度はどのくらいか
・どのような情報を知りたいか
・その情報を知ってどのようなアクションを想定しているか
これらを定めることで、どのようなダッシュボードが求められているかの方向性が決まってきます。

【用途に合わせたダッシュボードの構成】
前項でダッシュボードの想定ユースケースをまとめました。するとダッシュボードの構成の種類が定まってきます。
1)全体サマリーダッシュボード
2)テーマ別ダッシュボード
3)詳細分析ダッシュボード
これらのダッシュボードは全て作成するものではなく、状況に応じて作成されていきます。一般的には全体感を掴む「全体サマリーダッシュボード」が一つあり、そこから詳細を掴む「テーマ別ダッシュボード」がひも付きます。さらに「テーマ別ダッシュボード」だけでは収まりきらないほどに分析内容がある場合は、テーマ別ダッシュボードに複数の詳細分析ダッシュボードが紐づいていきます。

【ダッシュボード要件整理表】
各ダッシュボードの目的・データソース・KGI/KPIを整理し、テーブル状にまとめたものです。つまり、ダッシュボード名とその指標の目標値設定がこの表の最終目的です。この表を使うことで、ダッシュボード利用者と認識のズレの解消に役立ちます。

ダッシュボードを設計する

【ダッシュボード詳細設計書】
こちらは先程の要件整理表とは異なり、具体的な計算ロジックを定義していくテーブルになります。具体的にはダッシュボード名、チャートエリア名、その役割、指標、比較軸などが盛り込まれています。このような一覧を作ることで、分析要件合意のための情報整理をしていきます。

場合によっては、上記の詳細設計書だけでなく、ワイヤーフレームやモックアップなどを作り、視覚的なイメージをしやすくすることもあります。

その他の章について

今回のダッシュボード作成に当たり、学習で読み進めた事項は以上となります。というのも、今回のダッシュボード実装は既存のものの改良であり、ゼロベースからの作成ではなかったからです。改良を進めながら、このダッシュボード詳細設計書を埋めていき、最終的に社内データエンジニアに管理運用を引き継げるようにしていくことが、今回の最終目標となります。

実際に社内で取り組んだこと

現状のダッシュボードについて

今回のダッシュボードPJでは、ゼロからダッシュボードを作るのではなく、既存のダッシュボードの改良という形で始まりました。改良対象となったのは「とあるKPI」のダッシュボード(Superset)でした。元々このダッシュボードは四半期ごとの計画値を達成するために計画値達成率及び達成までに必要な数値可視化するために作られたダッシュボードでした。しかし、この計画値およびKPI集計の期間指定が手動更新になっていて、常時モニターするダッシュボードとしては課題となっていました。この課題を解決するために改良をしよう、という段階から私がジョインしました。

課題洗い出しとその対策

このダッシュボード改良のためには、まず課題を洗い出し、それぞれどのような解決方法が取れるのかを議論していきました。以下にそれぞれの議論内容を記載していきます。

どのようなデータが使われているのか

具体的にどのテーブルのどの列をKPI集計に使っているかというところまでを共有しました。同時に計画値の格納場所も共有しました。前者は既に社内のDWH「よろずや」にデータマートとして整備されたテーブルがありました。しかし後者の格納場所がスプレッドシートであり、これを「よろずや」に取り込んでダッシュボードを作ることが大きな障壁でした。

どのようなチャートを使っているか

ダッシュボードで可視化に使用されているチャートはブレットチャートでしたが、これについても一つ問題がありました。KPI自体は横向き棒グラフとして表現されていたのですが、計画値を三角マークの記号で表していました。この三角マークの位置指定がチャートのオプション欄への手入力だったのです。つまりこのブレットチャートでは計画値をデータから引っ張り、オプション欄への反映が不可能でした。

ダッシュボードで使用されていたブレットチャート

現在のダッシュボードをどのような方向性で改良したいのか

ブレットチャートがうまく使えないと分かったことで、他のどのチャートならば目的を果たせるのかを探る必要がありました。チャートを探るにあたっては、現在のダッシュボードをどのような方向性で改良したいのかを明確に意識する必要がありました。方向性としては、現時点でのKPIと四半期の計画値及びその四半期における現在の月における計画値をうまく一つのチャートに示すことです。さらにこの2つの計画値が月日に応じて自動で切り替わることでした。

ダッシュボードの手動更新が必要な箇所

2つの計画値が自動で切り替わるテーブルのSQL自体はそこまで大掛かりな調査をせずに作成できたのですが、なかなか適切なチャートが見つからず、苦戦していました。またSuperset自体の日本語の記事が少ないことも、適したチャート探しを難しくした要因の一つでした。最終的にはチャートのライブラリを端から選び、良さそうなものが無いかチェック。そしてビジネスサイドの担当者に共有という流れで、より良いチャートを探していきました。その結果、たどり着いたのが下記の画像です。シンプルにテーブルをそのまま表示し、それに「CELL BAR」というオプションを設定したものでした。こうすることで、実績値が計画値に対してどのくらい達成しているのかが数値で分かりつつ、横向き棒グラフの機能も兼ねてくれるので、直感的にも理解しやすくなりました。

四半期及び現在の月における計画値が自動更新されるテーブル(CELL BARあり)

どのようにダッシュボードを配信するのか

さて、ここまでダッシュボードを作ってきましたが、どうやって配信するかが問題です。既に別のダッシュボードがSlackに配信されていて、それと被らない配信方法が必要でした。ただこの配信方法はそのダッシュボードのユーザーによるものなので、ダッシュボード担当者だけでは決められませんでした。そこでビジネスサイドの担当者に協力いただき、社内のダッシュボードユーザーに意見を求めました。すると「同じチャンネルに複数のダッシュボードがあると混乱する」、「ダッシュボードが複数のチャンネルに散在されていると見づらい!」というような声があり、どうするかかなり悩みました。結果としてたどり着いたのが、「同じチャンネルに配信時間を変えて投稿する」という形式にたどり着きました。特にこの配信時間は少し工夫をしました。それは新しく作ったこのダッシュボードを使うであろう定例会議の少し前の時間でした。こうすることでダッシュボードが散在することなく、必要なユーザーにちょうどよいタイミングでダッシュボードを届けられる方法が見つかりました。

実装にあたり作成したドキュメント

冒頭の書籍にて紹介されていたように、ダッシュボードづくりではただ闇雲に手を動かしていればいいのではなく、どのようなダッシュボードにしたいのかをドキュメントに落とし込む必要があります。ただ、この書籍に紹介されているようなドキュメントをいきなり作り込むのはなかなかハードでした。なので、作りやすそうだった「想定ユースケース」と「分析整理表」ものを作成しました。書籍に書かれている方法だと、まずはこれらのドキュメントを作り込んでから、ダッシュボード作成をすると書かれていました。しかし実際にはダッシュボードを作りながら議論を重ね、最適なダッシュボードに落とし込んでいきました。そのためダッシュボードのドラフトを作っては修正するということがしばしば発生し、時間がかかる場面もありました。このような手戻りを今後少なくするためにも、次回以降に社内で新しいダッシュボードを作る際のテンプレートとして今回のドキュメントを使い、社内のダッシュボード作成の標準化とスピードアップを狙っていきます。


ダッシュボードの想定ユースケース
ダッシュボードの分析整理表


まとめ

今回は社内ダッシュボードの作成を任された機会を活用して、その設計と実装を通じて多くの学びを得ることができました。
特に印象的だったのは、ダッシュボード設計ではダッシュボードをいきなり触るのではなく、まずはそのドキュメントを徹底的に作り込むということでした。ダッシュボードに限らず、最初の計画・定義を作り込むことが後に続く工程及びダッシュボードの品質の運命を大きく左右するものなのだと、改めて感じました。それと同時に、計画・定義のテンプレートの作成ができたので、今後の社内ダッシュボード作成がより盛んになっていくのではと考えています。