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
0
34
段階的なリプレイスを2年続けていたら、 ユーザーのことで悩めるようになっていた話 / Two Years of Incremental Replacement: How We Finally Started Thinking About Our Users
コドモン開発チーム
March 12, 2026
Tweet
Share
More Decks by コドモン開発チーム
See All by コドモン開発チーム
自動テストが巻き起こした開発プロセス・チームの変化 / Impact of Automated Testing on Development Cycles and Team Dynamics
codmoninc
3
1.3k
データエンジニアの副業メンバーを受け入れてよかったこと / good points of hiring side job data engineers
codmoninc
0
34
なぜ秘密の比較に hash_equals を使うのか ー内部実装と実践ガイド / why use hash equals for secret comparison internals and practical guide
codmoninc
1
540
「全部書き直す」をしない選択 ー 巨大SPAと同居しながら小さく始めるフレームワーク移行 ー / We Chose Incremental Refactoring Over a Complete Rewrite
codmoninc
0
82
「Reactを使って良かったこと」 を考えていく中で気づいたこと / insights-from-reflecting-on-react
codmoninc
0
100
レガシー共有バッチ基盤への挑戦 SREドリブンなリアーキテクチャリングの取り組み / Tackling the Legacy Shared Batch Infrastructure: An SRE-Driven Re-architecting Initiative
codmoninc
0
890
テスト自動化を進める上でのマインドセットとしてのXP(エクストリーム・プログラミング) / xp-mindset-for-test-automation
codmoninc
0
1.7k
語られた戦略を 語れる戦略へー共通言語を作るPdMの試み / making-strategy-shareable
codmoninc
8
7.1k
コンテナイメージ脆弱性検知の実践事例 ~ 基礎から応用まで ~ / practical-case-studies-in-container-image-vulnerability-detection
codmoninc
1
150
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
210
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
340
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
300
A Tale of Four Properties
chriscoyier
163
24k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
We Have a Design System, Now What?
morganepeng
55
8k
Six Lessons from altMBA
skipperchong
29
4.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
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 • リプレイス後のポジティブな話にフォーカしましたがたくさんつまづきが あったり、新しい課題も😇 まとめ
ご清聴ありがとうございます