5章 ビジネスを監視する
作成日: 2024/10/17
最終更新日: 2024/10/17
#『入門_監視』読書メモ
ユーザーの視点から監視する
外側から監視の仕組みを考え始める
実際に受けることの多い質問「サービスは動いてる?」「ユーザーへの影響はある?」の答えをすぐに思いつけたり、徐々に深掘りしていく準備ができるから
→ 実際よく聞かれる!!
(エンジニアが) 経営層がするような質問ができるようになれば、非常に重要で大きくレバレッジが効いた、ビジネスに直結する問題に取り組めるようになる。
→ なるほど、それは良さそうだー、たしかに細部に目がいっちゃうがちかも...
KPI (Key Performance Indicator): 日本語では「重要業績評価指標」「重要達成度指標」
「監視がビジネスに提供できる価値を明示できるようになる」
5.1 ビジネスKPI
KPI (Key Performance Indicator)
全体としてビジネスがよい状態であるために会社が重要だと認識している計画を、どのように実行しているかを測るためのメトリクス
ビジネスの調子がどうかを教えてくれる
経営者や創業者の視点からの関心事
顧客はアプリケーションあるいはサービスを使えているか
儲かっているか
成長しているか、縮小しているか、停滞しているか
どのくらい利益が出ているか、収益性は改善しているか、悪化しているか、停滞しているか
顧客は喜んでいるか
→ 全く気にしてないわけじゃないけど、たしかにふだん開発しているときにはあんまり気にしていないな
事業責任者がよく使うメトリクス
月次経常収益
顧客からの月毎の経常収益
顧客あたりの収益
課金顧客の数
ネットプロモータスコア
ユーザーあるいは顧客の満足度の指標
そのサービスあるいはアプリケーションをどのくらい他の人に勧めるかを10段階評価で格付けするようユーザーに依頼する、など
顧客生涯価値
ある顧客の生涯にわたる価値の合計
顧客あたりのコスト
SaaS なら、顧客あたりどのくらいインフラコストがかかっているか
顧客獲得単価
顧客の解約数
離脱が多いということは、以下などの点でなんらかの問題がある可能性を示唆する
プロダクトの観点 (アプリケーションがそもそもあまりよくない)
パフォーマンスの観点 (アプリケーションの動作が遅い)
コストの観点 (アプリケーションが高すぎる)
自分のビジネス内での時間経過で比較する
アクティブユーザー数
DAU
WAU
MAU
バーンレート
会社全体でどのくらいお金を使っているか
賃金からオフィスの賃料まですべてを含む
収益を上げている会社の場合、この数字は基本的に使われない
ランレート
現在の支出レベルを続けた時に賃金がなくなるまでの期間のこと
月単位で表されることが多い
収益を上げている会社の場合、この数字は基本的に使われない
TAM
ある特定のマーケットがどのくらいの大きさなのか
そのマーケットの全員に売ろうとした時の金額を決めるための見積り
粗利
販売したもののコスト (COGS) を除いた収益
SaaS の会社なら、通常80%以上、90%台になることもある
SaaS の場合、COGS はアプリケーションやサービスを動かすためのコスト
経営レベルでどのようなことがなぜ計測されているのか理解しておくのは重要
16 Startup Metrics
16 More Startup Metrics
→ エンジニアも、「経営レベルでどのようなことがなぜ計測されているのか理解しておくのは重要」だし、「事業活動を理解することが必要 (なぜその事業を行うのか、その事業で何を目指すのか、事業目標を達成するためにどういう方針で行動するのか) 」
(後者は、ドメイン駆動設計をはじめよう)
→ どんな監視をするか、どんなソフトウェアを作るか、ビジネスに価値を提供できる監視・ソフトウェア設計に必要ってことだな
5.2 2つの事例
ビジネスを監視するのを手伝うために何ができるのか
5.2.1 Yelp
KPI一覧 (例)
検索実行
検索機能が壊れたり通常より遅い場合、検索実行数は下がるでしょう
レビュー投稿
ユーザーのサインアップ
ビジネスページの取得
アクティブユーザー
アクティブビジネス
広告購入
レビューに対する返事
何が悪いのかは教えてくれないが、ビジネスの全体的な調子がパッとわかる
バックエンドの問題がユーザーに与える影響がすぐ分かる
5.2.2 Reddit
KPI一覧 (例)
現在サイトに滞在しているユーザー
ユーザーのログイン
コメント投稿
スレッド作成
投票
プライベートメッセージの送信
Gold購入
広告購入
5.3 ビジネスKPIを技術指標に結びつける
table:技術指標に結びつけたビジネスKPI
ビジネスKPI 技術指標
現在サイトに滞在しているユーザー 現在サイトに滞在しているユーザー
ユーザーのログイン ユーザーのログイン失敗、ログインのレイテンシ
コメント投稿 コメント投稿失敗、投稿のレイテンシ
スレッド作成 スレッド作成失敗、作成のレイテンシ
投票 投票失敗、投票のレイテンシ
プライベートメッセージの送信 プライベートメッセージの送信失敗、送信のレイテンシ
Gold購入 購入失敗、購入のレイテンシ
広告購入 購入失敗、購入のレイテンシ
→ なんか具体的になった、イメージできた
5.4 自分のアプリケーションにそんなメトリクスはないという時は
1章や2章で取り上げたように、監視とは何かが起こった後に追加すればいいものではない
アプリケーションやインフラのパフォーマンスに対する可視性を上げるには、デザインがなくてはならない
必要な計測データをアプリケーションが出してくれないなら、自分でアプリケーションを変更してしまう
5.5 会社のビジネスKPIを見つける
どのようにアプリケーションが動いていて、何を計測するのが重要かを理解できる間違いない方法は、「人と話すこと」
→ あらー、つい先日 開発者が業務知識を獲得し、業務にとって重要な関心事を理解するには、「会話」と「言葉」 と読んだ (現場で役立つシステム設計の原則)
→ 根本は同じだな
まず話すべきはプロダクトマネージャー
プロダクトマネージャーは何が問題なのかを高いレベルで把握していることが多い
→ うちだと、プロダクトオーナーかいな
次は、ソフトウェアエンジニアリングチームのマネージャー、その後はシニアソフトウェアエンジニア
著者がよく使う質問
私が会社に入りたてだとして、アプリケーションが動いていることをどうやって知ったらよいいでしょうか?何をチェックしていますか?どう動いていたらよいのでしょうか?
アプリケーションの KPI は何ですか?なぜその KPI を使っているのですか?そのKPI はどんなことを教えてくれますか?
→ きいたことないな、なんとなく感じ取ったり想像したりしかしてない、きいてみたいな
別の方法
アプリケーションの機能の概略図を描いてみる
期待したとおりにアプリケーションが動いているかどうか示す高レベルなメトリクスを見つけるのが最終ゴール
5.6 まとめ
ビジネスKPIは、非常に重要なメトリクスであり、アプリケーションやインフラの調子やパフォーマンスを示す先行指標
ビジネスメトリクスを技術指標に結び付ける方法