Slide 1

Slide 1 text

© Findy Inc. 2024.12.03 ファインディの4年にわたる 技術的負債の返済 1 技術的負債返済の意義を考える、あの時の"やる‧やらない"判断基準どうしてた? Findy CTO 佐藤 将⾼(@ma3tk)

Slide 2

Slide 2 text

© Findy Inc. こんにちは! 2

Slide 3

Slide 3 text

© Findy Inc. 師⾛ですね!!! 3

Slide 4

Slide 4 text

© Findy Inc. 今までの負債の解消の歴史と 負債を減らし続ける仕組みづくりの話 4

Slide 5

Slide 5 text

© Findy Inc. 簡単に会社紹介 5

Slide 6

Slide 6 text

© 2024 Findy Inc. 挑戦するエンジニアの プラットフォームをつくる。 ビジョン つくる⼈がもっとかがやけば、 世界はきっと豊かになる。 経営理念 会社概要 会社名 ファインディ株式会社 / Findy Inc. 代表取締役 ⼭⽥ 裕⼀朗 設⽴ 2014 年 2 ⽉ ※ 本格的な事業開始は2016年7⽉ 社員数 282 名 (2024年12⽉現在) 資本⾦ 18 億 5,043 万円 ※ 資本準備⾦含む 住所 東京都品川区大崎1-2-2 アートヴィレッジ大崎セントラルタワー 5階 事業許可番号 13-ユ-308478 サービス ‧ スカウト型リクルーティングサービス「Findy」 ‧ ハイスキルな業務委託エンジニア紹介サービス「Findy Freelance」 ‧ エンジニア組織⽀援SaaS「Findy Team+」 ‧ 開発ツールに特化したレビューサイト「Findy Tools」 投資家 グローバル‧ブレイン、ユナイテッド、SMBCベンチャーキャピタル、KDDI、JA三 井リース、みずほキャピタル、博報堂DYベンチャーズ、Carbide Ventures、等

Slide 7

Slide 7 text

© Findy Inc. ● ファインディの2020年は⼤きな転換 ○ 当時の状況と背景 ○ 数年がかりの取り組み ○ 今の状況 ● 現在でも減らし続ける仕組み ● まとめ アジェンダ 7

Slide 8

Slide 8 text

© Findy Inc. ● ファインディの2020年は⼤きな転換 ○ 当時の状況と背景 ○ 数年がかりの取り組み ○ 今の状況 ● 現在でも減らし続ける仕組み ● まとめ アジェンダ 8

Slide 9

Slide 9 text

© Findy Inc. ファインディの2020年は⼤きな転換 9

Slide 10

Slide 10 text

© Findy Inc. ● 組織体制 2020年のファインディの組織 10

Slide 11

Slide 11 text

© Findy Inc. ● 組織体制 ○ フルタイムエンジニア5-6名程度 2020年のファインディの組織 11

Slide 12

Slide 12 text

© Findy Inc. ● 組織体制 ○ フルタイムエンジニア5-6名程度 ○ 開発速度の遅さが全体で課題に 2020年のファインディの組織 12

Slide 13

Slide 13 text

© Findy Inc. ● 組織体制 ○ フルタイムエンジニア5-6名程度 ○ 開発速度の遅さが全体で課題に ■ メンバーは献⾝的にコミットしてくれているものの、組織で仕組みを変えない といけない部分が多々あった 2020年のファインディの組織 13

Slide 14

Slide 14 text

© Findy Inc. 2020年の課題と技術的負債 14

Slide 15

Slide 15 text

© Findy Inc. 2020年のファインディの課題 15

Slide 16

Slide 16 text

© Findy Inc. ● 技術的課題 2020年のファインディの課題 16

Slide 17

Slide 17 text

© Findy Inc. ● 技術的課題 ○ Backend/Frontendが同⼀サーバーで密結合 ○ 古いライブラリバージョンとセキュリティも⼼配 ○ 不安定なコードベース ○ テストコードの不⾜ ○ 認知負荷の⾼いコード ○ インフラの⽼朽化 2020年のファインディの課題 17

Slide 18

Slide 18 text

© Findy Inc. ● 技術的課題 ○ Backend/Frontendが同⼀サーバーで密結合 ○ 古いライブラリバージョンとセキュリティも⼼配 ○ 不安定なコードベース ○ テストコードの不⾜ ○ 認知負荷の⾼いコード ○ インフラの⽼朽化 ● 開発プロセスの課題 2020年のファインディの課題 18

Slide 19

Slide 19 text

© Findy Inc. ● 技術的課題 ○ Backend/Frontendが同⼀サーバーで密結合 ○ 古いライブラリバージョンとセキュリティも⼼配 ○ 不安定なコードベース ○ テストコードの不⾜ ○ 認知負荷の⾼いコード ○ インフラの⽼朽化 ● 開発プロセスの課題 ○ リリースは週1回が限界 ○ PR30件以上が常時滞留 ○ ⾼い障害発⽣率 ○ レビュー質の低下 ○ コンフリクトの頻発 ○ リリース作業に半⽇以上必要 2020年のファインディの課題 19

Slide 20

Slide 20 text

© Findy Inc. ● 技術的課題 ○ Backend/Frontendが同⼀サーバーで密結合 ○ 古いライブラリバージョンとセキュリティも⼼配 ○ 不安定なコードベース ○ テストコードの不⾜ ○ 認知負荷の⾼いコード ○ インフラの⽼朽化 ● 開発プロセスの課題 ○ リリースは週1回が限界 ○ PR30件以上が常時滞留 ○ ⾼い障害発⽣率 ○ レビュー質の低下 ○ コンフリクトの頻発 ○ リリース作業に半⽇以上必要 2020年のファインディの課題 20 ものすごい課題感が多かった

Slide 21

Slide 21 text

© Findy Inc. 過去の主な技術的負債 21

Slide 22

Slide 22 text

© Findy Inc. ● システム構成の問題 過去の主な技術的負債 22

Slide 23

Slide 23 text

© Findy Inc. ● システム構成の問題 ○ Backend/Frontendが同⼀サーバー上で動作 ○ サーバー負荷が画⾯表⽰に直結 ○ APIと画⾯の密結合による開発の⾮効率 ○ Backend/Frontendの同時リリースが必須 過去の主な技術的負債 23

Slide 24

Slide 24 text

© Findy Inc. ● システム構成の問題 ○ Backend/Frontendが同⼀サーバー上で動作 ○ サーバー負荷が画⾯表⽰に直結 ○ APIと画⾯の密結合による開発の⾮効率 ○ Backend/Frontendの同時リリースが必須 ● コードベースの課題 過去の主な技術的負債 24

Slide 25

Slide 25 text

© Findy Inc. ● システム構成の問題 ○ Backend/Frontendが同⼀サーバー上で動作 ○ サーバー負荷が画⾯表⽰に直結 ○ APIと画⾯の密結合による開発の⾮効率 ○ Backend/Frontendの同時リリースが必須 ● コードベースの課題 ○ テストコードの圧倒的な不⾜ ○ セキュリティアップデートができていない状態 ○ ⼤規模なPRによるレビュー効率の低下 ○ コンフリクト解消のための無駄なコミュニケーション 過去の主な技術的負債 25

Slide 26

Slide 26 text

© Findy Inc. ● システム構成の問題 ○ Backend/Frontendが同⼀サーバー上で動作 ○ サーバー負荷が画⾯表⽰に直結 ○ APIと画⾯の密結合による開発の⾮効率 ○ Backend/Frontendの同時リリースが必須 ● コードベースの課題 ○ テストコードの圧倒的な不⾜ ○ セキュリティアップデートができていない状態 ○ ⼤規模なPRによるレビュー効率の低下 ○ コンフリクト解消のための無駄なコミュニケーション 過去の主な技術的負債 26 伸びしろが多かった…

Slide 27

Slide 27 text

© Findy Inc. なぜ負債が⼤きかったのか? 27

Slide 28

Slide 28 text

© Findy Inc. 技術的負債が⽣まれた背景 28

Slide 29

Slide 29 text

© Findy Inc. ● 最初はお⾦がなかったので、1回⽬のリリースが⼤事だった 技術的負債が⽣まれた背景 29

Slide 30

Slide 30 text

© Findy Inc. ● 最初はお⾦がなかったので、1回⽬のリリースが⼤事だった ○ 当時はそれでよかった 技術的負債が⽣まれた背景 30

Slide 31

Slide 31 text

© Findy Inc. ● 最初はお⾦がなかったので、1回⽬のリリースが⼤事だった ○ 当時はそれでよかった ○ 知⾒もなく、頼れる⼈もいなかったので最速で出せる⽅法を編み出した ■ フロントエンドとバックエンドとインフラを1⼈で構築して多くの⼈に提供した ことがなかった 技術的負債が⽣まれた背景 31

Slide 32

Slide 32 text

© Findy Inc. ● 最初はお⾦がなかったので、1回⽬のリリースが⼤事だった ○ 当時はそれでよかった ○ 知⾒もなく、頼れる⼈もいなかったので最速で出せる⽅法を編み出した ■ フロントエンドとバックエンドとインフラを1⼈で構築して多くの⼈に提供した ことがなかった ○ DesignDocとしてコンテキストを残せなかった ■ 僕のみぞ知り、他のメンバーは知らなかった ■ 聞いてくれればいいじゃん、と思っていた ● あんなに前職でドキュメント書いていたのに… 技術的負債が⽣まれた背景 32

Slide 33

Slide 33 text

© Findy Inc. ● 最初はお⾦がなかったので、1回⽬のリリースが⼤事だった ○ 当時はそれでよかった ○ 知⾒もなく、頼れる⼈もいなかったので最速で出せる⽅法を編み出した ■ フロントエンドとバックエンドとインフラを1⼈で構築して多くの⼈に提供した ことがなかった ○ DesignDocとしてコンテキストを残せなかった ■ 僕のみぞ知り、他のメンバーは知らなかった ■ 聞いてくれればいいじゃん、と思っていた ● あんなに前職でドキュメント書いていたのに… ● 新規開発が優先で、負債を解消するための採⽤ができなかった 技術的負債が⽣まれた背景 33

Slide 34

Slide 34 text

© Findy Inc. ● 最初はお⾦がなかったので、1回⽬のリリースが⼤事だった ○ 当時はそれでよかった ○ 知⾒もなく、頼れる⼈もいなかったので最速で出せる⽅法を編み出した ■ フロントエンドとバックエンドとインフラを1⼈で構築して多くの⼈に提供した ことがなかった ○ DesignDocとしてコンテキストを残せなかった ■ 僕のみぞ知り、他のメンバーは知らなかった ■ 聞いてくれればいいじゃん、と思っていた ● あんなに前職でドキュメント書いていたのに… ● 新規開発が優先で、負債を解消するための採⽤ができなかった ● 当初の仕様から⼤きく変わった時にそのまま機能を利⽤してしまった ● … 技術的負債が⽣まれた背景 34

Slide 35

Slide 35 text

© Findy Inc. ● 最初はお⾦がなかったので、1回⽬のリリースが⼤事だった ○ 当時はそれでよかった ○ 知⾒もなく、頼れる⼈もいなかったので最速で出せる⽅法を編み出した ■ フロントエンドとバックエンドとインフラを1⼈で構築して多くの⼈に提供した ことがなかった ○ DesignDocとしてコンテキストを残せなかった ■ 僕のみぞ知り、他のメンバーは知らなかった ■ 聞いてくれればいいじゃん、と思っていた ● あんなに前職でドキュメント書いていたのに… ● 新規開発が優先で、負債を解消するための採⽤ができなかった ● 当初の仕様から⼤きく変わった時にそのまま機能を利⽤してしまった ● … 技術的負債が⽣まれた背景 35 どうやって改善に向けて⾛ったのか?

Slide 36

Slide 36 text

© Findy Inc. 変⾰に向けた取り組み 6つ 36

Slide 37

Slide 37 text

© Findy Inc. ● 取り組み①:テスト⽂化の確⽴ ● 取り組み②:デプロイ⾃動化 ● 取り組み③:モノリス解体 ● 取り組み④:フロントエンド刷新 ● 取り組み⑤:インフラ刷新 ● 取り組み⑥:GraphQL化 変⾰への取り組み6つ 37

Slide 38

Slide 38 text

© Findy Inc. 変⾰への取り組み①:テスト⽂化の確⽴ 38

Slide 39

Slide 39 text

© Findy Inc. ● 直⾯した障壁 変⾰への取り組み①:テスト⽂化の確⽴ 39

Slide 40

Slide 40 text

© Findy Inc. ● 直⾯した障壁 ○ テスト作成経験者の不⾜ ○ テストの価値への理解不⾜ ○ 「新規開発をたくさん作ってほしい」というニーズ 変⾰への取り組み①:テスト⽂化の確⽴ 40

Slide 41

Slide 41 text

© Findy Inc. ● 直⾯した障壁 ○ テスト作成経験者の不⾜ ○ テストの価値への理解不⾜ ○ 「新規開発をたくさん作ってほしい」というニーズ ● 実施したアプローチ 変⾰への取り組み①:テスト⽂化の確⽴ 41

Slide 42

Slide 42 text

© Findy Inc. ● 直⾯した障壁 ○ テスト作成経験者の不⾜ ○ テストの価値への理解不⾜ ○ 「新規開発をたくさん作ってほしい」というニーズ ● 実施したアプローチ ○ Findy Team+プロジェクトでの実証実験 ○ バックエンドテストでの⾼カバレッジ実現 ○ 効果の可視化と全社的な理解促進 変⾰への取り組み①:テスト⽂化の確⽴ 42

Slide 43

Slide 43 text

© Findy Inc. ● 直⾯した障壁 ○ テスト作成経験者の不⾜ ○ テストの価値への理解不⾜ ○ 「新規開発をたくさん作ってほしい」というニーズ ● 実施したアプローチ ○ Findy Team+プロジェクトでの実証実験 ○ バックエンドテストでの⾼カバレッジ実現 ○ 効果の可視化と全社的な理解促進 ● 得られた成果 変⾰への取り組み①:テスト⽂化の確⽴ 43

Slide 44

Slide 44 text

© Findy Inc. ● 直⾯した障壁 ○ テスト作成経験者の不⾜ ○ テストの価値への理解不⾜ ○ 「新規開発をたくさん作ってほしい」というニーズ ● 実施したアプローチ ○ Findy Team+プロジェクトでの実証実験 ○ バックエンドテストでの⾼カバレッジ実現 ○ 効果の可視化と全社的な理解促進 ● 得られた成果 ○ テストカバレッジ95%超を達成 ○ リリース後の障害が激減 ○ dependabotによる⾃動アップデートが可能に ○ セキュリティホールの解消 ○ 不具合発⽣時の迅速な対応が可能に 変⾰への取り組み①:テスト⽂化の確⽴ 44

Slide 45

Slide 45 text

© Findy Inc. 変⾰への取り組み②:デプロイ⾃動化 45

Slide 46

Slide 46 text

© Findy Inc. ● 移⾏前の状況 変⾰への取り組み②:デプロイ⾃動化 46

Slide 47

Slide 47 text

© Findy Inc. ● 移⾏前の状況 ○ CircleCIでのビルド ○ AWS Codepipelineでのデプロイ ○ EBの⼿動swap ○ 複雑な⼿順と時間のかかるデプロイフロー 変⾰への取り組み②:デプロイ⾃動化 47

Slide 48

Slide 48 text

© Findy Inc. ● 移⾏前の状況 ○ CircleCIでのビルド ○ AWS Codepipelineでのデプロイ ○ EBの⼿動swap ○ 複雑な⼿順と時間のかかるデプロイフロー ● 実現した改善 変⾰への取り組み②:デプロイ⾃動化 48

Slide 49

Slide 49 text

© Findy Inc. ● 移⾏前の状況 ○ CircleCIでのビルド ○ AWS Codepipelineでのデプロイ ○ EBの⼿動swap ○ 複雑な⼿順と時間のかかるデプロイフロー ● 実現した改善 ○ GitHub Actionsへの完全移⾏ ○ デプロイプロセスの完全⾃動化 ○ CIのキュー待ち解消 ○ 年間30万円のコスト削減 変⾰への取り組み②:デプロイ⾃動化 49

Slide 50

Slide 50 text

© Findy Inc. 変⾰への取り組み③:モノリス解体 50

Slide 51

Slide 51 text

© Findy Inc. ● 分割前の課題 変⾰への取り組み③:モノリス解体 51

Slide 52

Slide 52 text

© Findy Inc. ● 分割前の課題 ○ Backend/Frontend密結合による⾮効率 ○ ⽂字修正でも半⽇かかるリリース ○ サーバー負荷による画⾯表⽰への影響 ○ PRの⼤規模化とレビュー遅延 ○ 頻発するコンフリクト 変⾰への取り組み③:モノリス解体 52

Slide 53

Slide 53 text

© Findy Inc. ● 分割前の課題 ○ Backend/Frontend密結合による⾮効率 ○ ⽂字修正でも半⽇かかるリリース ○ サーバー負荷による画⾯表⽰への影響 ○ PRの⼤規模化とレビュー遅延 ○ 頻発するコンフリクト ● 実施内容と決断 変⾰への取り組み③:モノリス解体 53

Slide 54

Slide 54 text

© Findy Inc. ● 分割前の課題 ○ Backend/Frontend密結合による⾮効率 ○ ⽂字修正でも半⽇かかるリリース ○ サーバー負荷による画⾯表⽰への影響 ○ PRの⼤規模化とレビュー遅延 ○ 頻発するコンフリクト ● 実施内容と決断 ○ Backend/Frontendの完全分離 ○ 開発プロセスの抜本的⾒直し ○ 中途サービスの3ヶ⽉開発停⽌ ○ unit testによる安全性担保 変⾰への取り組み③:モノリス解体 54

Slide 55

Slide 55 text

© Findy Inc. ● 分割前の課題 ○ Backend/Frontend密結合による⾮効率 ○ ⽂字修正でも半⽇かかるリリース ○ サーバー負荷による画⾯表⽰への影響 ○ PRの⼤規模化とレビュー遅延 ○ 頻発するコンフリクト ● 実施内容と決断 ○ Backend/Frontendの完全分離 ○ 開発プロセスの抜本的⾒直し ○ 中途サービスの3ヶ⽉開発停⽌ ○ unit testによる安全性担保 ● 分割後の効果 変⾰への取り組み③:モノリス解体 55

Slide 56

Slide 56 text

© Findy Inc. ● 分割前の課題 ○ Backend/Frontend密結合による⾮効率 ○ ⽂字修正でも半⽇かかるリリース ○ サーバー負荷による画⾯表⽰への影響 ○ PRの⼤規模化とレビュー遅延 ○ 頻発するコンフリクト ● 実施内容と決断 ○ Backend/Frontendの完全分離 ○ 開発プロセスの抜本的⾒直し ○ 中途サービスの3ヶ⽉開発停⽌ ○ unit testによる安全性担保 ● 分割後の効果 ○ リリース頻度が週1から1⽇数回(フロント/バック) ○ ⽂字修正が数分で本番反映可能に ○ PR粒度の最適化 ○ レビュー効率の⼤幅向上 ○ コンフリクト発⽣の激減 変⾰への取り組み③:モノリス解体 56

Slide 57

Slide 57 text

© Findy Inc. 変⾰への取り組み④:フロントエンド刷新 57

Slide 58

Slide 58 text

© Findy Inc. ● 刷新前の技術的課題 変⾰への取り組み④:フロントエンド刷新 58

Slide 59

Slide 59 text

© Findy Inc. ● 刷新前の技術的課題 ○ Class Componentによる制約 ○ Flow型システムの限界 ○ Redux依存による画⾯間の強結合 ○ Componentの設計不備 ○ テストの⽋如 変⾰への取り組み④:フロントエンド刷新 59

Slide 60

Slide 60 text

© Findy Inc. ● 刷新前の技術的課題 ○ Class Componentによる制約 ○ Flow型システムの限界 ○ Redux依存による画⾯間の強結合 ○ Componentの設計不備 ○ テストの⽋如 ● 実施した改善 変⾰への取り組み④:フロントエンド刷新 60

Slide 61

Slide 61 text

© Findy Inc. ● 刷新前の技術的課題 ○ Class Componentによる制約 ○ Flow型システムの限界 ○ Redux依存による画⾯間の強結合 ○ Componentの設計不備 ○ テストの⽋如 ● 実施した改善 ○ Nxの導⼊ ○ Function Componentへの完全移⾏ ○ unit testの拡充 ○ フォルダ構成の⾒直し ○ Reduxへの過度な依存からの脱却 ○ component設計の刷新 変⾰への取り組み④:フロントエンド刷新 61

Slide 62

Slide 62 text

© Findy Inc. ● 刷新前の技術的課題 ○ Class Componentによる制約 ○ Flow型システムの限界 ○ Redux依存による画⾯間の強結合 ○ Componentの設計不備 ○ テストの⽋如 ● 実施した改善 ○ Nxの導⼊ ○ Function Componentへの完全移⾏ ○ unit testの拡充 ○ フォルダ構成の⾒直し ○ Reduxへの過度な依存からの脱却 ○ component設計の刷新 ● 得られた効果 変⾰への取り組み④:フロントエンド刷新 62

Slide 63

Slide 63 text

© Findy Inc. ● 刷新前の技術的課題 ○ Class Componentによる制約 ○ Flow型システムの限界 ○ Redux依存による画⾯間の強結合 ○ Componentの設計不備 ○ テストの⽋如 ● 実施した改善 ○ Nxの導⼊ ○ Function Componentへの完全移⾏ ○ unit testの拡充 ○ フォルダ構成の⾒直し ○ Reduxへの過度な依存からの脱却 ○ component設計の刷新 ● 得られた効果 ○ キャッシュによる迅速な切り戻し ○ 画⾯間の影響度低減 ○ 開発効率の向上 ○ 保守性の改善 変⾰への取り組み④:フロントエンド刷新 63

Slide 64

Slide 64 text

© Findy Inc. 変⾰への取り組み⑤:インフラ刷新 64

Slide 65

Slide 65 text

© Findy Inc. ● EBからFargateへの移⾏ 変⾰への取り組み⑤:インフラ刷新 65

Slide 66

Slide 66 text

© Findy Inc. ● EBからFargateへの移⾏ ○ Elastic Beanstalkからの完全移⾏ ○ GitHub Actionsによる⾃動化実現 ○ インフラ管理コストの⼤幅削減 変⾰への取り組み⑤:インフラ刷新 66

Slide 67

Slide 67 text

© Findy Inc. ● EBからFargateへの移⾏ ○ Elastic Beanstalkからの完全移⾏ ○ GitHub Actionsによる⾃動化実現 ○ インフラ管理コストの⼤幅削減 ● 実現した改善 変⾰への取り組み⑤:インフラ刷新 67

Slide 68

Slide 68 text

© Findy Inc. ● EBからFargateへの移⾏ ○ Elastic Beanstalkからの完全移⾏ ○ GitHub Actionsによる⾃動化実現 ○ インフラ管理コストの⼤幅削減 ● 実現した改善 ○ リリース作業の完全⾃動化 ○ 切り戻しの容易化 ○ 運⽤負荷の激減 ○ インフラ管理の効率化 変⾰への取り組み⑤:インフラ刷新 68

Slide 69

Slide 69 text

© Findy Inc. 変⾰への取り組み⑥:GraphQL化 69

Slide 70

Slide 70 text

© Findy Inc. ● 段階的なアプローチ 変⾰への取り組み⑥:GraphQL化 70

Slide 71

Slide 71 text

© Findy Inc. ● 段階的なアプローチ ○ 内部向け管理画⾯での検証と実装 ○ 企業向け画⾯からの段階的移⾏ ○ 問題のある画⾯の完全リプレイス 変⾰への取り組み⑥:GraphQL化 71

Slide 72

Slide 72 text

© Findy Inc. ● 段階的なアプローチ ○ 内部向け管理画⾯での検証と実装 ○ 企業向け画⾯からの段階的移⾏ ○ 問題のある画⾯の完全リプレイス ● 現在 変⾰への取り組み⑥:GraphQL化 72

Slide 73

Slide 73 text

© Findy Inc. ● 段階的なアプローチ ○ 内部向け管理画⾯での検証と実装 ○ 企業向け画⾯からの段階的移⾏ ○ 問題のある画⾯の完全リプレイス ● 現在 ○ ほぼGraphQLが当たり前の状況にリプレイス完了 ○ ⼀部RestAPIもある 変⾰への取り組み⑥:GraphQL化 73

Slide 74

Slide 74 text

© Findy Inc. ファインディの現在は? 74

Slide 75

Slide 75 text

© Findy Inc. 2024年のファインディの組織 75

Slide 76

Slide 76 text

© Findy Inc. ● フルタイムエンジニア60名程度 2024年のファインディの組織 76

Slide 77

Slide 77 text

© Findy Inc. ● フルタイムエンジニア60名程度 ● 社員全体で282名になった 2024年のファインディの組織 77

Slide 78

Slide 78 text

© Findy Inc. ● フルタイムエンジニア60名程度 ● 社員全体で282名になった ● 技術的負債にも取り組みながら、施策開発も同時に⾏える体制になった 2024年のファインディの組織 78

Slide 79

Slide 79 text

© Findy Inc. 現在の技術⾯と開発プロセス 79

Slide 80

Slide 80 text

© Findy Inc. ● 技術⾯での改善 現在の技術⾯と開発プロセス 80

Slide 81

Slide 81 text

© Findy Inc. ● 技術⾯での改善 ○ テストカバレッジ95-99%を維持 ○ terraformによる安定した再現性のあるインフラ環境 ○ 何かあってもすぐに5-10分以内に切り戻せる体制の確⽴ ○ 疎結合アーキテクチャの実現 ■ ⼀⽅でマイクロサービス化しすぎない 現在の技術⾯と開発プロセス 81

Slide 82

Slide 82 text

© Findy Inc. ● 技術⾯での改善 ○ テストカバレッジ95-99%を維持 ○ terraformによる安定した再現性のあるインフラ環境 ○ 何かあってもすぐに5-10分以内に切り戻せる体制の確⽴ ○ 疎結合アーキテクチャの実現 ■ ⼀⽅でマイクロサービス化しすぎない ● 開発プロセスの進化 現在の技術⾯と開発プロセス 82

Slide 83

Slide 83 text

© Findy Inc. ● 技術⾯での改善 ○ テストカバレッジ95-99%を維持 ○ terraformによる安定した再現性のあるインフラ環境 ○ 何かあってもすぐに5-10分以内に切り戻せる体制の確⽴ ○ 疎結合アーキテクチャの実現 ■ ⼀⽅でマイクロサービス化しすぎない ● 開発プロセスの進化 ○ 活発なレビュー環境 ■ 今年の1⽉からの227営業⽇で1⼈平均1500件、平均6.6/day、最多4600件) ■ レビューまでの時間も平均1.4時間 ○ 効率的なデプロイフロー ■ 227営業⽇で6800件超えのデプロイ、平均30.2デプロイ/day ■ 1⽇平均7.55デプロイ/プロダクト ○ 継続的な改善サイクルと振り返り⽂化 現在の技術⾯と開発プロセス 83

Slide 84

Slide 84 text

© Findy Inc. ● 技術⾯での改善 ○ テストカバレッジ95-99%を維持 ○ terraformによる安定した再現性のあるインフラ環境 ○ 何かあってもすぐに5-10分以内に切り戻せる体制の確⽴ ○ 疎結合アーキテクチャの実現 ■ ⼀⽅でマイクロサービス化しすぎない ● 開発プロセスの進化 ○ 活発なレビュー環境 ■ 今年の1⽉からの227営業⽇で1⼈平均1500件、平均6.6/day、最多4600件) ■ レビューまでの時間も平均1.4時間 ○ 効率的なデプロイフロー ■ 227営業⽇で6800件超えのデプロイ、平均30.2デプロイ/day ■ 1⽇平均7.55デプロイ/プロダクト ○ 継続的な改善サイクルと振り返り⽂化 現在の技術⾯と開発プロセス 84 チラッ>

Slide 85

Slide 85 text

© Findy Inc. 現在の向き合い⽅ 85

Slide 86

Slide 86 text

© Findy Inc. 現在の状況 86

Slide 87

Slide 87 text

© Findy Inc. ● 基本的な考え⽅ 現在の状況 87

Slide 88

Slide 88 text

© Findy Inc. ● 基本的な考え⽅ ○ 段階的な負債返済の重要性 ○ フェーズに合わせた適切な判断 ○ 継続的な改善の⽂化づくり ○ 予防的なメンテナンス 現在の状況 88

Slide 89

Slide 89 text

© Findy Inc. ● 基本的な考え⽅ ○ 段階的な負債返済の重要性 ○ フェーズに合わせた適切な判断 ○ 継続的な改善の⽂化づくり ○ 予防的なメンテナンス ● 具体的な取り組み 現在の状況 89

Slide 90

Slide 90 text

© Findy Inc. ● 基本的な考え⽅ ○ 段階的な負債返済の重要性 ○ フェーズに合わせた適切な判断 ○ 継続的な改善の⽂化づくり ○ 予防的なメンテナンス ● 具体的な取り組み ○ CTO室による技術推進 ○ 定期的なリファクタリング ○ ライブラリの継続的な⾒直し ○ テックリードによる改善活動 現在の状況 90

Slide 91

Slide 91 text

© Findy Inc. ● 基本的な考え⽅ ○ 段階的な負債返済の重要性 ○ フェーズに合わせた適切な判断 ○ 継続的な改善の⽂化づくり ○ 予防的なメンテナンス ● 具体的な取り組み ○ CTO室による技術推進 ○ 定期的なリファクタリング ○ ライブラリの継続的な⾒直し ○ テックリードによる改善活動 現在の状況 91 テックリードが横断で技術的負債が強いチームに 数ヶ⽉⼊って設計をアップデートすることで

Slide 92

Slide 92 text

© Findy Inc. ● 基本的な考え⽅ ○ 段階的な負債返済の重要性 ○ フェーズに合わせた適切な判断 ○ 継続的な改善の⽂化づくり ○ 予防的なメンテナンス ● 具体的な取り組み ○ CTO室による技術推進 ○ 定期的なリファクタリング ○ ライブラリの継続的な⾒直し ○ テックリードによる改善活動 現在の状況 92 テックリードが横断で技術的負債が強いチームに 数ヶ⽉⼊って設計をアップデートすることで

Slide 93

Slide 93 text

© Findy Inc. ● 基本的な考え⽅ ○ 段階的な負債返済の重要性 ○ フェーズに合わせた適切な判断 ○ 継続的な改善の⽂化づくり ○ 予防的なメンテナンス ● 具体的な取り組み ○ CTO室による技術推進 ○ 定期的なリファクタリング ○ ライブラリの継続的な⾒直し ○ テックリードによる改善活動 現在の状況 93 テックリードが横断で技術的負債が強いチームに 数ヶ⽉⼊って設計をアップデートすることで 負債が⽣まれにくい状況になった

Slide 94

Slide 94 text

© Findy Inc. まとめ 94

Slide 95

Slide 95 text

© Findy Inc. ● 学んだこと まとめ:掃除は⽇々やり続けようね! 95

Slide 96

Slide 96 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる まとめ:掃除は⽇々やり続けようね! 96

Slide 97

Slide 97 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる ○ 負債を解消するためのアクションを組織的に⼊れ続ける まとめ:掃除は⽇々やり続けようね! 97

Slide 98

Slide 98 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる ○ 負債を解消するためのアクションを組織的に⼊れ続ける ○ 早めの決断、早めの投資 ■ とはいえこの判断が難しい。損益分岐点を出して⾒極め続けよう まとめ:掃除は⽇々やり続けようね! 98

Slide 99

Slide 99 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる ○ 負債を解消するためのアクションを組織的に⼊れ続ける ○ 早めの決断、早めの投資 ■ とはいえこの判断が難しい。損益分岐点を出して⾒極め続けよう ○ ⽇進⽉歩、⼀⽇で潰せる技術的負債は少し ■ コツコツと返済し続けることが⼀番よい まとめ:掃除は⽇々やり続けようね! 99

Slide 100

Slide 100 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる ○ 負債を解消するためのアクションを組織的に⼊れ続ける ○ 早めの決断、早めの投資 ■ とはいえこの判断が難しい。損益分岐点を出して⾒極め続けよう ○ ⽇進⽉歩、⼀⽇で潰せる技術的負債は少し ■ コツコツと返済し続けることが⼀番よい ○ 初期の負債の返済は数年はかかる ■ ⼼してかかるしかない…! ■ まずは産まないことが⼤事…!! まとめ:掃除は⽇々やり続けようね! 100

Slide 101

Slide 101 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる ○ 負債を解消するためのアクションを組織的に⼊れ続ける ○ 早めの決断、早めの投資 ■ とはいえこの判断が難しい。損益分岐点を出して⾒極め続けよう ○ ⽇進⽉歩、⼀⽇で潰せる技術的負債は少し ■ コツコツと返済し続けることが⼀番よい ○ 初期の負債の返済は数年はかかる ■ ⼼してかかるしかない…! ■ まずは産まないことが⼤事…!! ○ とはいえリスペクトも忘れずに! まとめ:掃除は⽇々やり続けようね! 101

Slide 102

Slide 102 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる ○ 負債を解消するためのアクションを組織的に⼊れ続ける ○ 早めの決断、早めの投資 ■ とはいえこの判断が難しい。損益分岐点を出し続けよう まとめ:掃除は⽇々やり続けようね! 102 掃除好きの⼈に⾔われました

Slide 103

Slide 103 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる ○ 負債を解消するためのアクションを組織的に⼊れ続ける ○ 早めの決断、早めの投資 ■ とはいえこの判断が難しい。損益分岐点を出し続けよう まとめ:掃除は⽇々やり続けようね! 103 「師⾛に⼤掃除するのではなく、

Slide 104

Slide 104 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる ○ 負債を解消するためのアクションを組織的に⼊れ続ける ○ 早めの決断、早めの投資 ■ とはいえこの判断が難しい。損益分岐点を出し続けよう まとめ:掃除は⽇々やり続けようね! 104 「師⾛に⼤掃除するのではなく、 ⽇頃から掃除していれば

Slide 105

Slide 105 text

© Findy Inc. ● 学んだこと ○ 負債かもと思ったらすぐに課題に挙げる ○ 負債を解消するためのアクションを組織的に⼊れ続ける ○ 早めの決断、早めの投資 ■ とはいえこの判断が難しい。損益分岐点を出し続けよう まとめ:掃除は⽇々やり続けようね! 105 「師⾛に⼤掃除するのではなく、 ⽇頃から掃除していれば ⼤掃除なんていらないんですよ」

Slide 106

Slide 106 text

© Findy Inc. 🤔 なるほど… 106

Slide 107

Slide 107 text

© Findy Inc. ご清聴ありがとうございました! 107