Upgrade to Pro — share decks privately, control downloads, hide ads and more …

技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経...

技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026

2026年9月16日開催「技術的負債に向き合うConference 2026」の登壇資料です。

▼関連資料
リアーキテクティングのその先へ 〜品質と開発生産性の壁を越えるプラットフォーム戦略〜
https://speakerdeck.com/visional_engineering_and_design/architecture-con2025

ビズリーチにおけるリアーキテクティング実践事例
https://speakerdeck.com/visional_engineering_and_design/jjug-ccc-2025-spring

プロダクト全体で取り組むSREing イシューから始める信頼性・生産性向上の実践
https://speakerdeck.com/visional_engineering_and_design/sre-next-2024

ユーザー数100万人規模の事業成長を止めずに、レガシーコードと戦う
https://speakerdeck.com/visional_engineering_and_design/jjug-ccc-2022-fall

AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ
https://speakerdeck.com/visional_engineering_and_design/aie2026

検索ランキングの比較のためにInterleavingの導入と評価をした際の工夫
https://engineering.visional.inc/blog/615/implement-interleaving-for-search-evaluation/

HR領域の検索が直面する課題 - 双方向マッチングの難しさと技術的挑戦
https://engineering.visional.inc/blog/660/bizreach-search-core-group/

-----
Visionalのエンジニアリングに関する最新情報はX、ブログで発信しています!📣

▼Visional Engineering Blog
https://engineering.visional.inc/blog/

▼VISIONAL ENGINEERING / X
https://twitter.com/VISIONAL_ENG

Avatar for Visional Engineering & Design

Visional Engineering & Design

September 17, 2026

More Decks by Visional Engineering & Design

Other Decks in Technology

Transcript

  1. 自己紹介 Shintaro Kikuchi 菊池 信太郎 株式会社ビズリーチ プロダクト本部 プラットフォーム統括部 統括部長 SIerを経て、ビズリーチには2018年から在籍

    ビズリーチでやってきたこと ヘッドハンター向けプロダクト、採用企業向けプロダクトの開発 組織横断のプロジェクトリード、プラットフォーム開発 プロセス改善、ナレッジマネジメント、リアーキテクティングの推進など 最近は5歳の子どもと一緒にポケモンコンテンツを大量に浴びています。 2
  2. 技術的負債は、なぜ返しにくくなるのか ビズリーチのプロダクト構成 社内向け プロ クト 求職者向け CSプロ クト ヘッドハンター向け CSプロ

    クト 採用企業向け CSプロ クト お客様向け プロ クト 求職者向け プロ クト ヘッドハンター向け プロ クト 採用企業向け プロ クト 業務支援 プロ クト バッチ処理 共有DB 9
  3. 技術的負債は、なぜ返しにくくなるのか 組織内の判断は速くなっても、システムの結合は残った 逆コンウェイで、組織を価値提供の単位に分けた結果、組織内に閉じる判断は速くなった。 レジュメ・求人・メッセージなどの変更は、求職者向けと企業向けの組織をまたいでしまう。 社内向け プロ クト 求職者向け CSプロ クト

    ヘッドハンター向け CSプロ クト 採用企業向け CSプロ クト お客様向け プロ クト 求職者向け プロ クト ヘッドハンター向け プロ クト 採用企業向け プロ クト 業務支援 プロ クト バッチ処理 破線:組織の境界 共有DB common・共有DBは横断して残る 15
  4. 技術的負債は、なぜ返しにくくなるのか 例:求職者側の処理が、採用企業側の「対応済み」を判断 当初は、進捗を求職者と採用企業の共有モデルとして捉えていた。 学習に伴い、お客様に見える機能は変更したが、データモデルはそのまま残った。 求職者向けプロ クト 共有DB 採用企業向けプロ クト メッセージ本文・スレッド

    メッセージ保存処理 求職者側の メッセージ ックス 参照 呼び出す 「対応済み」の判定 採用企業側の業務判断 破線枠:共有DB 採用企業側の メッセージ ックス メッセージ画面・ 対応状況の表示 採用企業側の対応状態 (対応済みフラ ) 濃い箱:送信側で実行される、受信側の業務判断 実線矢印:書き込み・参照 16
  5. 技術的負債は、なぜ返しにくくなるのか 負債が生まれることと、長期化することは違う 01 02 03 発生 増幅 固定化 不確実な中で判断する 依存や例外が積み重なる

    複数の責任領域にまたがる 設計の前提が変わる 変更の影響が広がる 一つのチームでは 返済を決められない 返済する意思決定そのもの 難しくなる。 18
  6. 責務を見直して合意し、構造を段階的に変える 横断的な変更には、責任と移行の時間も確保する 横断変更は、事業PO会で相談し、ロードマップを合意してきた。 計画へ含めるもの 決めること 判断主体 責務の所有者と、API・イベントの仕様変更の合意先 優先順位 事業PO会で相談し、各プロダクトの計画とそろえる 利用側の工数

    切り替え・検証・旧経路撤去までを計画に含める 合意した変更を進めるために、利用側の移行時間も計画に含める。 事業PO会:事業長、プロダクト本部長、各プロダクトPOを含む、プロダクトのロードマップに関する意思決定を行う会議体。 24
  7. 責務を見直して合意し、構造を段階的に変える 責務に応じて分け、API・イベントでつなぐ 従来の構造 求職者向けプロ クト 合意した責務設計 共有DB 採用企業向けプロ クト 求職者向けプロ

    クト メッセージ本文・スレッド メッセージ保存処理 マッチン 要求 「対応済み」の判定 採用企業側の業務判断 採用企業側の メッセージ ックス メッセージの保持 本文・スレッド・添付・記録 採用企業向けプロ クト 要求 送信・返信の要求 求職者側の メッセージ ックス 送信・返信の要求 メッセージの伝送 送信受付・送信可否 ロック適用 参照 呼び出す プラットフォーム メッセージ画面・ 対応状況の表示 採用企業側の対応状態 (対応済みフラ ) 求職者側の受信箱・既読 (画面・業務状態) 通知 伝送結果の記録 通知イベントの仕様 通知 採用企業側の受信箱 「対応済み」・進捗 各業務固有の状態は持たない 破線枠:共有DB 濃い箱:送信側で実行される、受信側の業務判断 実線矢印:書き込み・参照 25
  8. 責務を見直して合意し、構造を段階的に変える 最初から完璧な設計はない。理解が進んだときに変えられることが大事 負債の比喩 DDDの洞察 未成熟なコードでも、 顧客に届ける価値はある。 ただし、書き直して返済しなければ、 利息が積み重なる。 ドメインへの理解が深まったら、 その洞察をモデルの

    リファクタリングに反映する。 Ward Cunningham(1992)|要約 Eric Evans(2015)|要約 The WyCash Portfolio Management System Domain-Driven Design Reference, p.8 Refactoring Toward Deeper Insight ビズリーチで技術的負債と向き合って学んだこと 事業が変わる以上、責務の境界と実際の業務とのズレは避けられない。 短期施策を優先する判断は残るが、ズレを発見し、理解を構造へ反映する仕事を先送りしない。 出典:Cunningham(1992)/Evans(2015) 上段は各資料の要約 27
  9. AIが正しい方向へ、安全に、速く変更できる環境に投資する 責務の境界を、変更と検証の単位にする 業務の内側 他の責務との接点 公開する範囲 その領域の業務ルールを、内部 で変更・検証できるようにす る。 API・イベントの仕様を明確に し、連携への影響を確かめる。

    内部のデータ構造をそのまま公 開せず、連携に必要な情報と振 る舞いを定める。 変更に必要な理解の範囲と、影響を確かめる範囲を絞る。 参照:Khononov『ソフトウェア設計の結合バランス』pp.128–129、154–155(要約) 31
  10. AIが正しい方向へ、安全に、速く変更できる環境に投資する 事例:候補者検索をAPIで分離し、ランキングを継続的に改善する 候補者検索をAPIで分離した結果、ランキングを独立して変更できるようになった。 新旧ランキングを利用者の行動から比較・評価する仕組みを整え、改善を重ねている。 求職者向けプロダクト 候補者情報 職務経歴など 候補者検索API 候補者情報 ランキング

    誰を、どの順序で 提⽰するか 採⽤企業向けプロダクト 検索条件 候補者を検索する 検索結果を⾒る 検索結果 スカウトを送る AI時代への展開 境界づけられたコンテキストを、改善を速く繰り返せる単位にする。 その業務の文脈をAIへ伝え、変更・検証・修正の一連の仕事に活用していく。 出典:Visional Engineering Blog「検索ランキングの比較のためにInterleavingの導入と評価をした際の工夫」(2024) 32
  11. AIが正しい方向へ、安全に、速く変更できる環境に投資する 環境の準備から検証・修正までを、一続きに実行できるようにする 実行や結果の受け渡しを毎回人が担うと、AIの検証・修正も人待ちになる。 1 2 3 4 5 環境を立ち上げる データを用意する

    処理を動かす 結果を取得する 直して再実行する 依存先を含めて、 手元で同じ構成 業務上の代表ケース と境界ケース 変更前後を、同じ入力 で実行できる 差分を機械的に 比較でき、ログ 修正から再検証まで を、短く繰り返せる を再現できる を揃えられる 参照:OpenAI(2026)Harness engineering: leveraging Codex in an agent-first world や指標を読める 34
  12. AIが正しい方向へ、安全に、速く変更できる環境に投資する 情報・ツール・実行結果をつなぎ、AIの仕事を支えるのがハーネスである 接続するもの コード 責務を整理したRFC 判断理由 未決定事項 データの所有 API・イベントの仕様 利用側の依存

    隔離環境 再現データ 合意した検証条件 実行ログ 失敗ケース 採用判断の経路 AIと進める仕事 既存処理を調べる 変更案をつくる 変更案を試す 結果から見直す 次の判断へ 返すもの 現在の処理と 目指す責務の対応 未合意を決定扱いしない 何を移し、 何を各業務へ残すか 維持できた挙動 意図した差分 意図しない差分 実装修正で済むか API・イベントの変更箇所 業務ルールや連携仕様の 見直しが必要か 見直しの結果を、調査・設計へ戻す 35
  13. 変更の効果を確かめ、次の改善と投資を決める 検証結果から実装を直し、事業の変化や得られた知見から前提を見直す 内側:合意した条件で実装を直す 外側:意味・境界・評価を見直す 業務モ 合意した理解 ル・API/イベント仕様・検証条件 前提として使う 変更を実行 検証

    結果 合意した条件を満たさない:実装を直す 条件そのものに 矛盾・不足がある 事業の変化 新しい証拠 根拠を確かめ、理解を見直す 意味・境界・評価を更新 見直した理解で、業務モ ル・API/イベント仕様・検証条件を更新する 38
  14. APPENDIX:因果ループ図 技術的負債と、変更し続ける⼒の因果関係 01 発⽣ 学習で判明した 意味・責務の違い 短期の価値を優先した 設計上の妥協 設計が満たすべき条件の変化 新たな理解が設計へ未反映

    + + 現在の変更に合わない 設計・境界の残存 追加負担を⽣む構造的不適合 ­ + 02 増幅 + + 1回の変更で⽣じる 余分な調査・調整・検証 不要な変更波及・⼿戻りを含む 現在の変更を 妨げる場合 03 固定化 + + 依存の切り離し・移⾏に 必要な作業量 仕様・設計意図を 理解し直す難しさ R3a 技術的固定化 R3b 認知的固定化 元本相当:解消のための費⽤ + ­ 構造修正の完了速度 依存解消・移⾏・旧経路の撤去まで + + ­ + R2 改善が余⼒を⽣む + ­ ­ 改善へ配分できる余⼒ 実⾏・検証へ再投資 依存が責任境界を またいで残る場合 返済に必要な 横断調整の負担 + 費⽤・便益・判断権限の 組織間での分散 他組織の計画・優先順位に依存 ­ AIによる 個別対応の省⼒化 ⾃⼰完結できる 実⾏・検証能⼒ 返済へ配分 暗黙仕様・知識の集中 責務・権限と変更範囲が整合 R1 利払いが改善余⼒を削る 再設計を⾒送った 継ぎ⾜し・迂回への依存 + 領域内の判断・ 並⾏実⾏能⼒ + + ­ 期間中の追加作業量 〈利払い〉 ­ R4 継ぎ⾜しが次の変更を重くする 古い構造に積み上がる 依存・例外 ­ + 横断依存が 残る場合 構造が追従しない場合 + 組織拡⼤に伴う 分業・権限移譲 対象領域の 期間中の変更回数 事業・利⽤規模の変化 + 合意・移⾏の待ち時間 R3c 組織・経済的固定化 AIによる返済作業の⽀援 調査・実装・検証・移⾏の作業 + 費⽤を負担する側と便益を得る側が異なる + 観測と事業上の判断 観測された損失に基づく 修正の優先度 DDD・ドメイン理解 意味・責務・設計意図を明確にする → 理解の難しさ/境界のずれ Platform Engineering 環境・デプロイ・連携をセルフサービス化 → ⽇々の追加作業を減らす QA・E2E・API・イベントの契約テスト 必要な振る舞いと変更の安全性を検証 → 実⾏・検証能⼒を⾼める SRE・可観測性 損失の観測・標準判断・検知・復旧 → 優先度の判断/反復負担の軽減 責任・権限・優先順位・⼯数 費⽤と便益を横断で捉え、移⾏を揃える → 合意・移⾏待ち/修正の完了速度 利払いと元本は分ける 期間中の利払い ≈ 変更回数 × 1回の追加負担 元本に相当するもの = 解消に要する費⽤ 上の式は負担を分解する概念式(実測値ではない) 図の前提 複数システムの変更や、必要な協調そのものを 負債とはしない。対象は余分な負担を⽣む構造。 組織拡⼤そのものが負債を⽣むわけではない。 残る技術依存が、組織間の依存になる場合を描く。 余⼒・理解・作業量・合意・移⾏の制約は同時に働く。 AIによる作業⽀援だけでは、合意や撤去は完了しない。 すべての負債がこの順序で悪化するわけではない。 変更が少なければ、維持を選ぶ判断もあり得る。 ⽮印とループの読み⽅ 便益・返済費⽤・リスクで判断 + B1 損失を捉え、合意して返済 投資が変える変数 関係組織で合意・確保した 移⾏⼯数 +/­:他の条件が同じときの影響⽅向 R:⾃⼰強化 B:打ち消し //:効果の遅れ 破線:配分・合意などの条件付きの関係 線の交差は接続を表さない 図全体は提⽰⽂とこれまでの議論を整理した因果仮説。 実線も実証済みの関係を意味しない。 提供側・利⽤側の双⽅ 45
  15. APPENDIX:参考文献 主題 文献・資料 技術的負債の原点 Ward Cunningham, The WyCash Portfolio Management

    System(1992) 理解とプログラムの乖離 Wardの説明(2009)の翻訳・解説、t-wada(2020) 洞察に向かうモデルの更新 Eric Evans, Domain-Driven Design(2004) 結合と変更の調整 Vlad Khononov 著、島田浩二 訳『ソフトウェア設計の結合バランス』(インプレス、2025) モデルの境界 Martin Fowler, Bounded Context(2014) ハーネスエンジニアリング OpenAI, Harness engineering: leveraging Codex in an agent-first world(2026) 運用と信頼性 Beyer et al., Site Reliability Engineering(2016) AI支援開発 DORA, State of AI-assisted Software Development 2025 46
  16. APPENDIX:過去登壇 JJUG CCC 2022 ユーザー数100万人規模の事業成長を止めずに、レガシーコードと戦う JJUG CCC 2025 ビズリーチにおけるリアーキテクティング実践事例 アーキテクチャカンファレンス

    2025 リアーキテクティングのその先へ SRE NEXT 2024 プロダクト全体で取り組むSREing―イシューから始める信頼性/生産性向上の実践 47