ノウキナビKPI自動収集ソフト ノビルナビ開発日誌Vol.2
こんにちは!
ノウキナビエンジニアの山崎です。
今回は「業績評価指標(KPI)を自動収集するソフト」ノビルナビの開発日誌第2弾です。
前回は、Googleから提供されているBIツール「データポータル」を使用して業績評価指標を表示してみよう!というところまで進みました。
BI(ビジネスインテリジェンス)ツールやデータポータルに関しては前回の記事で述べているのでぜひ一読してみてください!
さて、指標を収集し、表示するにあたって、意識すべき以下のような課題が見つかりました。
・正確性・・・ データの正確さ、間違ったデータを表示していると分析も間違ったものになってしまう
・低負荷化・・・ 大量のデータを取り扱うにあたって、動作が重い・処理が遅いだと分析が滞ってしまう
・拡張性・・・ 収集したデータを組み合わせる、追加で収集したいデータに即座に対応することができる仕組み作りをする
今回の記事のテーマは、
これらの課題を解決するために「データポータル」は適しているのか。
というところです。
では早速いってみましょう!
データポータルの適材適所とは?
まず、データポータルを表示部分のツールとして利用しようと思った理由は主に下記の2つです。
・無料で始められる
・スプレッドシートとの連携がすぐできる
無料ですぐに開発に着手できる点と弊社は大半のデータをスプレッドシートに保管していたため、その連携のしやすさから「データポータル」を選択しました。
そして、開発スタート!データポータルをいじっていじって指標を表示させていたのですが、そこでデータポータルの弱点に気づいてしまったのです…
それは拡張性のなさでした。
データポータルは、1つのツールなので当たり前ですが、表現できることが決まっています。
1ページに追加できるデータの最大数は50個ですので、大量のデータを捌きたい時はページを分けなくてはなりません。
指標をより細かいカテゴリや媒体に分けて表示したい時も、指標にフィルターをかけて表示の数をコントロールすることはできませんでした。
なのであらかじめカテゴリ別または媒体別にレポートを分けて、データを表現するしかありません。
データを比較したいときも、前年同月比や同年前月比といったものは見ている側がコントロールして自由に変えることはできません。
なぜなら、比較期間が各指標ごとに固定されているからです。
なので、レポートを分けて表現するしかありません。すると、データが増えていけばいくほどレポートの数も増え、見通しが悪くなってしまうのです。
そして、これらはデータポータルの高負荷化にも影響を及ぼしてきます。
レポートが次々と増えていくことにより、表示速度にも影響が出てきてしまいました。表示のたびに高負荷がかかり、表示速度が遅くなってしまったのです。
ここで、データポータルでは、先ほどの課題である「低負荷化」と「拡張性」において重大な欠点があることに気づいてしまったのです。
データポータルの代替案
データポータルでは望んだ通りのBIツールを作ることができない…
では、自分でイチからBIツールを自作すれば良いのでは?
そうすれば、自分が思った通りに業績指標をコントロールすることができます。
しかし、これだとデータポータルの長所であった「開発のスピード感」であったり、「無料で開発着手できる」という部分が失われてしまう可能性があるのでは?
そこを解決するべく私は下記サービスを利用することにしました。
Firebaseとは、mBaaS(mobile Backend as a Service)と呼ばれるサービスで、クラウドで利用することができるデータベースやサーバーを指します。
難しいサーバーやデータベースを構築しなくても、firebaseを通じてサイトを作成することで、サーバー開発・運用不要で高機能なバックエンド環境を提供してくれるサービスです。
私は以前からfirebaseは利用していて概要はわかっていました。そのため、開発のスピード感を重視して、数あるmBaaSの中でもFirebaseを選択しました。
また費用に関してですが、firebaseは、一定回数の関数実行や一定回数の通信量に応じて料金が発生する従量課金制となっています。しかし、無料利用枠も用意されています。
1ヶ月につき200万回の関数呼び出しが無料で利用できるなど、利用枠の上限は大きいため、最初のテスト環境の段階では安心して利用することができます。
これらにより、スピード感や費用といった面はクリアしつつ、よりデザインの表現の幅や機能の拡張性が高いソフトウェアを開発することができます。
また、現在はデータをスプレッドシートで管理していますが、データがより膨大になってくると、いずれ管理が煩雑になってくる可能性があります。
firebaseではそんな大量のデータ分析に特化したサービスである「BigQuery」が利用できるという点も注目しているポイントです。
さらに、firebaseには、セキュリティや認証に関する仕組みも提供されています。社外にデータが漏洩することがないようなデータの堅牢性を確保することができそうです。
ノビルナビ開発環境
現状の「ノビルナビ」の開発環境は下記の通りです。
サーバー:Node.js
バックエンド:Firebase Functions
データベース:SpreadSheet
クライアント:Nuxt.js
Node.js環境のFirebase Functionsから、Google Sheet APIを利用してスプレッドシートに保管されているデータを取得し、クライアント(Nuxt.js)でデータを表示しています。
この構成でデータポータルにはできないことを実現できるようになりました!
今後の課題
さて、次回に向けての課題をまとめてみます。
「ノビルナビ」を作る目的には、現在の事業結果を社内に情報共有する意味と、今後の事業計画策定のための分析ツールの役割があります。
現状は、スプレッドシートへのデータの収集も不完全な状態であり、ソフトの構成は決まったものの、データを正確に表示するには至っていません。
また、売上やアクセス数といった指標をひたすら集めて並べてみているだけという状態であり、データの整理というのができていない状態です。これではある程度の情報共有はできても、分析ツールとしての役割は果たせていません。
そこで、指標を眺めていく中で、「知りたい情報は何か」を明確にしていく必要がありそうです。
例えば、「売上がなぜ増加しているのかを知りたい」となると、売上に影響を及ぼしそうな指標(転換率やアクセス数など)に注目し、さらにその指標に影響を及ぼしそうな指標に着目し、と数珠繋ぎで眺めていって、前月と比べて変化量の多い指標が売上増加に起因している可能性が高い(正しいかどうかは不明ですが)などの「分析の道筋」を立てることができそうです。
指標にある程度の関連性をつけることで、知りたい情報を知るには指標をどう分析すればいいかが判断できそうです。
課題は山ほどありますが、現状は主に4つでしょうか。
・データの表示(正確なデータを表示する)
・データの整理(わかりやすくデータを整理する)
・データの収集(1日ごとにデータを抜け漏れなく収集する)
・データの分析(データに関連性を設け、分析の足がかりにする)
これらの課題をクリアしていくため、これからも創意工夫して開発を続けていきます!
ノウキナビエンジニアの山崎でした!
弊社では、中古農機具を取り扱う販売サイト「ノウキナビ」を運営しております。
中古農機の買取や、新品農機具の販売、メーカー純正パーツの取り寄せサービスなども展開しておりますので是非一度ご覧になってみてはいかがでしょうか!
次回の「ノビルナビ開発日誌」をお楽しみに!