どうも、はじめまして。サーバーエンジニアの加藤です。主にプロダクトの運用や開発をサポートする管理ツールの開発・運用を行っています。
ツールはブラウザ上で動作するように開発されています。本記事では、実際のツールの開発・運用の事例を挙げます。
管理ツールとは
ソーシャルゲームの開発・運用に不可欠なマスタデータの管理を主機能とします。それ以外に、各種データの可視化や、各業務(プランナー、QA、CS)のサポートを目的としたツール群です。以下のような機能を持っています。
- マスタ及びユーザデータの視認性や検索性を考慮した検索機能
- プランナーやエンジニアによるマスタデータの投入や更新
- 本番環境へのデータのデプロイ
- その他、売上などKPIの可視化など
1.マスタ及びユーザデータの視認性や検索性を考慮した検索機能
データの検索だけならデータベースでクエリを投げるだけで済みます。なので、ツールでは視認性や検索性が特にツール上では重要になってきます。
キャラクターデータ1つとっても複数のテーブルが絡んできますし、ミッションやガチャとなると、さらに複雑なテーブル構造になっていきます。
こういった情報を、各業務担当者が確認しやすいレイアウトにまとめています。
よく使う検索条件は1クリックで表示する、重要度で文字や背景のカラーや表示する大きさを調整する…。
細かいですが日々頻繁に多くの人が扱うことになるツールなので、細かい使い勝手が工数や負担の軽減に影響します。
2.プランナーやエンジニアによるマスタデータの投入や更新
データの入力は原則スプレッドシートからの投入で行い、必要に応じて管理ツール上からの入力にも対応しています。
それぞれメリットとデメリットがあるのでよく検討して改修します。
・スプレッドシートによる入力のメリット
多くの人に使い慣れたツールで学習コストが低い。
複数データの選択やコピー&ペーストなどスプレッドシート本来の機能性が利用できる。
・スプレッドシートによる入力のデメリット
シートの改修内容や権限の管理がしづらい。
扱えるデータ量の制限がある。
・管理ツールによる入力のメリット
入力時の補完や保存時のチェック、承認フローの構築など、カスタマイズがしやすい。
改修内容や権限の所持などの管理が行いやすい。
・管理ツールによる入力のデメリット
開発コスト、メンテナンスコストがかかる。
折衷案として「特定のスプレッドシートからのデータ投入時の処理に対して拡張する」場合もあります。開発コストの低いスプレッドシート入力での開発後、必要に応じて、投入処理の改修や管理ツールでの入力に寄せていく場合が多いです。
3.本番環境へのデータのデプロイ
運用上で、もっとも悩ましいポイントのひとつです。
デプロイ漏れや、公開予定前のデータや不要なデータが本番に反映されないよう、データ差分を確認しますが、現状では最終的に人的なチェックを行っています。そのコストや心的負担は高く、それでいて完全にミスを防ぐことはできない、難しい課題です。
データごとにリリース予定日を入力しておく、差分のチェック状況を保存し共有できるようにする、ツール上での差分チェックのレスポンスや使い勝手を改善する…など様々な対応によってコストやリスクを低減します。
4.その他、売上などKPIの可視化など
管理ツール上でDAUや消費されたゲーム内の通貨など、基本的なKPIをグラフや表で閲覧可能にしています。
(ツールは社外の人間も使う場合があるので、閲覧には権限は必要)
管理ツールのホーム画面等、アクセスしやすい位置に配置しています。これによって、チーム全体の売上などの数値への意識を持ってもらいやすくし、モチベーションの向上や問題意識を持ってもらうことに役立ちます。
その他、Twitterの特定の条件のツイートを集計してCSVでDLする機能、DBクライアント代わりに全マスタを簡易的に検索できる機能など、必要に応じて様々な機能が追加されています。
理想的な運用へ向けて
私個人はこれまでソーシャルゲーム開発の4つのプロジェクトを経ています。いずれもサーバエンジニアとして参加し、APIの開発及びに管理ツールの開発に携わっていました。
(経歴上の成り行きでフロントエンドとバックエンドの両方同時に扱う場合が多い)
プロジェクトによって、環境、要件は様々で、場合によっては既存の有償・無償ツールを利用する場合もあります。自社で開発する場合は、どんな機能を優先して追加すべきか。どのようなフローで行うべきかを、よく吟味する必要があります。
ここに挙げた例が、サービス運用や、それに伴うツールの開発・運用の最善を目指すにあたって参考になれば幸いです。