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
段階的なリプレイスを2年続けていたら、 ユーザーのことで悩めるようになっていた話 / Two ...
Search
コドモン開発チーム
March 12, 2026
270
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
段階的なリプレイスを2年続けていたら、 ユーザーのことで悩めるようになっていた話 / Two Years of Incremental Replacement: How We Finally Started Thinking About Our Users
コドモン開発チーム
March 12, 2026
More Decks by コドモン開発チーム
See All by コドモン開発チーム
AIが無かった頃の素敵な出会いの話
codmoninc
1
300
5分で問診!Composer セキュリティ健康診断
codmoninc
0
730
アラート疲れからの脱却 - リソースタグで仕分けるSlack通知戦略 / Breaking Free from Alert Fatigue – A Slack Notification Strategy Using Resource Tags for Routing
codmoninc
0
40
SREに優しいTerraform構成 modulesとstateの組み方 / terraform-modules-state-for-sre
codmoninc
0
380
モノリスなプロダクトの「ほどよい」リプレイス戦略 / A "Just Right" Replacement Strategy for Monolithic Products
codmoninc
0
250
Don't Just Patch — MOTTAINAI! Learn Security from Laravel CVE Diffs
codmoninc
0
260
ソースコードで比較する React / Vue / Svelte の セキュリティ設計思想 / security design philosophy react vue svelte
codmoninc
5
650
少人数SREチームが、長寿なシステムを構築・運用するための取り組み / Efforts by a Small SRE Team to Build and Operate Long-Lived Systems
codmoninc
0
370
フルリモートのその先へ〜パパね、いつも家にいるけどちゃんとこうして働いてるよ〜 / Beyond Full Remote
codmoninc
0
670
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
270
4 Signs Your Business is Dying
shpigford
187
22k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Six Lessons from altMBA
skipperchong
29
4.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Practical Orchestrator
shlominoach
191
11k
sira's awesome portfolio website redesign presentation
elsirapls
0
310
Into the Great Unknown - MozCon
thekraken
41
2.6k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
430
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
230
Deep Space Network (abreviated)
tonyrice
0
240
Transcript
段階的なリプレイスを2年続けていたら、 ユーザーのことで悩めるようになっていた 話
自己紹介
3 名前:ディミトロフ チャブダール 所属:エンジニア・写真販売機能 国籍:ブルガリア 在留資格満了日まであと:1ヶ月 自己紹介
サービス紹介
すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、こども施設職員の業務を支援するWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。 5
None
None
None
テーマ
10 • 直近のリリースの事例から、2年のリプレイス活動で何が変わったかを振 り返ってみる 今日のお話
リプレイスの振り返り
段階的なリプレイスを数年続けた結果、
1番変わったのはコードベースではなく、 何に悩むかだった
14 • リプレイスの戦略 • エンジニアリングで悩める二種類の課題 • 結局 what is 技術負債
• 直近のリリースで振り返り 今日のお話
〜2年リプレイス戦略のおまとめ
None
None
None
*イメージ
集約単位でリプレイス
集約のおさらい
*イメージ
*イメージ 価格設定
*イメージ 価格設定 カート 注文
*イメージ 価格設定 カート 写真 注文
エンジニアリングで悩める二種類の課題
コアドメイン
軽い復習 https://lazebny.io/domain-driven-design-core-supporting-generic-subdomains/
軽い復習 複雑かつ優位性に関わる =コア https://lazebny.io/domain-driven-design-core-supporting-generic-subdomains/
軽い復習 複雑な割には競合優位 性あまり影響ない =非コア https://lazebny.io/domain-driven-design-core-supporting-generic-subdomains/
僕らのコアドメイン
コアに近い
コアに近い コドモンさん、保護者全 員にアンケート送れるよ うになったみたいよ あら、コドモン以外に乗り 換えは考えられないわね
コアに近い
あ、日々の連絡帳写真が買 えるようになってる! かわいい、買っちゃお❤ コアに近い
非コアドメイン
コアから遠い開発?
コアから遠い開発? コドモンさん、価格設定 を全箇所Repositoryから 参照するようリファクタ したらしいわよ
コアから遠い開発? コドモンさん、価格設定 を全箇所Repositoryから 参照するようリファクタ したらしいわよ あら、コドモン以外に乗り 換えは考えられないわね
Coreから遠い開発?
Coreから遠い開発? コドモンさん、リスクを考 慮して共通コンポーネント には手を出さず、新しく実 装することにしたのでね。 もう少し写真買っちゃおう かしら❤
42 • コア・非コアどっちも難しいことがあるが、 ビジネス価値を生むのはコアだけ コア・非コア
what is 技術負債
44 • 技術負債って、 ◦ スパゲティコート ◦ 人類の歴史より長い神スクリプト ◦ なんでも搭載できるDBテーブル ◦
あ、これ自作なんですね ◦ メンテされてなさそうだけど、どうにか動いているライブラリ ◦ これって、hogeを数人でやったらDDoS出来ちゃうってことですかね What is 技術負債
ではなく
46 • 技術負債って、 ◦ エンジニアリングをユーザーの課題ではなく システムを守ることに時間を使うほうがい多い状態 What is 技術負債
47 • リプレイスをしていて一番変わったことは リプレイスを進めて変わったこと
48 • リプレイスをしていて一番変わったことは、 ◦ ユーザー課題にフォーカスできるようになったことだった リプレイスを進めて変わったこと
技術負債 is 非コアの課題で頭を抱える回数 >コアの課題で頭を抱える回数の状態
変更に想定外な副 作用ないかな。。 膨大なテーブル DDL発行で障害お こきないかな どうやってテスタ ブルにしていくと いいんだ
51 ユーザーの課題よりシステムを壊さないことに時間を多く使用 リプレイス前
どうしたら写真の 公開期限にもっと 気づいてもらえる のか どうすればコドモ ンに乗り換えてく れるのか まだ購入したこと のない保護者に対 してキャンペーン
などで、、
53 システムを安全性→ユーザー課題に時間を多く使用 リプレイス後
直近のリリースでみるbefore after
*イメージ 価格設定 カート 写真 注文
連絡帳写真アルバム
連絡帳写真
連絡帳写真 • before ◦ システム都合の議論 ▪ 連絡帳の写真をどう表示してあげる? ▪ 表示はできたとして、どうやってカート、注文とインテグレーション させる?
▪ 10箇所ぐらいif文書く。。?リファクタしてからする?どの程度リ ファクタする? ▪ 仮に10箇所if文書いたとしたら負債の増加許容できる。。?
連絡帳写真 • after ◦ 集まってきた集約等をコラボさせるだけ 価格設定 カート 写真 注文
連絡帳写真 • after ◦ コアドメインに集中 ▪ 連絡帳写真はどう表示する?アルバムとして表示する、月単位? ▪ 表示期間どうする? ▪
公開は月単位で一気にする、それとも都度公開する?
カート内調整
カート内調整
• before ◦ システム都合の議論 ▪ 写真の種類が一緒にカートで追加される前提になっている、カート追 加の際は種類なしにした場合は影響範囲はどこ ▪ カートの内容を更新するにはこの箇所だけで成立するのか、想定外の 副作用はないのか、どうテストする?
▪ このスクリプトにこうすればいけれるとして、負債がどれほど増え る、許容できる?リファクタする? カート内調整
• after ◦ コアドメインに集中 ▪ カート集約を変更するだけ ▪ どういう調整ができるといい? カート内調整 カート
キャンペーン (coming soon?)
coming soon? キャンペーン
• before ◦ システム都合の議論 ▪ 神クラス、神スクリプトのコラボ、どこをどうすれば実現するか取り 替えず調査から。。 ▪ 。。Aキャンペーンならできそうです、Bは結構難しいです キャンペーン
• after ◦ コアドメインに集中 ▪ カート・注文集約を変更 キャンペーン カート 注文
• after ◦ コアドメインに集中 ▪ どういうキャンペーンがしたい? 配送料無料?初回限定?割引?最低購入額?カモンカモンカモン キャンペーン
70 • 負債は、非コア課題に時間を費やさなければいけない状況 • リプレイスを続けたら ◦ どうシステムを壊さずに済むか→どうユーザー課題を解決するか に向き合う時間が増えた🎉 まとめ
71 • リプレイス後のポジティブな話にフォーカしましたがたくさんつまづきが あったり、新しい課題も😇 まとめ
ご清聴ありがとうございます