Upgrade to Pro — share decks privately, control downloads, hide ads and more …

1.5年も紆余曲折したアクセス解析システムの作り直し。実現したこと、やめたこと。/ferretOne

tkhr
July 22, 2022

 1.5年も紆余曲折したアクセス解析システムの作り直し。実現したこと、やめたこと。/ferretOne

ferret One での開発裏話

僕は新卒入社後、趣味リニューアルと社内で囁かれるほどにシステムをリニューアルし、新規サービスの立ち上げを経験しました。
-----------------------------------------------------------------------------
「リニューアルなんてするもんじゃない」と髄まで思い知った彼の前に立ちはだかったのは過去最大級の規模であるferret One。
第3弾となる今回のリニューアルは弊社ferret Oneにおけるアクセス解析システムの "リファクタリング" の "はず" だった。
彼は過去の経験を総動員するも、放ったパンチの感触は気のせいで、気づけば目隠しでリングの外に立っていた。
そこから新卒 4年目エンジニアはどう乗り越え、何を学んだのか。
ビッグデータ、マイクロサービス、GraphQL、React、彼と仲間の軌跡を赤裸々公開。
---------------------------------------------------------------------------------------
はい。システムを作り直しました。
プロダクトの将来のために提案できること、それを理解してもらうこと、妥協せず理想のシステムを追うこと、目的の見極めが大事です。
当時の僕が経験し学んだことを共有できたらと思います。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Qiita Conference 2022 での登壇資料です
https://www.youtube.com/watch?v=E_8WMVY4JUc&t=9952s

tkhr

July 22, 2022
Tweet

More Decks by tkhr

Other Decks in Technology

Transcript

  1. © 2022 Basic inc. BtoBマーケするなら ferret One とは 5 オールインワンマーケティングツールの提供と

    マーケティング実行支援サポートをセットで行っています 簡単に操作できる環境 運用サポート ツール ノウハウ
  2. © 2022 Basic inc. BtoBマーケするなら LPも作り放題 ferret Oneは記事コンテンツの更新だけでなく、LPも作成可能で す。複製も簡単なので、できあがったLPをベースに、ターゲット別・ キーワード別・ユースケース別など、様々なLPを展開し、どんどん

    テストも回すことができます。
 フォーム・CTA設置 ブログ機能 資料ダウンロード機能 項目を選択するだけで、制作したページに簡単にフォーム やCTA(申込などのボタン)を設置できます。
 
 コンテンツマーケティングに欠かせないブログ機能。 WordPressからのインポートも可能で、既存のコンテンツ記 事も有効活用できます。
 アクセス解析はもちろん、SEO順位チェック機能やSNSとの 連携投稿もできます。
 PDFファイルをアップロードすることで、ユーザーが資 料ダウンロードできるページも簡単に作成できます。 フォームと組み合わせることで、ホワイトペーパー施策 などのマーケティングに活用できます。
 ダッシュボード お問い合わせ管理機能 ユーザー行動履歴 シンプルな画面でWebサイトの重要指標が一目で 確認できます。目標に対しての進捗を素早く把 握。わかりやすいUIでセールスチームや経営陣と もWebサイトの状況が共有しやすくなります。
 コンバージョンしたユーザーのステータスがすぐに わかるボード型の管理画面で顧客の状態を一元 管理。対応状況をマーケター、CS担当、営業担 当、誰でも把握できます。
 Web上でのユーザー行動が確認できます。
 ユーザーが何を経由してこのページに辿りついたの か? どのページを見てコンバージョンしたのか?な どユーザーの思考を考察し、施策のヒントになりま す。
 メールマーケ機能 SEO順位チェックツール セグメントメールで特定のユーザーにメールを送ったり、ス テップメールでタイムリーに配信することも可能。
 HTMLメールも見たまま編集で作成できます。
 ※ステップメールはスタンダードプラン 、
  またはオプション機能となります
 ※カンバン形式からのメール配信機能は全プラン共通
 一定期間のSEO順位の変化、
 キーワードごとの順位、
 前日からのアップ・ダウン、
 直近の動きのグラフなども確認できます。
 自動メモ機能 行った施策をメモできる機能はもちろん
 新規ページを追加すると、その履歴が
 自動で記録され、アクセスの変化と
 付け合わせて考察することができます。
 その他マーケティング機能(リード獲得〜育成まで) 8
  3. CS の人 < お客様からお問い合わせが来てます < レポートの数値がおかしいそうで、こちらで再現できました 再現して確認しますねー > 僕が ferret

    One チームにアサインされたある日のこと ( ……確かにおかしい上にやばそうな臭いがプンプンするぜ 🙁)
  4. 例1: レポート絞り込み • なし PV: 5,000 • あり PV: 5,200

    条件をきつくしてるのに、数値が増える?! 数値が合わない
  5. 例2: レポート集計軸 • デバイス別 PV: 5,000 • 流入元別 PV: 5,200

    同じ数字を見ているのに、集計軸によって数値が違う 数値が合わない
  6. 例3: • お問い合わせ数: 30 • CV 数: 28 とか •

    お問い合わせ数: 50 • CV 数: 51 数値が合わない
  7. • レガシーコード ◦ テストがない • スパゲッティコード ◦ 命名が統一されてない ◦ 責務が適切じゃない

    • ふくざつなシステム ◦ クラスとクラスの関係がパッとわからない ◦ AWS のいろんなサービスを使ってる 起きていたこと - 実装面
  8. 詳細レポート - OSバージョン別レポート < OS のバージョンを気にしている人いるのかなぁ そうなんですか? GA にもありますし必要では? >

    < toB のマーケティングでどう役に立てるのかな? Windows 10 か 11 かでアプローチを変えることあるのか 確かに... > なんなら PC か SP かくらいでも十分そうですよね
  9. コンバージョン 1. お問い合わせ 2. クリックイベント 3. 重要ページビュー 4. 外部フォーム計測 2~4

    ってコンバージョンなの? そもそも ferret One におけるコンバージョンって何?
  10. 1. お問い合わせ 2. クリックイベント → 切り出し 効果測定に使っている 3. 重要ページビュー → 削除   存在が不明。副作用を使う

    4. 外部フォーム計測 → 別機能  fO に情報が残らない 使われている機能だったが、存在理由がわからない物たち 紐解いていくと「『コンバージョン』ではないね」 コンバージョン
  11. プロダクトへの思想がぶれていた。世界が崩壊してた • ピボット前の機能が残ってカオス ◦ 今のターゲットには不要 ◦ 副作用だけ必要 • 消せない理由 ◦

    開発リソース ◦ 解約リスク 数%のために大多数が幸せになれない → 緩やかな死 機能を整理してみてわかったこと
  12. どんな状態が理想なのか、思いを馳せる • レポートでは CV 数が正しいことが一番大事 → ユーザーの売上に直結する数字だから • 「 ferret

    One における CV 」は何? → お問い合わせ 「お問い合わせ = CV 」の状況を作るべき 「 CV が 4種類」の仕様を変える → さっきの話 戦略を練り直す
  13. 計画 v2 • 追加リファクタ New • DynamoDB の見直し New •

    既存のリファクタ • マイクロサービス • React & GraphQL 計画の変遷
  14. 計画 v3 • 追加リファクタ • DynamoDB の見直し • 既存のリファクタ •

    マイクロサービス • 解析作り直し New • DB クエリを SQL New • React & GraphQL 計画の変遷
  15. • PR の説明が真っ白 • 1PR が巨大 • 指摘・議論の形跡もない という状態なので •

    ノールックでマージしてたんじゃ...? • 経緯・背景がわからないので、資産になってない もともとの PR / コードレビュー
  16. ひたすら Request Changes • PR のテンプレ作って、必ず書きましょう • PR は細かく分けましょう •

    テストコード書きましょう • Linter 入れたので従いましょう • こっちの設計がいいと思う 全部の PR をレビューした 1ヶ月間 体質改善 > > > > >