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
250
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
73
5分で問診!Composer セキュリティ健康診断
codmoninc
0
360
アラート疲れからの脱却 - リソースタグで仕分けるSlack通知戦略 / Breaking Free from Alert Fatigue – A Slack Notification Strategy Using Resource Tags for Routing
codmoninc
0
34
SREに優しいTerraform構成 modulesとstateの組み方 / terraform-modules-state-for-sre
codmoninc
0
360
モノリスなプロダクトの「ほどよい」リプレイス戦略 / A "Just Right" Replacement Strategy for Monolithic Products
codmoninc
0
170
Don't Just Patch — MOTTAINAI! Learn Security from Laravel CVE Diffs
codmoninc
0
240
ソースコードで比較する React / Vue / Svelte の セキュリティ設計思想 / security design philosophy react vue svelte
codmoninc
5
640
少人数SREチームが、長寿なシステムを構築・運用するための取り組み / Efforts by a Small SRE Team to Build and Operate Long-Lived Systems
codmoninc
0
350
フルリモートのその先へ〜パパね、いつも家にいるけどちゃんとこうして働いてるよ〜 / Beyond Full Remote
codmoninc
0
660
Featured
See All Featured
Building an army of robots
kneath
306
46k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.8k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
190
So, you think you're a good person
axbom
PRO
2
2.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
The World Runs on Bad Software
bkeepers
PRO
72
12k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
The Curious Case for Waylosing
cassininazir
1
430
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Paper Plane (Part 1)
katiecoart
PRO
1
9.7k
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 • リプレイス後のポジティブな話にフォーカしましたがたくさんつまづきが あったり、新しい課題も😇 まとめ
ご清聴ありがとうございます