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
少人数チームにおける複数アプリの継続的デリバリー_Yoshihiro Tanaka
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
UPSIDER, Inc. Tech&Product div.
November 12, 2025
1.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
少人数チームにおける複数アプリの継続的デリバリー_Yoshihiro Tanaka
【Flutter特集】Flutter開発の裏側〜各社が向き合う課題と挑戦〜 (
https://findy.connpass.com/event/370621/
)の登壇資料です。
UPSIDER, Inc. Tech&Product div.
November 12, 2025
More Decks by UPSIDER, Inc. Tech&Product div.
See All by UPSIDER, Inc. Tech&Product div.
TypeSpecで繋ぐ複数プロダクトの型安全 — スキーマ共有による「型契約」の実践_mitsui
upsider_tech
0
9
400超のデータポイントを型で制す — UPSIDERの与信審査エンジンを支えるTypeScriptの「柔軟性」と「結合力」_泉雄介
upsider_tech
0
130
フルスタックTypeScriptで挑む、UPSIDER法人審査システムの再構築_Mitomi
upsider_tech
0
320
TypeScriptの型はAIに届いている か?_shotaro
upsider_tech
1
640
AI時代におけるプロダクト開発のあり方 を考える_Akari
upsider_tech
0
150
品質を保ちながら、 プロダクトの核に迫るための取り組み_Tanaka Yoshihiro
upsider_tech
0
240
CxOを動かす会社の条件_Akanuma
upsider_tech
0
210
Temporalを用いた Sagaの実践とプロセスモデリング_konnさん
upsider_tech
0
82
決済基盤を作る人から見た、クレカの裏側_Yuya Tanaka
upsider_tech
0
500
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
GitHub's CSS Performance
jonrohan
1033
470k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
140
Context Engineering - Making Every Token Count
addyosmani
9
960
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Become a Pro
speakerdeck
PRO
31
6k
Transcript
少⼈数チームにおける複数 アプリの継続的デリバリー Yoshihiro Tanaka
Yoshihiro Tanaka • UPSIDER, Inc. • App team • ⼤体
2 年くらい
None
None
None
Agenda 1. App team の役割 2. Team 構成 3. 私たちの課題
4. 課題に対する対応
App team の役割
• いくつかの app と backend を管理するのが主な役割 ◦ UPSIDER ◦ PRESIDENT
CARD ◦ Mobile backend ◦ 今後は White label apps も展開 • App team ⾃⾝でも計測や評価を⾏い、機能を設計している • ⼀部 QA の設計や実施も担っている
Plan Action Analyze Evaluate App team Plan Team B Plan
Team A
Team 構成
• Engineer 3 名 • 全員が Android / iOS /
backend を実装する体制 ◦ Flutter app なので実装コストが⽐較的低い ◦ Backend は Go なのでこちらも学習‧実装コストが抑えられる ◦ 仕様は基本的に全員が把握‧共有する
課題
• 2 つの app / backend を効率よく開発していく必要がある ◦ QA の設計などもあるため、リリースが混み合うと開発⼯数が少なくなる
◦ Hotfix などもその都度発⽣し得る
• UPSIDER app と PRESIDENT CARD app には重複した機能 が多い •
⼀⽅で、それぞれ個別の機能も存在する • A に⼊った機能や修正は B にも⼊れたい
対応
Repository • 数ヶ⽉前に monorepo に変更した • 今までは App, package 別の
repository で管理していたが… ◦ 別の app に機能を持ってくるのが⾯倒 ◦ 修正を⽚⽅に反映するのを忘れる ◦ CI/CD 上での private package の管理が煩雑
App packages UPSIDER And more… PRESIDENT CARD Before
App packages UPSIDER PRESIDENT CARD Shared Package C apps UPSIDER
PRESIDENT CARD Shared Package A Package B After
Development • Pub workspaces を使⽤して管理 • 共通機能に関しては shared 配下の package
に順次切り出す • Apps 配下の shared ◦ まだ package に切り出せていないもの ◦ CI/CD 関連の共通のもの
CI/CD • それぞれの directory の変更に応じて lint などを実⾏する ◦ Package /
Shared が変更された場合はそれぞれが⾛るように
CI/CD • Release 時は namespace で release branch を切り分けて それぞれ
QA 向け、Prod 向けの準備をする ◦ E.g. releases/upsider/v1.0.0
Cons • リリースでどのような差分が⼊ったか把握す るのが難しい ◦ Devin などを活⽤して markdown 形式で書き出させ ている
• Devin などの⾃⽴型 AI agent に repository の構成を教えたり、workspace の setup を ⼯夫する必要がある
Pros • 開発効率は上がっている ◦ 依存関係などもより早く upgrade できるようになった • CI/CD の管理がかなり楽になった
◦ 主に⾃分が管理していたため、個⼈的に⼀番嬉しい
今後の展望
• Cursor, Devin, v0, Claude Code などを活⽤した効率化 ◦ 特に事務作業やリリース作業の効率化を今後も進める •
Figma や Designer との連携強化 • AI を活⽤した E2E test の実施
おわり