段階的なリプレイスを2年続けていたら、 ユーザーのことで悩めるようになっていた話 / Two Years of Incremental Replacement: How We Finally Started Thinking About Our Users
by
コドモン開発チーム
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
段階的なリプレイスを2年続けていたら、 ユーザーのことで悩めるようになっていた 話
Slide 2
Slide 2 text
自己紹介
Slide 3
Slide 3 text
3 名前:ディミトロフ チャブダール 所属:エンジニア・写真販売機能 国籍:ブルガリア 在留資格満了日まであと:1ヶ月 自己紹介
Slide 4
Slide 4 text
サービス紹介
Slide 5
Slide 5 text
すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、こども施設職員の業務を支援するWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。 5
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
テーマ
Slide 10
Slide 10 text
10 ● 直近のリリースの事例から、2年のリプレイス活動で何が変わったかを振 り返ってみる 今日のお話
Slide 11
Slide 11 text
リプレイスの振り返り
Slide 12
Slide 12 text
段階的なリプレイスを数年続けた結果、
Slide 13
Slide 13 text
1番変わったのはコードベースではなく、 何に悩むかだった
Slide 14
Slide 14 text
14 ● リプレイスの戦略 ● エンジニアリングで悩める二種類の課題 ● 結局 what is 技術負債 ● 直近のリリースで振り返り 今日のお話
Slide 15
Slide 15 text
〜2年リプレイス戦略のおまとめ
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
*イメージ
Slide 20
Slide 20 text
集約単位でリプレイス
Slide 21
Slide 21 text
集約のおさらい
Slide 22
Slide 22 text
*イメージ
Slide 23
Slide 23 text
*イメージ 価格設定
Slide 24
Slide 24 text
*イメージ 価格設定 カート 注文
Slide 25
Slide 25 text
*イメージ 価格設定 カート 写真 注文
Slide 26
Slide 26 text
エンジニアリングで悩める二種類の課題
Slide 27
Slide 27 text
コアドメイン
Slide 28
Slide 28 text
軽い復習 https://lazebny.io/domain-driven-design-core-supporting-generic-subdomains/
Slide 29
Slide 29 text
軽い復習 複雑かつ優位性に関わる =コア https://lazebny.io/domain-driven-design-core-supporting-generic-subdomains/
Slide 30
Slide 30 text
軽い復習 複雑な割には競合優位 性あまり影響ない =非コア https://lazebny.io/domain-driven-design-core-supporting-generic-subdomains/
Slide 31
Slide 31 text
僕らのコアドメイン
Slide 32
Slide 32 text
コアに近い
Slide 33
Slide 33 text
コアに近い コドモンさん、保護者全 員にアンケート送れるよ うになったみたいよ あら、コドモン以外に乗り 換えは考えられないわね
Slide 34
Slide 34 text
コアに近い
Slide 35
Slide 35 text
あ、日々の連絡帳写真が買 えるようになってる! かわいい、買っちゃお❤ コアに近い
Slide 36
Slide 36 text
非コアドメイン
Slide 37
Slide 37 text
コアから遠い開発?
Slide 38
Slide 38 text
コアから遠い開発? コドモンさん、価格設定 を全箇所Repositoryから 参照するようリファクタ したらしいわよ
Slide 39
Slide 39 text
コアから遠い開発? コドモンさん、価格設定 を全箇所Repositoryから 参照するようリファクタ したらしいわよ あら、コドモン以外に乗り 換えは考えられないわね
Slide 40
Slide 40 text
Coreから遠い開発?
Slide 41
Slide 41 text
Coreから遠い開発? コドモンさん、リスクを考 慮して共通コンポーネント には手を出さず、新しく実 装することにしたのでね。 もう少し写真買っちゃおう かしら❤
Slide 42
Slide 42 text
42 ● コア・非コアどっちも難しいことがあるが、 ビジネス価値を生むのはコアだけ コア・非コア
Slide 43
Slide 43 text
what is 技術負債
Slide 44
Slide 44 text
44 ● 技術負債って、 ○ スパゲティコート ○ 人類の歴史より長い神スクリプト ○ なんでも搭載できるDBテーブル ○ あ、これ自作なんですね ○ メンテされてなさそうだけど、どうにか動いているライブラリ ○ これって、hogeを数人でやったらDDoS出来ちゃうってことですかね What is 技術負債
Slide 45
Slide 45 text
ではなく
Slide 46
Slide 46 text
46 ● 技術負債って、 ○ エンジニアリングをユーザーの課題ではなく システムを守ることに時間を使うほうがい多い状態 What is 技術負債
Slide 47
Slide 47 text
47 ● リプレイスをしていて一番変わったことは リプレイスを進めて変わったこと
Slide 48
Slide 48 text
48 ● リプレイスをしていて一番変わったことは、 ○ ユーザー課題にフォーカスできるようになったことだった リプレイスを進めて変わったこと
Slide 49
Slide 49 text
技術負債 is 非コアの課題で頭を抱える回数 >コアの課題で頭を抱える回数の状態
Slide 50
Slide 50 text
変更に想定外な副 作用ないかな。。 膨大なテーブル DDL発行で障害お こきないかな どうやってテスタ ブルにしていくと いいんだ
Slide 51
Slide 51 text
51 ユーザーの課題よりシステムを壊さないことに時間を多く使用 リプレイス前
Slide 52
Slide 52 text
どうしたら写真の 公開期限にもっと 気づいてもらえる のか どうすればコドモ ンに乗り換えてく れるのか まだ購入したこと のない保護者に対 してキャンペーン などで、、
Slide 53
Slide 53 text
53 システムを安全性→ユーザー課題に時間を多く使用 リプレイス後
Slide 54
Slide 54 text
直近のリリースでみるbefore after
Slide 55
Slide 55 text
*イメージ 価格設定 カート 写真 注文
Slide 56
Slide 56 text
連絡帳写真アルバム
Slide 57
Slide 57 text
連絡帳写真
Slide 58
Slide 58 text
連絡帳写真 ● before ○ システム都合の議論 ■ 連絡帳の写真をどう表示してあげる? ■ 表示はできたとして、どうやってカート、注文とインテグレーション させる? ■ 10箇所ぐらいif文書く。。?リファクタしてからする?どの程度リ ファクタする? ■ 仮に10箇所if文書いたとしたら負債の増加許容できる。。?
Slide 59
Slide 59 text
連絡帳写真 ● after ○ 集まってきた集約等をコラボさせるだけ 価格設定 カート 写真 注文
Slide 60
Slide 60 text
連絡帳写真 ● after ○ コアドメインに集中 ■ 連絡帳写真はどう表示する?アルバムとして表示する、月単位? ■ 表示期間どうする? ■ 公開は月単位で一気にする、それとも都度公開する?
Slide 61
Slide 61 text
カート内調整
Slide 62
Slide 62 text
カート内調整
Slide 63
Slide 63 text
● before ○ システム都合の議論 ■ 写真の種類が一緒にカートで追加される前提になっている、カート追 加の際は種類なしにした場合は影響範囲はどこ ■ カートの内容を更新するにはこの箇所だけで成立するのか、想定外の 副作用はないのか、どうテストする? ■ このスクリプトにこうすればいけれるとして、負債がどれほど増え る、許容できる?リファクタする? カート内調整
Slide 64
Slide 64 text
● after ○ コアドメインに集中 ■ カート集約を変更するだけ ■ どういう調整ができるといい? カート内調整 カート
Slide 65
Slide 65 text
キャンペーン (coming soon?)
Slide 66
Slide 66 text
coming soon? キャンペーン
Slide 67
Slide 67 text
● before ○ システム都合の議論 ■ 神クラス、神スクリプトのコラボ、どこをどうすれば実現するか取り 替えず調査から。。 ■ 。。Aキャンペーンならできそうです、Bは結構難しいです キャンペーン
Slide 68
Slide 68 text
● after ○ コアドメインに集中 ■ カート・注文集約を変更 キャンペーン カート 注文
Slide 69
Slide 69 text
● after ○ コアドメインに集中 ■ どういうキャンペーンがしたい? 配送料無料?初回限定?割引?最低購入額?カモンカモンカモン キャンペーン
Slide 70
Slide 70 text
70 ● 負債は、非コア課題に時間を費やさなければいけない状況 ● リプレイスを続けたら ○ どうシステムを壊さずに済むか→どうユーザー課題を解決するか に向き合う時間が増えた🎉 まとめ
Slide 71
Slide 71 text
71 ● リプレイス後のポジティブな話にフォーカしましたがたくさんつまづきが あったり、新しい課題も😇 まとめ
Slide 72
Slide 72 text
ご清聴ありがとうございます