Slide 1

Slide 1 text

1 教育事業における アジャイルなデータ基盤開発 ucchi- 2025-07-04 Data Modeling Night imaima

Slide 2

Slide 2 text

2 自己紹介 ● アナリティクスエンジニア ● X: @hanon52_ ● 2021年 ピクシブ株式会社に新卒入社 ○ 広告のデータ基盤設計、Looker や Salesforce の整備 ○ 社内の様々なプロダクトのデータ基盤構築、利活用推進 ○ データの入口から出口まで何でもやります ● 美味しいご飯を食べたり作ったりするのが好き ucchi- 2

Slide 3

Slide 3 text

3 事業:京都芸術大学 通信教育部 イラストレーションコース ● オンラインで学士号が取れる ● 2021年開校 ● 延べ 7,300 名以上が入学 概要

Slide 4

Slide 4 text

4 イラストレーションコース独自の分析データ基盤を構築した話 発表の概要 4 概要

Slide 5

Slide 5 text

5 分析データ基盤ができる前の、エンジニアがいない中での運用。チーム規模の小さいうちは機能する。 しかし、チームが拡大するにつれて、手動での運用が難しくなってきた。 2024年まで:手動でのデータ活用 概要 > 前後比較

Slide 6

Slide 6 text

6 ビジネス職1人の体制から、エンジニアが2人増え、相談役で ucchi- が合流した。 リソースが増えたことで、2024年の夏頃からデータ基盤の構築に着手。 体制の拡充 概要 概要 > 前後比較 2024年夏まで 2024年夏から

Slide 7

Slide 7 text

7 2025年から:データ基盤を用いたデータの活用 概要 概要 > 前後比較

Slide 8

Slide 8 text

8 手動での運用を減らすことで、チームの拡大に対応できるようになった 概要 概要 > 前後比較

Slide 9

Slide 9 text

9 BigQuery + dbt + Looker Studio は よくあるツールの組み合わせ これについて解説しても面白くない

Slide 10

Slide 10 text

10 データ基盤構築プロジェクトの過程について話す

Slide 11

Slide 11 text

11 ● 設計 ○ ヒアリング ○ プロジェクトのゴール設定 ○ ダッシュボードのデザイン作成 ● 開発 ○ スキーマ駆動開発 ○ 曳光弾開発 行ったこと

Slide 12

Slide 12 text

12 設計

Slide 13

Slide 13 text

13 データ基盤の目的や用途を定めるため、ステークホルダーにヒアリング。 → 見たいデータや関心ごとが、人によって異なることが判明。 ステークホルダーにヒアリング 在籍している学生の 学習体験を向上したい 学生ごとに、 学習情報をまとめて 見られるようにしたい プロモーション経由 で獲得した学生が、 学習を継続している か知りたい 見込み学生を増やす プロモーションの精 度を上げたい プロモーション チーム 教務チーム マネージャー 設計 > ヒアリング

Slide 14

Slide 14 text

14 ヒアリング結果をまとめ、ディメンショナルマトリックスを作成 ステーク ホルダー ビジネス プロセス マネ目線 重要度 ディメンション 見込み 学生 プロモ 学生 科目 教員 … プロモチーム 入学説明会 低 ✔ ✔ ✔ … プロモチーム 外部広告 低 ✔ ✔ … プロモチーム 効果計測 低 ✔ ✔ ✔ … 教務チーム 履修 低 ✔ ✔ … 教務チーム 採点 低 ✔ ✔ ✔ … 教務チーム 個別面談 高 ✔ ✔ … … … … … … … … … … ディメンショナルマトリックスを用いて、 ヒアリング結果を集約した。 見えること ● マネージャー目線で 「個別面談」のデータ活用が重要 ● 実装の過程で「学生」ディメンション が整備される ● 「学生」は使い回しが効く ○ 教務:「履修」「採点」 ○ プロモ:「効果計測」 ディメンショナルマトリックスの作成イメージ。一部アレンジ 参考)『アジャイルデータモデリング』図 4-5「ディメンショナルマトリックス」 設計 > ヒアリング

Slide 15

Slide 15 text

15 ディメンショナルマトリックスは、全体方針を一目で表せる ディメンショナルマトリックスを使えば ● データ基盤を俯瞰する ● 優先順位をつける ことができる。これによって、 ステークホルダーへの説明が容易になる。 ディメンショナルマトリックスの作成イメージ。一部アレンジ 参考)『アジャイルデータモデリング』図 4-5「ディメンショナルマトリックス」 設計 > ヒアリング ステーク ホルダー ビジネス プロセス マネ目線 重要度 ディメンション 見込み 学生 プロモ 学生 科目 教員 … プロモチーム 入学説明会 低 ✔ ✔ ✔ … プロモチーム 外部広告 低 ✔ ✔ … プロモチーム 効果計測 低 ✔ ✔ ✔ … 教務チーム 履修 低 ✔ ✔ … 教務チーム 採点 低 ✔ ✔ ✔ … 教務チーム 個別面談 高 ✔ ✔ … … … … … … … … … …

Slide 16

Slide 16 text

16 プロジェクトのゴールを設定 ディメンショナルマトリックスに基づき、 「教員が、個別面談時に、その学生の情報をまとめて見ることができるダッシュボードの構築」 をゴールにした。 設計 > ゴール設定 実際に作ったダッシュボード ※個人情報保護のためにモザイクをかけています

Slide 17

Slide 17 text

17 プロジェクトを始めるにあたり、今あるデータソースからデータ基盤を構築すると、 途中で利用者の意見を全くとりいれないため、 利用者にダッシュボードを納品する段階で手戻りが発生するリスクがある。 ● 「ダッシュボードが使いづらい」とフィードバックされ、大きな追加改修が必要になる ● 不要なグラフに使う、不要なデータパイプラインを開発してしまう ● 必要なグラフに使うデータソースが足りないことが、ダッシュボードを作ってから明らかになる 課題:データ基盤から開発すると、手戻りが発生する 設計 > ダッシュボードのデザイン作成 参考)『アジャイルデータモデリング』1.2.1 「データ駆動型分析」

Slide 18

Slide 18 text

18 データソースからではなく、ダッシュボードのデザインから逆算して必要なデータを定義する。 参考)『アジャイルデータモデリング』1.2.2 「レポート駆動型分析」 参考)デジタル庁『ダッシュボードデザインの実践ガイドブック』https://www.digital.go.jp/resources/dashboard-guidebook 解決策:ダッシュボードから逆算する 設計 > ダッシュボードのデザイン作成

Slide 19

Slide 19 text

19 データ基盤の開発を始める前に、ダッシュボードのデザインを作ることで、 将来ハマるであろう落とし穴を早期に発見し、回避することができる。 ダッシュボードのデザイン作成は、将来の手戻りを事前に防ぐ 設計 > ダッシュボードのデザイン作成 データ基盤から開発する 先にダッシュボードのデザインを作る ダッシュボード納品後の大規模な追加改修 事前にスコープの絞り込みができる 不要なデータパイプラインの開発 可視化に必要なものしか作らない データソースの不足に後から気付く デザイン作成の段階で、早期に発見できる

Slide 20

Slide 20 text

20 ダッシュボードのデザイン作成手順 1. 下書きの作成 2. 認識のすり合わせ 3. スコープの絞り込み 設計 > ダッシュボードのデザイン作成

Slide 21

Slide 21 text

21 まず、ステークホルダーに「理想のダッシュボード」を作成してもらう。 ① 下書きの作成 設計 > ダッシュボードのデザイン作成 > 作成手順 理想のダッシュボード

Slide 22

Slide 22 text

22 次に、「理想のダッシュボード」に対して質問を行い、指標の定義や可視化手法の確認を行う。 ② 認識のすり合わせ なぜ 円グラフ? この数値が高けれ ば、どのような行 動をとる? この指標は 何を表す? レポートのフィル ターで昨年度を指定 すると、この可視化 はどうなる? 設計 > ダッシュボードのデザイン作成 > 作成手順 理想のダッシュボード

Slide 23

Slide 23 text

23 初期リリースで絶対に必要なグラフのみに、スコープを絞り込む。 → 初期リリース時点ではダッシュボード全体の1/4を実装し、残りは運用開始後に追加を検討。 ③ スコープの絞り込み 設計 > ダッシュボードのデザイン作成 > 作成手順 スコープの 絞り込み 理想のダッシュボード 初期リリースのスコープ

Slide 24

Slide 24 text

24 デザインを元に、Looker Studio でレポートを作る方法もある。データソースは Google Sheet で代用。 「BI ツールによる制約」を明らかにすることができる。 (参考) ④ 先に Looker Studio まで作ってしまうのも手 当初のデザイン Looker Studio グラフ 設計 > ダッシュボードのデザイン作成 > 作成手順

Slide 25

Slide 25 text

25 ● イラストレーションコースの分析データ基盤をアジャイルに開発した ● 「ディメンショナルマトリックス」を描くことで、データ基盤の開発方針を説明しやすくする ● ダッシュボードのデザインを事前に作成することで、将来の手戻りを防ぐ 設計パートのまとめ 設計 > まとめ

Slide 26

Slide 26 text

26 開発

Slide 27

Slide 27 text

27 自己紹介 ● エンジニア ● GitHub : https://github.com/miolab ● 2020年 ピクシブ株式会社に入社 ○ pixiv等の各サービスの開発支援 ○ カスタマーオペレーション関連システムの基盤構築・機能 開発・分析基盤のデータパイプライン実装 ● 2024年よりCulture & Education Division 教育開発チームを兼務 ● 好きな技術スタックはElixir imaima 27

Slide 28

Slide 28 text

28 『アジャイルデータモデリング』の考え方を、現場でのデータ基盤構築にどう「実践」し、 「具現化」していったか。 キーワード ● スキーマ駆動開発 ● 曳光弾(えいこうだん)開発 「アジャイル × データモデリング」の実践 開発 > 背景

Slide 29

Slide 29 text

29 ● ダッシュボードのモックアップ・イメージはできている、必要そうな生データも手元にある ● …でも、いざ作り始めようとすると、 どこから手を付ければ、使えるダッシュボードを最短距離で作れるのか? 背景・課題 開発 > 背景

Slide 30

Slide 30 text

30 スキーマ駆動開発

Slide 31

Slide 31 text

31 ● データモデリングにおけるスキーマ駆動 (Schema-Driven) ○ クエリやロジックを実装する前に、テーブル定義、カラム、データ型、リレーションシップといっ たデータの構造 (スキーマ) を先行して定義・設計するアプローチ ○ 開発の安定性と効率性を高めることが目的 データモデリングにおけるスキーマ駆動 開発 > スキーマ駆動開発

Slide 32

Slide 32 text

32 スキーマ駆動 : アジャイル開発とは相反しない 開発 > スキーマ駆動開発 ● … アジャイル開発の「変化への迅速な対応」を重視するスタンスと相反するのでは? ○ 大事なのは、「かろうじて役に立つ程度のシンプルな初期モデル」構築までに留めておくこと (いきなり完璧なモデルを作り込むことはしない) ○ 必要最低限の分析や指標に絞ったアウトプットをスキーマ定義するアプローチ、つまり 「ある程度見越して先に考えておく」ことはアジャイルなデータモデリング開発とマッチする

Slide 33

Slide 33 text

33 アジャイルデータモデリングにおけるスキーマ駆動とは 完璧なスキーマを最初に作り込むのではなく、 将来の拡張性も見据えた『必要最小限のスキーマ』をまず最初に決めておき、 その後の開発や改善はそのスキーマを基準に柔軟に進めていくアプローチ。 開発 > スキーマ駆動開発 将来の拡張性も見据えた、というのは、 変更や追加がしやすいように余白を持たせておく、 という意味です。

Slide 34

Slide 34 text

34 ステークホルダーの現在の理解を反映し、かつチームが開発を始めるのに必要十分な程度のそこそこ良いモデル を準備することがカギ。 ● ダッシュボードのタイルイメージからビジネス要件を整理 ● そこから逆算して、各テーブルやカラムの名前、粒度を ざっくり洗い出して『スキーマの仮決め』をする スキーマ駆動開発の準備 開発 > スキーマ駆動開発 > 開発手順

Slide 35

Slide 35 text

35 スキーマ駆動開発の開発手順 1. アウトプットテーブルの設計 2. インプットのデータソース洗い出し 3. プロセス設計 (概念→論理→物理) 開発 > スキーマ駆動開発 > 開発手順

Slide 36

Slide 36 text

36 スキーマ駆動開発 : 概念設計イメージ 参考)風音屋TechBlog『データ分析で用いるSQLクエリの設計方法』 https://techblog.kazaneya.com/20241208-design-of-analytical-sql-queries/ ※ 設計ブロックは 一部省略 開発 > スキーマ駆動開発 > 開発手順 1 3 2

Slide 37

Slide 37 text

37 スキーマ駆動開発 : 論理設計・物理設計イメージ 参考)風音屋TechBlog『データ分析で用いるSQLクエリの設計方法』 https://techblog.kazaneya.com/20241208-design-of-analytical-sql-queries/ 開発 > スキーマ駆動開発 > 開発手順

Slide 38

Slide 38 text

38 スキーマ駆動開発 : 物理設計からCTE(共通テーブル式)を実装する 開発 > スキーマ駆動開発 > 開発手順

Slide 39

Slide 39 text

39 曳光弾開発

Slide 40

Slide 40 text

40 曳光弾開発 ● ソフトウェア開発の名著『達人プログラマー』で紹介された手法 ● まずシステムの端から端まで一本通してしまう開発アプローチ ● 最小限度のものではあるが、最終的な本番システムの骨格を形成するもの として作る (プロトタイピングとの違いは、「捨てる」のではなく「残す」) 曳光弾開発 : すばやく「線を通す」ワンパス実装 開発 > 曳光弾開発 曳光弾は(略)すぐに目標を捉えることができるため、 射撃手は即座にフィードバックが得られるわけです。 (『達人プログラマー(第2版)』 12 曳光弾 )

Slide 41

Slide 41 text

41 ● 最初から完璧なものを作ろうとせずに、ごく小さなデータやアーキテクチャだけでシステム全体が動くこ とを最速で確認する ○ 『必要なものを、必要な時に、必要なだけ行う (JIT : Just-In–Time)』(※) アジャイルなデータモデリングにおける曳光弾開発 開発 > 曳光弾開発 ※参考)『アジャイルデータモデリング』1.2.4 「データ駆動型分析」

Slide 42

Slide 42 text

42 ● 最初は「とにかく学籍番号が出るところまで」という目標設定で小さく仕上げ、骨格をつくる ● これをベースにして徐々に肉付けしていくイメージ 曳光弾開発 : まずは小さく作って動かしていく 開発 > 曳光弾開発

Slide 43

Slide 43 text

43 曳光弾開発 : 徐々にアーキテクチャを本番仕様へ仕上げていく 開発 > 曳光弾開発

Slide 44

Slide 44 text

44 まとめ

Slide 45

Slide 45 text

45 開発パートのまとめ ● スキーマ駆動開発で、必要十分な程度のスタートラインを整える ● 曳光弾開発によって、まずは最小ワンパスで全部をすばやく通す → 不確実性をクリアにしながら、「現場で動く・育つ」データ基盤を   最速で仕立てる 開発 > まとめ

Slide 46

Slide 46 text

46 (ローレンス・コル、他)『アジャイルデータウェアハウス』 (デジタル庁)『ダッシュボードデザインの実践ガイドブック』 (アンドリュー・ハント、デヴィッド・トーマス、他)『達人プログラマー(第2版)』 参考文献