Slide 1

Slide 1 text

© Unipos Inc. All Rights Reserved. 2023年のしくじりと学び Unipos株式会社 ゲンシュン 0

Slide 2

Slide 2 text

© Unipos Inc. All Rights Reserved. unipos株式会社コーポレート部CDP企画室のゲンシュンと申します。 ⾃ ⼰ 紹 介 1 2016年 2018年 2019年 2021年 2020年 フロントエンド エンジニア 新卒エンジニア 採⽤責任者 QAエンジニア PM データエンジニア イマココ!! 2023年

Slide 3

Slide 3 text

© Unipos Inc. All Rights Reserved. uniposについて紹介 2

Slide 4

Slide 4 text

© Unipos Inc. All Rights Reserved. 3

Slide 5

Slide 5 text

© Unipos Inc. All Rights Reserved. 4 良い⾏動への称賛 × 少額のインセンティブ (ポイント) オープンに送り合うため 良い⾏動が組織全体へ

Slide 6

Slide 6 text

© Unipos Inc. All Rights Reserved. 5 挑戦や部署を超えた⾏動状況や⼈事施策の成果を定量的に把握

Slide 7

Slide 7 text

© Unipos Inc. All Rights Reserved. 2023年多くのしくじりの中 反省と学びをいくつか振り返ります! 6

Slide 8

Slide 8 text

© Unipos Inc. All Rights Reserved. 本 ⽇ の お 品 書 き 7 l現在のアーキテクチャ紹介 lしくじり紹介 n機械学習を使ったのに運⽤に乗らなかった解約予測 n⼈依存のまま運⽤が回っていると錯覚してた nビジネスプロセスに向き合わず⽬先の改修に専念 lまとめ 本⽇のお品書き

Slide 9

Slide 9 text

© Unipos Inc. All Rights Reserved. 現状のアーキテクチャ 8

Slide 10

Slide 10 text

© Unipos Inc. All Rights Reserved. 全てのマスターデータをBigQueryに集約、DWHはdbtとBigQueryで実装 BIツールと権限管理はLooker 現 状 の ア ー キ テ ク チ ャ 9 stg層 mart層 すべてのデータを BQへ集約 データレイク データウェアハウス データマート

Slide 11

Slide 11 text

© Unipos Inc. All Rights Reserved. データレイクの概要。とりあえずBQにエクスポートされている状態を作る。 現 状 の ア ー キ テ ク チ ャ 10 database ⾏動ログ マイクロ サービス群 cloud logging すべてのデータを BQへ集約 GA to BQ export データレイク BQ export

Slide 12

Slide 12 text

© Unipos Inc. All Rights Reserved. データウェアハウスとデータマート概要。DWHはすべてdbtで実装。 プロダクトサイド都合はdbt、bizサイド(分析)都合はLookerという責務で分離 現 状 の ア ー キ テ ク チ ャ 11 fctテーブル dimテーブル 集計テーブル すべてのデータを BQへ集約 データレイク データウェアハウス データマート

Slide 13

Slide 13 text

© Unipos Inc. All Rights Reserved. 特に深い理由はないですが、github actions経由でdbt run実⾏してます dbt cloudは使ってないです(dbt-coreのみ) 現 在 の ア ー キ テ ク チ ャ 12 github action cloudbuild dbt run 実⾏ dbt test 実⾏ リリース完了! 押すだけ

Slide 14

Slide 14 text

© Unipos Inc. All Rights Reserved. しくじり① 機械学習使ったのに運⽤に乗らなかった解約予測 13

Slide 15

Slide 15 text

© Unipos Inc. All Rights Reserved. やったこと:従来のプロダクトデータのみを利⽤した解約予想の精度をあげた 機 械 学 習 使 っ た の に 運 ⽤ に 乗 ら な か っ た 解 約 予 測 14 lSalesForce等のbizデータも利⽤し、機械学習させて精度検証した l予測精度はかなり改善、解約リスクある企業をpickupできる状態に

Slide 16

Slide 16 text

© Unipos Inc. All Rights Reserved. しくじり:半年経過した結果ほぼCSに使われていないことが発覚 機 械 学 習 使 っ た の に 運 ⽤ に 乗 ら な か っ た 解 約 予 測 15 l⽉に1度BQMLを⽤いて予想、結果をlooker経由でslack連携まで実施

Slide 17

Slide 17 text

© Unipos Inc. All Rights Reserved. 反省:スコアを⾒てもCSが具体的なアクションに繋げづらかった 機 械 学 習 使 っ た の に 運 ⽤ に 乗 ら な か っ た 解 約 予 測 16 l各特徴量が⾮常に細かくCSが何を⾒て何が出来るのか想起させられなかった l精度の⾼さを主に求めてしまった

Slide 18

Slide 18 text

© Unipos Inc. All Rights Reserved. TRY:精度を捨て⾏動ドリブンで再スタート 機 械 学 習 使 っ た の に 運 ⽤ に 乗 ら な か っ た 解 約 予 測 17 l精度よりも、指標とアクションをセットでサポート出来るように lカテゴリー毎の合算値を提供 n契約周り、お客様との関係性、現在の利⽤状況、オンボ期の状況

Slide 19

Slide 19 text

© Unipos Inc. All Rights Reserved. その② ⼈依存のまま運⽤が回っていると錯覚してた 18

Slide 20

Slide 20 text

© Unipos Inc. All Rights Reserved. 背景:システムのDB⼤型リファクタ移⾏がある ⼈ 依 存 の ま ま 運 ⽤ が 回 っ て い る と 錯 覚 し て た 19 lscalaで動いてたサービスがgolangに移⾏される lそれに伴い、DBやログ出⼒の向き先も変わる dim_xxx fct_yyy システム 旧DB stg層 mart層 システム 新DB 旧 新

Slide 21

Slide 21 text

© Unipos Inc. All Rights Reserved. やったこと:いつも通りシステムのDB移⾏への対応をやった ⼈ 依 存 の ま ま 運 ⽤ が 回 っ て い る と 錯 覚 し て た 20 lなんやかんや、今までslackとか⽇常会話で変更を拾ってた lバグ0で移⾏対応完了します!!という⽬標で挑んだ

Slide 22

Slide 22 text

© Unipos Inc. All Rights Reserved. しくじり:最後の移⾏イベントを⾒落とし、データ基盤に影響がでてしまった ⼈ 依 存 の ま ま 運 ⽤ が 回 っ て い る と 錯 覚 し て た 21 l普通に⾒落として、1週間データ⽋損させてしまった nある指標の数値が0になったのをキャッチできたので即気づけたのは幸い

Slide 23

Slide 23 text

© Unipos Inc. All Rights Reserved. 反省:結果的に今まで良かっただけでちゃんと仕組みでカバー出来ると安⼼だった ⼈ 依 存 の ま ま 運 ⽤ が 回 っ て い る と 錯 覚 し て た 22 l仕組み化は必ず必要 nサーバーサイドエンジニアと何だかんだ連携してるつもりだった nDB変更にまつわる共有会を毎週ちゃんとやるようにした

Slide 24

Slide 24 text

© Unipos Inc. All Rights Reserved. 反省:適切な定量⽬標を設けた⽅が良かった ⼈ 依 存 の ま ま 運 ⽤ が 回 っ て い る と 錯 覚 し て た 23 l「バグ無しで対応やりきる、基盤影響無く進める」という⽬標だ と、どうアクションする? nヒューマンエラーは付き物なので、⾒落としが発⽣しうる l例えば「基盤影響発覚から2⽇以内に修正出来るように対応やる」 という⽬標なら? nすぐ発覚できるようにテストの網羅性を確認しよう nシステム側のリリース⽇はまず把握しよう

Slide 25

Slide 25 text

© Unipos Inc. All Rights Reserved. しくじり③ ビジネスプロセスに向き合わず⽬先の改修に専念 24

Slide 26

Slide 26 text

© Unipos Inc. All Rights Reserved. 背景:プロダクトに登場する主要データ ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 25 lteam: 導⼊企業 member: 利⽤ユーザー lほぼ全てのテーブルにjoinされる主要な概念 team member

Slide 27

Slide 27 text

© Unipos Inc. All Rights Reserved. 背景:memberのステータスは単体では判断できない ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 26 l解約したteamのmemberステータスそのままになってる l分析時は常にteamのステータスを⾒なければいけない 有効じゃない!!

Slide 28

Slide 28 text

© Unipos Inc. All Rights Reserved. 背景:解約→復活(再開)のパターンがある ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 27 l再開⽇が開始⽇を上書きし、利⽤終了⽇が消滅する

Slide 29

Slide 29 text

© Unipos Inc. All Rights Reserved. 背景:teamやmemberのテーブル設計 ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 28 lLooker側で常にteamテーブルとjoinさせるような設計になってた member 関連テーブル team 関連テーブル dim_member dim_team 集計テーブル 集計テーブル レポート システム DB stg層 mart層 集計層

Slide 30

Slide 30 text

© Unipos Inc. All Rights Reserved. member 関連テーブル team 関連テーブル dim_member dim_team 集計テーブル 集計テーブル レポート システム DB stg層 mart層 集計層 やったこと:Looker頑張りすぎてたのでデータ基盤に寄せる改修をした ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 29 lLookerで常にteamとjoinさせてたのをやめた

Slide 31

Slide 31 text

© Unipos Inc. All Rights Reserved. member 関連テーブル team 関連テーブル dim_member dim_team 集計テーブル 集計テーブル レポート システム DB stg層 mart層 集計層 やったこと:解約→再開を考慮できてないケースがあったので改修した ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 30 l個々テーブルで判断できないので⾊々引っ張らざるを得ない

Slide 32

Slide 32 text

© Unipos Inc. All Rights Reserved. しくじり:すごく⾟い状況になってしまった ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 31 lteamテーブルって何を表す何のテーブルなんだっけ?がわからず member 関連テーブル team 関連テーブル dim_member dim_team 集計テーブル 集計テーブル レポート システム DB stg層 mart層 集計層

Slide 33

Slide 33 text

© Unipos Inc. All Rights Reserved. 反省:ビジネスプロセスを⾒直せてなかった ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 32 l◯◯は特殊なレアケースだからあまり考えなくて良いと思ってた n実際はそこそこ有り得る通常フローだった lシステム側のDB設計が現状のビジネスプロセスを現せてない nデータモデリングでカバーしていく 気づき!!

Slide 34

Slide 34 text

© Unipos Inc. All Rights Reserved. TRY:intermediate層導⼊した ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 33 lぐちゃぐちゃになってる⾚⾊の線を1箇所でやるように改修 member 関連テーブル team 関連テーブル dim_member dim_team 集計テーブル 集計テーブル レポート stg層 mart層 集計層

Slide 35

Slide 35 text

© Unipos Inc. All Rights Reserved. TRY:intermediate層導⼊した ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 34 lISSUEが10個ぐらい解消できた! member 関連テーブル team 関連テーブル dim_member dim_team 集計テーブル 集計テーブル レポート stg層 mart層 集計層 intermediate層 teamとmemberに 関する事情のみ ここで集約

Slide 36

Slide 36 text

© Unipos Inc. All Rights Reserved. TRY:intermediate層導⼊した ビ ジ ネ ス プ ロ セ ス に 向 き 合 わ ず ⽬ 先 の 改 修 に 専 念 35 l単に⾯倒な処理を1箇所にまとめた訳じゃない lビジネスプロセスを⾒返して、責務の⾔語化と理由が⽣まれた n売り⽅やお客様によってデータの状態がコロコロ変わる n⼀⽅システムDBはそれに追従できないことが多い n全テーブルに影響があるので、team/memberだけ特別に扱った⽅がいい

Slide 37

Slide 37 text

© Unipos Inc. All Rights Reserved. まとめ 36

Slide 38

Slide 38 text

© Unipos Inc. All Rights Reserved. ま と め 37 l他者が⾏動伴えるサポートや⽀援を l今まで上⼿く出来たとしても、仕組み化を考える l追いやすい健全な⽬標を lビジネスプロセスに向き合うことを忘れない 2024年もたくさん失敗したくさん学びたい

Slide 39

Slide 39 text

© Unipos Inc. All Rights Reserved. ま と め 38

Slide 40

Slide 40 text

© Unipos Inc. All Rights Reserved. ま と め 39 @gen_shun 趣味ブログ gen_shun gen_shun

Slide 41

Slide 41 text

© Unipos Inc. All Rights Reserved. +39pt Thank you! 40