Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
『SUUMO』における行動履歴ログの品質担保の取り組み / techplay221101_03_niibori
Search
Recruit
PRO
November 01, 2022
Technology
0
2.4k
『SUUMO』における行動履歴ログの品質担保の取り組み / techplay221101_03_niibori
2022/11/01_リクルートが考える『意思決定に効くデータマネジメント』~アナリティクスエンジニア組織の立ち上げと事例紹介~での、新堀の講演資料になります
Recruit
PRO
November 01, 2022
Tweet
Share
More Decks by Recruit
See All by Recruit
Datadog による 自己完結的アプリケーションモニタリング
recruitengineers
PRO
3
170
プロデザ! BY リクルートvol.17_『じゃらんnet』公式アプリの高速リニューアル事例を大公開
recruitengineers
PRO
5
130
自己完結な開発者組織を支える プラットフォーム作り
recruitengineers
PRO
2
260
検索エンジニアが考える、 生成AI時代の人間の付加価値とは
recruitengineers
PRO
2
55
エンジニア思考で解決! 家事育児を劇的に進化させる開発プロセス応用術
recruitengineers
PRO
2
78
GraphQL「良さ」・「難しさ」再探訪 〜スタディサプリにおける実例〜 / StudySapuri with GraphQL
recruitengineers
PRO
21
4.3k
プロデザ番外編_リクルートのデザイン組織のご紹介
recruitengineers
PRO
2
150
プロダクトプラットフォーム開発におけるフィー ドバックループの回し方
recruitengineers
PRO
4
490
リクルートにおける Platform Engineering / SRE の事例共有
recruitengineers
PRO
6
1.9k
Other Decks in Technology
See All in Technology
TCA入門したてなので、自分が馴染みのある実装と比較しながらキャッチアップしてみる
fumiyasac0921
1
370
10分でわかるfreeeのQA
freee
0
210
LLM + RAG を使った SORACOM Support Bot の裏側の歴史
soracom
PRO
1
630
GitHub最新情報キャッチアップ 2024年3月
dzeyelid
16
3.1k
沒想過的前端錯誤處理可能比你有做的還多
line_developers_tw
PRO
0
1.8k
8週連続ウェビナー_イチから学ぶFivetran
cmsuzu
0
160
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
150
期待しすぎずに取り組む両面 TypeScript
shozawa
2
280
本気でプロダクトに向き合うCTOになるために必要な事 (技育祭2024春)
mosa_siru
45
14k
学生としてRSGT2024に参加して得られた学び / Lessons learned from participating in RSGT2024 as a student
fujiemon
0
110
MongoDB Atlas Vectorsearchではじめる生成AIアプリ開発
chie8842
3
500
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
720
Featured
See All Featured
It's Worth the Effort
3n
180
27k
How GitHub (no longer) Works
holman
301
140k
We Have a Design System, Now What?
morganepeng
42
6.7k
Designing with Data
zakiwarfel
94
4.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
15
6.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
19
1.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
355
22k
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
What’s in a name? Adding method to the madness
productmarketing
PRO
14
2.6k
Writing Fast Ruby
sferik
619
59k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
272
12k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Transcript
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』における行動履歴ログの品質担 保の取り組み 1
データ推進室 データテクノロジーユニット D3M 部 HR/住まいD3Mグループ 新堀 秀和 2022/11/01
© Recruit Co., Ltd. All Rights Reserved 自己紹介 新堀 秀和
(にいぼり ひでかず) データ推進室 データテクノロジーユニット D3M 部 HR/住まいD3Mグ ループ グループマネージャー 2017年にリクルート住まいカンパニーに中途入社し、開発ディレクション 組織に配属。 入社して間もなく、データの利活用を推進する目的で、D3M 部の前身となるデータマネジメントグループの立ち上げに参画。 2021年 の会社統合後はHR領域と住まい領域のD3Mグループのマネージャーを 務めている。 好きな言語はPHP/JavaScript、好きなことはチームビルド/アジャイル カルチャー 2 #recruitdata
© Recruit Co., Ltd. All Rights Reserved まなび 領域 住まい
領域 データ推進室の組織構成 3 データテクノロジー ユニット SaaS 領域 データプロダクト ユニット HR 領域 データサイエンス部 データエンジニアリング部 … D3M (Data Driven Decision Making) 部 1. 白子 3.林田 2.新堀 山邉 データソリューションユニット #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』サービス 不動産クライアントとカスタマーを繋ぐメディア 4
#recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』でのデータ利活用: 『SUUMO』では、メディア(Webサイト/アプリ)から取得できる行動履歴ログ(主に Webビーコン型のログ)を使って、
・機械学習を用いたリコメンドサービス開発 ・モニタリング(データマート/BI) 等に利活用している 5 Webサイト/アプリ Webビーコンロ グ 収集・加工・蓄積 (ETL, DWH,...etc) リコメンド サービス モニタリング #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』でのデータ利活用: 『SUUMO』では、メディア(Webサイト/アプリ)から取得できる行動履歴ログ(主に Webビーコン型のログ)を使って、
・機械学習を用いたリコメンドサービス開発 ・モニタリング(データマート/BI) 等に利活用している 6 Webサイト/アプリ Webビーコンロ グ 収集・加工・蓄積 (ETL, DWH,...etc) リコメンド サービス モニタリング #recruitdata アナリティクスエンジニアの主たる活動範囲
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』のフロント開発,データ開発 • フロント開発:
サイト/アプリメディアでは、マッチング向上(利便性向上等)の目的で、高頻度か つ継続的にSUUMOのUI/UX改善を実施 • データ開発: 行動履歴ログを使って、リコメンド/モニタリングなどを通してマッチング精度向 上 7 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』のフロント開発,データ開発 • フロント開発:
サイト/アプリメディアでは、マッチング向上(利便性向上等)の目的で、高頻度か つ継続的にSUUMOのUI/UX改善を実施 • データ開発: 行動履歴ログを使って、リコメンド/モニタリングなどを通してマッチング精度向 上 8 高頻度のUI/UX改善によりサイト/アプリが変更され、取得される行動履 歴ログが改変、リコメンドやモニタリングの障害原因となっていた #recruitdata
© Recruit Co., Ltd. All Rights Reserved Webサイト/アプリ Webビーコンロ グ
収集・加工・蓄積 (ETL, DWH,...etc) リコメンド サービス モニタリング なぜ、障害が発生するのか? • 行動履歴ログの埋め込みは、フロント開発で実施するが、フロント開発では行動 履歴ログがどのように使われているか把握できない • 結果、狙ったテストが実施できず、意図せずして、行動履歴ログが改変され、後続 のデータサービス障害が発生 9
© Recruit Co., Ltd. All Rights Reserved Webサイト/アプリ Webビーコンロ グ
収集・加工・蓄積 (ETL, DWH,...etc) リコメンド サービス モニタリング なぜ、障害が発生するのか? • 行動履歴ログの埋め込みは、フロント開発で実施するが、フロント開発では行動 履歴ログがどのように使われているか把握できていない • 結果、狙ったテストが実施できず、意図せずして、行動履歴ログが改変され、後続 のデータサービス障害が発生 10 【今日の話】 アナリティクスエンジニアが、フロントエンジニアと連 携して、行動履歴ログの品質担保
© Recruit Co., Ltd. All Rights Reserved 行動履歴ログの品質担保方法 ログ仕様(正解データ)を用意してテストする 11
#recruitdata
© Recruit Co., Ltd. All Rights Reserved 行動履歴ログの品質担保方法 ログ仕様(正解データ)を用意してテストする ただし、問題が、、、
• テストを実施すれば良いが、高頻度かつ継続的にサイト/アプリ開発を実施して いる中に、アナリティクスエンジニアが入ってテストを実施すると、改善スピード が阻害される 12 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 行動履歴ログの品質担保方法 ログ仕様(正解データ)を用意してテストする ただし、問題が、、、
• テストを実施すれば良いが、高頻度かつ継続的にサイト/アプリ開発を実施して いる中に、アナリティクスエンジニアが入ってテストを実施すると、改善スピード が阻害される → 自動テストで解決すれば良い 13 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 行動履歴ログの品質担保方法 ログ仕様(正解データ)を用意してテストする ただし、問題が、、、
• テストを実施すれば良いが、高頻度かつ継続的にサイト/アプリ開発を実施して いる中に、アナリティクスエンジニアが入ってテストを実施すると、改善スピード が阻害される → 自動テストで解決すれば良い 14 フロント開発で使えるE2E自動テストを組んで、行動履歴ログの品質担保 を実施 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 実際の取り組み内容と課題 E2Eテストフレームワークを使って、サイト/アプリの生成するWebビーコン型の行動 履歴ログが仕様通りの内容か、自動でテスト
①行動履歴ログの仕様管理 ②①を使って行動履歴ログの生成機能を自動テスト 15 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 実際の取り組み内容と課題 E2Eテストフレームワークを使って、サイト/アプリの生成するWebビーコン型の行動 履歴ログが仕様通りの内容か、自動でテスト
①行動履歴ログの仕様管理 ②①を使って行動履歴ログの生成機能を自動テスト 一般的なE2E自動テストと何が違うのか? 16 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 一般的な自動テスト 17 仕様書を作成
する テストコードを書 く テストを通す サイト情報 (URL/DOM) ログ 情報 結果確認 テスト 実行 テスト コード JS #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(1) 仕様が更新されない 18
仕様書を作成 する テストコードを書 く テストを通す サイト情報 (URL/DOM) ログ 情報 結果確認 テスト 実行 テスト コード JS 更新されない #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(1)の対応 : 仕様をテストコード管理
19 仕様をコード管 理 テストコードを書 く テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 ログ情報 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(1)の対応 : 仕様をテストコード管理
20 仕様をコード管 理 テストコードを書 く テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 ログ情報 仕様を更新しないと、テストが通らないプロセス #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(2) メンテナンスコストの高騰 21
仕様をコード管 理 テストコードを書 く テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 ログ情報 サイト改修のたび にエンハンス #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(2)の対応 : テストコードの自動生成
22 仕様をDBに登 録 テストコードの 自動生成 テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 (URL/DOM) ログ情報 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 課題(2)の対応 : テストコードの自動生成
23 仕様をDBに登 録 テストコードの 自動生成 テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 (URL/DOM) ログ情報 テストコードの作成を不要にし、メンテナンスコストを抑制 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 実際の取り組み内容と課題 E2Eテストフレームワークを使って、サイト/アプリの生成するWebビーコン型の行動 履歴ログが仕様通りの内容か、自動でテスト
①行動履歴ログの仕様管理 → 仕様を更新しないと、テストが通らないプロセスを構築 ②①を使って行動履歴ログの生成機能を自動テスト → テストコードの作成を不要にし、メンテナンスコストを抑制 24 #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』における行動履歴ログのテストフロー 25 仕様をDBに登
録 テストコードの 自動生成 テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 (URL/DOM) ログ情報 ログ仕様をDBに登録するだけで、テストコードの作成が不 要で、テストを実行できるフロー #recruitdata
© Recruit Co., Ltd. All Rights Reserved 『SUUMO』における行動履歴ログのテストフロー 26 仕様をDBに登
録 テストコードの 自動生成 テストを通す 結果確認 テスト 実行 テスト コード JS サイト情報 (URL/DOM) ログ情報 UI/UX改善による、行動履歴ログの予期せぬ改変なし 改善スピードをほぼ損なうことなく、データサービスの障害も0件 #recruitdata
© Recruit Co., Ltd. All Rights Reserved まとめ • データ開発:
◦ 行動履歴ログを使って、リコメンド/モニタリングなどを通してマッチング精度向上 • フロント開発: ◦ マッチング向上(利便性向上等)の目的で、高頻度かつ継続的にSUUMOのUI/UX 改善を実施 行動履歴ログの予期せぬ改変により、データプロダクトの障害発生 27 このコンフリクトを解消するために、アナリティクスエンジニアが、フロント エンジニアと連携して、行動履歴ログの品質担保を実施 #recruitdata
© Recruit Co., Ltd. All Rights Reserved この後のセッション 28 講演資料などのハッシュタグ
#recruitdata イベント終了後にアンケートのご案内もあ りますので、是非ご回答をお願いします! #recruitdata