Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
新規プロダクトにおけるシステムマイグレーションの判断
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
nacal
September 24, 2025
Technology
29
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新規プロダクトにおけるシステムマイグレーションの判断
nacal
September 24, 2025
More Decks by nacal
See All by nacal
Server-Driven UIで frontendの複雑性に立ち向かう
nacal
0
730
Linterからはじめるa11y
nacal
2
3.2k
Other Decks in Technology
See All in Technology
Tab5をRubyで動くパソコンにする
kishima
2
330
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
470
2026-09-09 【sigma_ucj#1】Sigma を IaC 管理したい! / IaC for Sigma
civitaspo
0
110
AIで仕事のやり方を変える
matsu7874
3
1k
Screen Lens - 今見てる画面を翻訳する
komagata
0
240
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
140
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
180
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
25k
ASTを使って影響範囲を特定する
nealle
0
150
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
120
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
120
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
Designing for humans not robots
tammielis
254
26k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
830
Producing Creativity
orderedlist
PRO
348
41k
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Bash Introduction
62gerente
615
220k
Embracing the Ebb and Flow
colly
88
5.2k
Exploring anti-patterns in Rails
aemeredith
3
500
Designing Powerful Visuals for Engaging Learning
tmiket
1
540
Transcript
1 新規プロダクトにおける システムマイグレーションの判断 nacal GMOペパボ ロリポップ‧ムームードメイン事業部 for Gamersチーム 2025.09.24 10年以上続くプロダクトの苦労と知恵
〜運⽤と技術の本⾳、3社がぶっちゃけます〜
2 ⾃⼰紹介 GMOペパボ ロリポップ‧ムームードメイン事業部 for Gamersチーム 2022年 新卒⼊社 nacal •
Webアプリケーションエンジニア • フロントエンドが好き • 東京からきました • X: @_nacal
None
ロリポップ!for Gamesについて 4 パルワールドのマルチプレイサーバー需要 Webホスティングサービス運⽤のノウハウ 実質13営業⽇でのリリース サービス⽴ち上げの歴史 2024/1/19 パルワールドリリース 2024/2/9
プロジェクト発⾜ 2024/2/29 無料モニター提供開始
ロリポップ!for Gamesについて 5 最速リリースのためのMVP開発 → 機能拡張の際のシステムの構造上の課題が顕著化 我々はこれを、「技術的負債」と呼ぶ 既存のシステム設計のまま機能を拡張していくことは負債を肥⼤化する 1. 我慢してどうにか既存設計に対して機能拡張していく
2. 機能拡張を⽌めて時間を確保してシステムマイグレーションをする 新規プロダクトにおいては機能追加も⼤切なフェーズ サービス安定期の課題
6 技術的負債 𝐓𝐃(𝐒, 𝐞) = 𝙢𝙖𝙭{ 𝐂𝐂(𝐒, 𝐞) - 𝐂𝐂(𝐒’,
𝐞) | 𝐒’ ∈ 𝑺𝒚𝒔(𝐒) } クラウス‧シュミットによる数学的定義 𝐒 システム 𝐞 システムへの変更 𝐂𝐂(𝐒, 𝐞) システムの変更コスト 𝑺𝒚𝒔(𝐒) Sと同⼀機能の別システムの集合 K. Schmid. Technical Debt --- From Metaphor to Engineering Guidance: A Novel Approach based on Cost Estimation. Technical Report 1/2013, SSE 1/13/E, University of Hildesheim, SSE, 2013. (エンジニアリング組織論への招待 第5章 引⽤) 技術的負債は、機能追加時の2つのシステムの⼯数(コスト)の差で表現できる
技術的負債 7 技術的負債の総量とシステムマイグレーションの⼯数を⽐較 クラウス‧シュミットによる数学的定義 追加したい機能:{𝐞₁,𝐞₂} 現在のシステムおける⼯数:𝐂𝐂(𝐒, 𝐞₁) + 𝐂𝐂(𝐒 +
𝐞₁, 𝐞₂) = 30 + 50 = 80⼈⽇ 理想的なシステムにおける⼯数:𝐂𝐂(𝐒’, 𝐞₁) + 𝐂𝐂(𝐒’ + 𝐞₁, 𝐞₂) = 20 + 35 = 55⼈⽇ 技術的負債の総量:80 - 55 = 25⼈⽇ 技術的負債の総量 > システムマイグレーションの⼯数 であれば合理的な判断と⾔える
技術的負債 8 機能拡張の不確実性:実現可能性に関わらず負債として加算される → やるかもしれない機能拡張がたくさんあるフェーズで 単純な総和と⽐較した場合にほとんどの場合で返済の⼯数の⽅が少なくなる “きっと使う"だろう"という予測で作られた機能は、実際には10%程度しか使われない” 再設計においても使われない機能への考慮による複雑性や⼯数が増幅する 新規プロダクトにおける観点
YAGNI原則
9 技術的負債 𝐓𝐃(𝐒, 𝐄) = ∑[𝐢=𝟏 𝐭𝐨 𝐧]𝐅(𝐞 𝐢 )
𝐓𝐃(𝐒, 𝐞 𝐢 ) クラウス‧シュミットによる数学的定義の拡張 𝐄 システムへの変更の集合 𝐅(𝐞 𝐢 ) 実現可能性 𝐓𝐃(𝐒, 𝐞 𝐢 ) 変更iに対する技術的負債の総量 機能拡張の不確実性を数式に落とし込む
技術的負債 10 - 不確実性の考慮を⼊れることで、「きっと使うだろう機能」の⼯数への影響を減らす - 𝐅(𝐞 𝐢 )を軸として、再設計も主に実現可能性の⾼い機能に対して実施する 数値的根拠 +
不確実性を考慮した合理的判断 ロリポップ!for Gamersでは結果的にシステムマイグレーションの優位性を⽰して実施 1. 実現可能性の⾼い3つの機能の現在のシステムにおける⼯数算出 2. それぞれに対する理想のシステムの考察 3. 理想のシステムにおける⼯数算出 4. 数式に当てはめて判断 クラウス‧シュミットによる数学的定義の拡張
まとめ - 技術的負債は、機能追加時の2つのシステムの⼯数(コスト)の差で表現できる - 機能追加の不確実性が⾼いプロダクトにおいては単純な総和では過剰になる - 不確実性を考慮することで実際の負債により近い値を出す - 数値的根拠 +
不確実性を考慮した合理的判断 - 再設計をする際も不確実性の⾼いものを考慮しすぎないようにする 11
12 Thank you!