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

事業課題から技術的負債に向き合う

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for SansanTech SansanTech PRO
September 16, 2026

 事業課題から技術的負債に向き合う

■ イベント
技術的負債に向き合うConference 2026
https://technical-debt-con.findy-tools.io/2026

■登壇概要
タイトル:事業課題から技術的負債に向き合う
登壇者:技術本部 Sansan Engineering Unit グループマネジャー 加畑 博也

■ 技術本部 採用情報
https://media.sansan-engineering.com

Avatar for SansanTech

SansanTech PRO

September 16, 2026

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 技術的負債への対策 - 対策1: 事業の視点で課題を定義する - 対応する問題:優先度が上がらない∕予算が確保できない∕ステークホルダー を説得できない... - 対策2: プロジェクトとして遂⾏する

    - 対応する問題:開始しても進捗が悪い∕他タスクが差し込まれて進まない∕⼯ 数が膨らんで完了の⾒込みが⽴たない... 基本的なことを普通にやるのがもっとも効果的である。
  2. 会社概要 社名 Sansan株式会社 設⽴ 2007年6⽉11⽇ 従業員数 2,077名(2026年5月31日時点) 上場証券取引所 東京証券取引所 プライム市場

    拠点 本社:東京都渋⾕区桜丘町1-1 渋⾕サクラステージ28F 関⻄⽀店、福岡⽀店、中部⽀店 サテライトオフィス グループ会社 Sansan神⼭ラボ、Sansan Innovation Lab、Sansan⻑岡ラボ Sansan Global Pte. Ltd. (シンガポール) Sansan Global Development Center, Inc. (フィリピン) Sansan Global (Thailand) Co., Ltd.(タイ) ナインアウト株式会社 株式会社⾔語理解研究所 Eightキャリア株式会社
  3. Sansan株式会社の働き⽅を変えるAXサービス ⽣産性を向上させ、企業のAI活⽤を最⼤化するデータベースとしても貢献できる 「働き⽅を変えるAXサービス」を提供します。 法⼈向け 個⼈向け 名刺データベースが、収益を最⼤化する 契約データベースが、利益を守る 「なくせる」をつくり、全社の働き⽅を変える 営業AXサービス 契約AXサービス

    経理AXサービス 名刺アプリ 営業 契約 請求 名刺 管理 データクオリティマネジメント 各サービスの活⽤で変わる働き⽅ 必要な情報を 情報の管理がしやすく 情報を分析‧活⽤しやすく すぐに⾒つけられる すぐに共有できる データに基づいた判断ができる
  4. 前提:Sansanのシステム概観 - PC版/スマホアプリ、名刺スキャナ、APIなどを提供している。 - 数億枚の名刺データを保有し、バックエンドは約1億件/⽇の処理をしている。 Sansanユーザ Webブラウザ スマホアプリ Sansanプロダクト(サーバー) Webアプリ

    スマホ用アプリAPI RDB 外部システム用 コールバックAPI ファイルストレージ バッチ スキャナ 外部サービスなど スキャナ用API ユーザ公開用API 外部サービスなど キャッシュ メッセージキュー 内部システム用 コールバックAPI データ化/名寄せ など社内の別部署
  5. 背景:これまでの経緯 - 技術的負債と捉えて認識‧対策してきている。 - 7年前の議事録 → - 「開発⼯数の〇%は技術的負債の返済に あてる」といった⽅針を⽴てていた時期もある。 -

    ⼀⽅、事業戦略に関わる機能開発が優先され、 移⾏が停滞することもある。 - ⼀時期は最重要の機能開発にほぼすべてのメンバーが稼働していた。 - 投資判断としては正しい。移⾏している間に競争⼒を失い事業が失速したら 意味がない。
  6. 前提:組織構成 - Sansanの開発組織はシンプルな階層構造である。 - 機能開発‧技術改善問わずプロジェクトの企画段階からエンジニアが⼊る。 Sansan Engineering Unit プロダクト 組織

    部長 Mobile Enhancementグループ Reliabilityグループ グループマネジャー Sansan PdM グループマネジャー インフラ チーム チーム チーム Sansan デザイナー
  7. なぜ優先度が上がらないのか - 開発組織のリソースは有限である。 - エンジニアの採⽤活動をがんばっても、急には増えない。 - ドメイン知識が深く、⾃⾛できるまでに時間がかかる。 - 事業が成⻑していく中で、機能開発‧改善のモチベーションは際限がない。 -

    「フレームワークのサポートが終了する」「コードが複雑化している」と⾔わ れても、それを(機能開発より優先して)解決すべきか判断できない。 - 仮にエンジニア組織が決定権を持っていたとしても、⻑期にわたる改善で組織が ⼀貫した判断を保ち続けることは困難である。 - 優先順位が低いのではなく、⽐較ができていない。
  8. だれにとっての課題か - 顧客の視点、すなわち事業の視点であるべきである。 - 「サポートが終了する」 - 事業の視点:「外部からの攻撃で顧客情報の漏洩‧事業停⽌のリスクがあ る。」 - 「コードが複雑化している」

    - 事業の視点:「運⽤コスト‧新規機能開発コストが上がる。」 - 当たり前のことだが、改めて⾔語化しそれをもとに合意形成をする。 - さらに、そのリスク‧コストが具体的かつ実績値であるほど確度が⾼い。 - 攻撃を受ける確率、脆弱性が⾒つかる確率、想定される被害、... - 直近の新機能開発の⾒積もりと実績、⽇々の運⽤⼯数、...
  9. 合意形成をする - リスク‧コストその他の制約をもとに、課題を解決すべき期限を設定する。 - 制約の例:割り当てられる予算、アサイン可能なメンバー、... - その上で、ステークホルダーと合意形成をする。 - 開発組織の責任者やプロダクトマネージャー。 -

    Sansanの.NET移⾏に関しては、やるべきということ⾃体は合意が取れていた が、中⻑期的な投資の規模感を⽰し、機能開発その他との投資配分を合意し た。 - 前述のとおりリスクを正確に認識できていなかったため、その情報をもって優 先順位が相対的に上がり、注⼒して着⼿することが可能となった。
  10. シンプルにする(1/2) - ビジネスロジックの設計⽅針は、4世代が混在している。 - 第1世代:Webアプリの各画⾯にビジネスロジックを1:1で実装 - 第2世代:DDDに寄せて共通化 - 第3世代:機能ドメイン単位に再設計 -

    第4世代:登場⼈物を減らしてもっとシンプルに - 旧世代を.NET 10に対応させるより、ロジックを最新世代の アーキテクチャに移植するほうがコストも安い。 - 具体的なコストを⾒積もって意思決定をする。
  11. 移⾏対象を削減する(1/2) - プログラマ視点の⼀般的なアプローチとして、リファクタリングがある。 - リファクタリングにより排除できるのは「偶有的な複雑性」である。⼀⽅、プロ グラマの⽣産性の限界は「本質的な複雑性」にある。 - No Silver Bullet

    —Essence and Accident in Software Engineering [Brooks, 1986] - 本質的な複雑性は、解決すべき問題によってもたらされるものであり、これを取 り除くことはできない。 - プロダクトを取り巻く環境は時間とともに変化する。機能を開発したときの「解 決すべき問題」は、現在もそうか? - リファクタリングではなく削除によって複雑性を削減する。
  12. 段階的にリリースする - 技術的負債のプロジェクトで頻出する問題が、⼤規模な移⾏によりプロダクト の品質が低下することである。 - 単⼀のデプロイ単位と思い込んでいるものを分割する戦略を検討する。 - あるAPIを.NET Frameworkから.NET 10へ移⾏する際、アプリケーション単位

    で.NET 10に移⾏‧リリースすると、プロジェクトのサイズが⼤きくなりリスク ‧コストが⾼まる懸念があった。 - そこで、エンドポイント単位で段階的に移⾏する⽅針とした。特定のエンドポ イントのみを.NET 10版の独⽴したアプリケーションとして実装‧デプロイし、 ロードバランサーでリクエストのURLをみて振り分ける環境を構築した。
  13. 技術的負債への対策(再掲) - 対策1: 事業の視点で課題を定義する - 対応する問題:優先度が上がらない∕予算が確保できない∕ステークホルダー を説得できない... - 対策2: プロジェクトとして遂⾏する

    - 対応する問題:開始しても進捗が悪い∕他タスクが差し込まれて進まない∕⼯ 数が膨らんで完了の⾒込みが⽴たない... 基本的なことを普通にやるのがもっとも効果的である。