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
20250704_教育事業におけるアジャイルなデータ基盤構築
Search
Uchide Hiroki(ucchi-)
July 04, 2025
Programming
5
1.2k
20250704_教育事業におけるアジャイルなデータ基盤構築
Data Modeling Night -「今」だからできる理論の実践事例 - の発表資料です。
https://pixiv.connpass.com/event/358285/
Uchide Hiroki(ucchi-)
July 04, 2025
Tweet
Share
More Decks by Uchide Hiroki(ucchi-)
See All by Uchide Hiroki(ucchi-)
プロダクト横断分析に役立つ、事前集計しないサマリーテーブル設計
hanon52_
3
720
30分でわかる『アジャイルデータモデリング』
hanon52_
15
7.6k
ダッシュボードが“使われる”ようにするための Tips を時間の限り紹介!
hanon52_
2
1.8k
BQ+dbt+Lookerを用いた、月間800億件以上の広告リクエストに対するデータモデリング
hanon52_
6
2.4k
Other Decks in Programming
See All in Programming
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
160
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
110
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
1.2k
知って得する@cloudflare_vite-pluginのあれこれ
chimame
1
110
Workers を定期実行する方法は一つじゃない
rokuosan
0
120
フロントエンドのパフォーマンスチューニング
koukimiura
6
2.2k
レトロゲームから学ぶ通信技術の歴史
kimkim0106
0
120
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
106
40k
Porting a visionOS App to Android XR
akkeylab
0
900
構造化・自動化・ガードレール - Vibe Coding実践記 -
tonegawa07
0
130
MCPを使ってイベントソーシングのAIコーディングを効率化する / Streamlining Event Sourcing AI Coding with MCP
tomohisa
0
180
リッチエディターを安全に開発・運用するために
unachang113
1
230
Featured
See All Featured
BBQ
matthewcrist
89
9.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
760
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Statistics for Hackers
jakevdp
799
220k
Music & Morning Musume
bryan
46
6.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
370
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
710
Raft: Consensus for Rubyists
vanstee
140
7k
Transcript
1 教育事業における アジャイルなデータ基盤開発 ucchi- 2025-07-04 Data Modeling Night imaima
2 自己紹介 • アナリティクスエンジニア • X: @hanon52_ • 2021年 ピクシブ株式会社に新卒入社
◦ 広告のデータ基盤設計、Looker や Salesforce の整備 ◦ 社内の様々なプロダクトのデータ基盤構築、利活用推進 ◦ データの入口から出口まで何でもやります • 美味しいご飯を食べたり作ったりするのが好き ucchi- 2
3 事業:京都芸術大学 通信教育部 イラストレーションコース • オンラインで学士号が取れる • 2021年開校 • 延べ
7,300 名以上が入学 概要
4 イラストレーションコース独自の分析データ基盤を構築した話 発表の概要 4 概要
5 分析データ基盤ができる前の、エンジニアがいない中での運用。チーム規模の小さいうちは機能する。 しかし、チームが拡大するにつれて、手動での運用が難しくなってきた。 2024年まで:手動でのデータ活用 概要 > 前後比較
6 ビジネス職1人の体制から、エンジニアが2人増え、相談役で ucchi- が合流した。 リソースが増えたことで、2024年の夏頃からデータ基盤の構築に着手。 体制の拡充 概要 概要 > 前後比較
2024年夏まで 2024年夏から
7 2025年から:データ基盤を用いたデータの活用 概要 概要 > 前後比較
8 手動での運用を減らすことで、チームの拡大に対応できるようになった 概要 概要 > 前後比較
9 BigQuery + dbt + Looker Studio は よくあるツールの組み合わせ これについて解説しても面白くない
10 データ基盤構築プロジェクトの過程について話す
11 • 設計 ◦ ヒアリング ◦ プロジェクトのゴール設定 ◦ ダッシュボードのデザイン作成 •
開発 ◦ スキーマ駆動開発 ◦ 曳光弾開発 行ったこと
12 設計
13 データ基盤の目的や用途を定めるため、ステークホルダーにヒアリング。 → 見たいデータや関心ごとが、人によって異なることが判明。 ステークホルダーにヒアリング 在籍している学生の 学習体験を向上したい 学生ごとに、 学習情報をまとめて 見られるようにしたい
プロモーション経由 で獲得した学生が、 学習を継続している か知りたい 見込み学生を増やす プロモーションの精 度を上げたい プロモーション チーム 教務チーム マネージャー 設計 > ヒアリング
14 ヒアリング結果をまとめ、ディメンショナルマトリックスを作成 ステーク ホルダー ビジネス プロセス マネ目線 重要度 ディメンション 見込み
学生 プロモ 学生 科目 教員 … プロモチーム 入学説明会 低 ✔ ✔ ✔ … プロモチーム 外部広告 低 ✔ ✔ … プロモチーム 効果計測 低 ✔ ✔ ✔ … 教務チーム 履修 低 ✔ ✔ … 教務チーム 採点 低 ✔ ✔ ✔ … 教務チーム 個別面談 高 ✔ ✔ … … … … … … … … … … ディメンショナルマトリックスを用いて、 ヒアリング結果を集約した。 見えること • マネージャー目線で 「個別面談」のデータ活用が重要 • 実装の過程で「学生」ディメンション が整備される • 「学生」は使い回しが効く ◦ 教務:「履修」「採点」 ◦ プロモ:「効果計測」 ディメンショナルマトリックスの作成イメージ。一部アレンジ 参考)『アジャイルデータモデリング』図 4-5「ディメンショナルマトリックス」 設計 > ヒアリング
15 ディメンショナルマトリックスは、全体方針を一目で表せる ディメンショナルマトリックスを使えば • データ基盤を俯瞰する • 優先順位をつける ことができる。これによって、 ステークホルダーへの説明が容易になる。 ディメンショナルマトリックスの作成イメージ。一部アレンジ
参考)『アジャイルデータモデリング』図 4-5「ディメンショナルマトリックス」 設計 > ヒアリング ステーク ホルダー ビジネス プロセス マネ目線 重要度 ディメンション 見込み 学生 プロモ 学生 科目 教員 … プロモチーム 入学説明会 低 ✔ ✔ ✔ … プロモチーム 外部広告 低 ✔ ✔ … プロモチーム 効果計測 低 ✔ ✔ ✔ … 教務チーム 履修 低 ✔ ✔ … 教務チーム 採点 低 ✔ ✔ ✔ … 教務チーム 個別面談 高 ✔ ✔ … … … … … … … … … …
16 プロジェクトのゴールを設定 ディメンショナルマトリックスに基づき、 「教員が、個別面談時に、その学生の情報をまとめて見ることができるダッシュボードの構築」 をゴールにした。 設計 > ゴール設定 実際に作ったダッシュボード ※個人情報保護のためにモザイクをかけています
17 プロジェクトを始めるにあたり、今あるデータソースからデータ基盤を構築すると、 途中で利用者の意見を全くとりいれないため、 利用者にダッシュボードを納品する段階で手戻りが発生するリスクがある。 • 「ダッシュボードが使いづらい」とフィードバックされ、大きな追加改修が必要になる • 不要なグラフに使う、不要なデータパイプラインを開発してしまう • 必要なグラフに使うデータソースが足りないことが、ダッシュボードを作ってから明らかになる
課題:データ基盤から開発すると、手戻りが発生する 設計 > ダッシュボードのデザイン作成 参考)『アジャイルデータモデリング』1.2.1 「データ駆動型分析」
18 データソースからではなく、ダッシュボードのデザインから逆算して必要なデータを定義する。 参考)『アジャイルデータモデリング』1.2.2 「レポート駆動型分析」 参考)デジタル庁『ダッシュボードデザインの実践ガイドブック』https://www.digital.go.jp/resources/dashboard-guidebook 解決策:ダッシュボードから逆算する 設計 > ダッシュボードのデザイン作成
19 データ基盤の開発を始める前に、ダッシュボードのデザインを作ることで、 将来ハマるであろう落とし穴を早期に発見し、回避することができる。 ダッシュボードのデザイン作成は、将来の手戻りを事前に防ぐ 設計 > ダッシュボードのデザイン作成 データ基盤から開発する 先にダッシュボードのデザインを作る ダッシュボード納品後の大規模な追加改修
事前にスコープの絞り込みができる 不要なデータパイプラインの開発 可視化に必要なものしか作らない データソースの不足に後から気付く デザイン作成の段階で、早期に発見できる
20 ダッシュボードのデザイン作成手順 1. 下書きの作成 2. 認識のすり合わせ 3. スコープの絞り込み 設計 >
ダッシュボードのデザイン作成
21 まず、ステークホルダーに「理想のダッシュボード」を作成してもらう。 ① 下書きの作成 設計 > ダッシュボードのデザイン作成 > 作成手順 理想のダッシュボード
22 次に、「理想のダッシュボード」に対して質問を行い、指標の定義や可視化手法の確認を行う。 ② 認識のすり合わせ なぜ 円グラフ? この数値が高けれ ば、どのような行 動をとる? この指標は
何を表す? レポートのフィル ターで昨年度を指定 すると、この可視化 はどうなる? 設計 > ダッシュボードのデザイン作成 > 作成手順 理想のダッシュボード
23 初期リリースで絶対に必要なグラフのみに、スコープを絞り込む。 → 初期リリース時点ではダッシュボード全体の1/4を実装し、残りは運用開始後に追加を検討。 ③ スコープの絞り込み 設計 > ダッシュボードのデザイン作成 >
作成手順 スコープの 絞り込み 理想のダッシュボード 初期リリースのスコープ
24 デザインを元に、Looker Studio でレポートを作る方法もある。データソースは Google Sheet で代用。 「BI ツールによる制約」を明らかにすることができる。 (参考)
④ 先に Looker Studio まで作ってしまうのも手 当初のデザイン Looker Studio グラフ 設計 > ダッシュボードのデザイン作成 > 作成手順
25 • イラストレーションコースの分析データ基盤をアジャイルに開発した • 「ディメンショナルマトリックス」を描くことで、データ基盤の開発方針を説明しやすくする • ダッシュボードのデザインを事前に作成することで、将来の手戻りを防ぐ 設計パートのまとめ 設計 >
まとめ
26 開発
27 自己紹介 • エンジニア • GitHub : https://github.com/miolab • 2020年
ピクシブ株式会社に入社 ◦ pixiv等の各サービスの開発支援 ◦ カスタマーオペレーション関連システムの基盤構築・機能 開発・分析基盤のデータパイプライン実装 • 2024年よりCulture & Education Division 教育開発チームを兼務 • 好きな技術スタックはElixir imaima 27
28 『アジャイルデータモデリング』の考え方を、現場でのデータ基盤構築にどう「実践」し、 「具現化」していったか。 キーワード • スキーマ駆動開発 • 曳光弾(えいこうだん)開発 「アジャイル ×
データモデリング」の実践 開発 > 背景
29 • ダッシュボードのモックアップ・イメージはできている、必要そうな生データも手元にある • …でも、いざ作り始めようとすると、 どこから手を付ければ、使えるダッシュボードを最短距離で作れるのか? 背景・課題 開発 > 背景
30 スキーマ駆動開発
31 • データモデリングにおけるスキーマ駆動 (Schema-Driven) ◦ クエリやロジックを実装する前に、テーブル定義、カラム、データ型、リレーションシップといっ たデータの構造 (スキーマ) を先行して定義・設計するアプローチ ◦
開発の安定性と効率性を高めることが目的 データモデリングにおけるスキーマ駆動 開発 > スキーマ駆動開発
32 スキーマ駆動 : アジャイル開発とは相反しない 開発 > スキーマ駆動開発 • … アジャイル開発の「変化への迅速な対応」を重視するスタンスと相反するのでは?
◦ 大事なのは、「かろうじて役に立つ程度のシンプルな初期モデル」構築までに留めておくこと (いきなり完璧なモデルを作り込むことはしない) ◦ 必要最低限の分析や指標に絞ったアウトプットをスキーマ定義するアプローチ、つまり 「ある程度見越して先に考えておく」ことはアジャイルなデータモデリング開発とマッチする
33 アジャイルデータモデリングにおけるスキーマ駆動とは 完璧なスキーマを最初に作り込むのではなく、 将来の拡張性も見据えた『必要最小限のスキーマ』をまず最初に決めておき、 その後の開発や改善はそのスキーマを基準に柔軟に進めていくアプローチ。 開発 > スキーマ駆動開発 将来の拡張性も見据えた、というのは、 変更や追加がしやすいように余白を持たせておく、
という意味です。
34 ステークホルダーの現在の理解を反映し、かつチームが開発を始めるのに必要十分な程度のそこそこ良いモデル を準備することがカギ。 • ダッシュボードのタイルイメージからビジネス要件を整理 • そこから逆算して、各テーブルやカラムの名前、粒度を ざっくり洗い出して『スキーマの仮決め』をする スキーマ駆動開発の準備 開発
> スキーマ駆動開発 > 開発手順
35 スキーマ駆動開発の開発手順 1. アウトプットテーブルの設計 2. インプットのデータソース洗い出し 3. プロセス設計 (概念→論理→物理) 開発
> スキーマ駆動開発 > 開発手順
36 スキーマ駆動開発 : 概念設計イメージ 参考)風音屋TechBlog『データ分析で用いるSQLクエリの設計方法』 https://techblog.kazaneya.com/20241208-design-of-analytical-sql-queries/ ※ 設計ブロックは 一部省略 開発
> スキーマ駆動開発 > 開発手順 1 3 2
37 スキーマ駆動開発 : 論理設計・物理設計イメージ 参考)風音屋TechBlog『データ分析で用いるSQLクエリの設計方法』 https://techblog.kazaneya.com/20241208-design-of-analytical-sql-queries/ 開発 > スキーマ駆動開発 >
開発手順
38 スキーマ駆動開発 : 物理設計からCTE(共通テーブル式)を実装する 開発 > スキーマ駆動開発 > 開発手順
39 曳光弾開発
40 曳光弾開発 • ソフトウェア開発の名著『達人プログラマー』で紹介された手法 • まずシステムの端から端まで一本通してしまう開発アプローチ • 最小限度のものではあるが、最終的な本番システムの骨格を形成するもの として作る (プロトタイピングとの違いは、「捨てる」のではなく「残す」)
曳光弾開発 : すばやく「線を通す」ワンパス実装 開発 > 曳光弾開発 曳光弾は(略)すぐに目標を捉えることができるため、 射撃手は即座にフィードバックが得られるわけです。 (『達人プログラマー(第2版)』 12 曳光弾 )
41 • 最初から完璧なものを作ろうとせずに、ごく小さなデータやアーキテクチャだけでシステム全体が動くこ とを最速で確認する ◦ 『必要なものを、必要な時に、必要なだけ行う (JIT : Just-In–Time)』(※) アジャイルなデータモデリングにおける曳光弾開発
開発 > 曳光弾開発 ※参考)『アジャイルデータモデリング』1.2.4 「データ駆動型分析」
42 • 最初は「とにかく学籍番号が出るところまで」という目標設定で小さく仕上げ、骨格をつくる • これをベースにして徐々に肉付けしていくイメージ 曳光弾開発 : まずは小さく作って動かしていく 開発 >
曳光弾開発
43 曳光弾開発 : 徐々にアーキテクチャを本番仕様へ仕上げていく 開発 > 曳光弾開発
44 まとめ
45 開発パートのまとめ • スキーマ駆動開発で、必要十分な程度のスタートラインを整える • 曳光弾開発によって、まずは最小ワンパスで全部をすばやく通す → 不確実性をクリアにしながら、「現場で動く・育つ」データ基盤を 最速で仕立てる 開発
> まとめ
46 (ローレンス・コル、他)『アジャイルデータウェアハウス』 (デジタル庁)『ダッシュボードデザインの実践ガイドブック』 (アンドリュー・ハント、デヴィッド・トーマス、他)『達人プログラマー(第2版)』 参考文献