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
技術的負債という武器の扱い方を考える
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
to_lz1
December 02, 2025
1.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
技術的負債という武器の扱い方を考える
to_lz1
December 02, 2025
More Decks by to_lz1
See All by to_lz1
Webエンジニアのためのデータエンジニアリング概説
mtoriyama000
6
970
スケーラブルなデータ収集と活用の舞台裏 / scalable data infrastructure of M3
mtoriyama000
0
10k
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.3k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Designing Experiences People Love
moore
143
24k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Testing 201, or: Great Expectations
jmmastey
46
8.2k
What's in a price? How to price your products and services
michaelherold
247
13k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
220
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
RailsConf 2023
tenderlove
30
1.5k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
Become a Pro
speakerdeck
PRO
31
6k
Transcript
技術的負債という 「武器」の使い方を考える 2025-12-02 大規模Webサービスの技術負債、どう向き合う?? Classi株式会社 鳥山 誠(Toriyama
Makoto)
Copyright © 2025 Classi Corp. All Rights Reserved. 2 従業員数
自己紹介 鳥山 誠 Classi株式会社 プロダクト本部 経歴: 新卒でSIer子会社 → 人材系企業 → 医療系企業 → 現職(教育系企業) 経験してきたロール: ソフトウェアエンジニア、 データエンジニア、 SRE、チームリーダー etc. 趣味: 音楽、本、ゲーム、ときどき山登り
Copyright © 2025 Classi Corp. All Rights Reserved. Classi社のプロダクト
3 小中学校×校務支援領域でシェア獲得 登録者200万人 高校×学習支援領域でシェア獲得 累計2,400校 2014年から高校領域で、2022年からは小中領域も合わせて 「生徒を取り巻く環境における課題の解決」を目指す
Copyright © 2025 Classi Corp. All Rights Reserved. 今日のアジェンダ
4 1. 技術的負債の正体 2. 事例紹介 - 「欠落」を「リリース」で埋めに行く 3. まとめ - 負債の再解釈
技術的負債の正体 01
Copyright © 2025 Classi Corp. All Rights Reserved. 「技術的負債」の出典、負債のメタファー
6 著名な開発者、Ward Cunninghamが言った......と、 『リファクタリング』の著者、Martin Fowlerは言っている 出典: https://bliki-ja.github.io/TechnicalDebt ソフトウェアシステムでは、クラフト(出来の悪いも の)が生まれやすい。システムの修正や拡張をし ようとしても、内部品質の欠如がそれを難しくして いる。「技術的負債」とは、Ward Cunninghamが 作ったメタファーである。 ファイナンスの負債のよ うに考えることで、こうしたクラフトの扱いのことを 考えやすくなる。
Copyright © 2025 Classi Corp. All Rights Reserved. ご本人の説明
7 2009年にWard CunninghamがアップロードしたYouTube動画上での説明は、こう...... もしも自分たちが書いている プログラムを、 金融の世界に関する正しい捉え方だと自 分たちが理解した姿と一致させることがで きなくなれば、......開発スピードは遅くなって いくでしょう。それはまるで借金の利子を払 い続けるかのようです 出典: https://t-wada.hatenablog.jp/entry/ward-explains-debt-metaphor
Copyright © 2025 Classi Corp. All Rights Reserved. 8 あれ?🤔
Copyright © 2025 Classi Corp. All Rights Reserved. 9 早くリリースするために書いた
「雑なコード」 じゃないの? 古いフレームワークにまみれた 「レガシーコード」 じゃないの?
Copyright © 2025 Classi Corp. All Rights Reserved. どうやら違うっぽい
10 同じ動画で言ってるのが、これ 私は雑なコードを 書くことには 全く賛成しません 出典: https://t-wada.hatenablog.jp/entry/ward-explains-debt-metaphor
Copyright © 2025 Classi Corp. All Rights Reserved. 11 厳しい
😭
Copyright © 2025 Classi Corp. All Rights Reserved. けど、考えてみると
12 「現時点での不十分な理解」でソフトウェアをリリースすることが「負債」の定義だとすると、 「当時最新のフレームワークで書いたシステム」が古くなるのは必ずしも「負債」ではないかもしれない フレームワークの進化 最近出たAngularJSに 挑戦してみよう! 全然最新に追随出来てない! EOLじゃん!負債だ! (変更が大変なのはそれはそうだけど) 2010年の時点では何も犠牲にしてない 有識者の離脱 更新の停滞 2010 2025 ※架空の事例です
Copyright © 2025 Classi Corp. All Rights Reserved. 本発表での自分なりの定義
13 技術的負債とは... 何かをより早くリリースしようとした結果 、 ソフトウェアが理想的な状態ではなくなり 改修を加える度に追加のコストが掛かるようになった箇所
Copyright © 2025 Classi Corp. All Rights Reserved. 「より早く=借り入れ」の現場で何が起きているのか
14 いくつかパターンがあるが、概ね「知識の欠落」という言葉と 「内部的 ⇔ 外部的」「技術的 ⇔ ドメイン的」の2軸で整理できる(と筆者は考える)
Copyright © 2025 Classi Corp. All Rights Reserved. 「より早く=借り入れ」の現場で起きていること
15 いくつかパターンがあるが、概ね「知識の欠落」という言葉と 「内部的 ⇔ 外部的」「技術的 ⇔ ドメイン的」の2軸で整理できる(と筆者は考える) 理論値では動くはずだけど、 本番の負荷に耐えられるか……? 全部入りで作ろうとしてるけど、 本当にお客さんはこれ使うの? 設計に自信がないけど、 有識者のレビューを受ける時間がない この例外処理、業務フロー的に あり得ないと思うけど一応書くか
Copyright © 2025 Classi Corp. All Rights Reserved. 「内部的な知識の欠落」は基本的に埋めた方が良い
16 「設計に自信がないけど、有識者のレビューを受ける時間がない」(内部×技術) ❌「レビューせずに急いで出してヨシ!」 「レビューはする。期日の件はスコープ調整しよう」 → レビューで得た設計知識が次の生産性を上げる 「この例外処理、業務フロー的にあり得ないと思うけど一応書くか」(内部×ドメイン) ❌「違和感あるけどコードとしては動くから approve!」 「ドメインエキスパートのXXさんにSlackで聞いてみてくれない?」 → 質問して得たドメイン知識が次の生産性を上げる
Copyright © 2025 Classi Corp. All Rights Reserved. 17 じゃあ、「外部的な知識の欠落」は
どうすれば?
事例紹介 - 「欠落」を「リリース」で埋めに行く 02
Copyright © 2025 Classi Corp. All Rights Reserved. Classiの事例: 欠席連絡の理由カスタマイズ
19 保護者から受け付ける欠席連絡には「発熱」「頭痛」などの他、「忌引」「部活・大会」なども。 当初、欠席理由は固定のマスタデータであり「カスタマイズしたい」という声が複数あった この部分
Copyright © 2025 Classi Corp. All Rights Reserved. Classiの事例: 欠席連絡の理由カスタマイズ
20 初見では分かりづらいが、実は理由には階層があったり、制約があったりした → 全てをカスタマイズ可能にするのは、工数的になかなか大変
Copyright © 2025 Classi Corp. All Rights Reserved. 足りなかった「外部×ドメイン」知識
21 そもそも、要望してる人って 「何を」カスタマイズしたいんでしたっけ?
Copyright © 2025 Classi Corp. All Rights Reserved. 一口に「カスタマイズ」と言っても
22 理論上は色々なパターンが考えられる - コロナ対応で「COVID-19」を追加したい - 「出席停止」系を保護者に勝手に入れられると困るから消したい - 自分の学校独自の活動を大項目として追加したい - 「病気」を早退の時でも使えるようにしたい - 「その他」使用時に備考欄に必ず理由を入力してもらいたい
Copyright © 2025 Classi Corp. All Rights Reserved. 解法: 小さな仕様でまずリリースする
23 例えば、「小項目だけ追加 or 削除ができる」 仕様なら...... - コロナ対応で「COVID-19」を追加したい → 対応可能 ⭕ - 「出席停止」系を保護者に勝手に入れられると困るから消したい → 対応可能 ⭕ - 自分の学校独自の活動を大項目として追加したい → 対応不可✖ - 「病気」を早退の時でも使えるようにしたい → 対応不可✖ - 「その他」使用時に備考欄に必ず理由を入力してもらいたい → 工夫すれば可能△ - 「その他(備考欄に必ずご入力下さい)」を新設して貰えばいい
Copyright © 2025 Classi Corp. All Rights Reserved. 実際、そうやってリリースした
24 実際のヘルプページ ディレクターやCSのメンバーとも相談し、 回避策を案内するなど文言を検討・調整
Copyright © 2025 Classi Corp. All Rights Reserved. 結果: 小さな仕様で大多数のユーザに満足いただけた
25 - 想定したユースケースはハマっていて、感謝の言葉ももらえた - 大項目を追加したい、という声も一部あった - が、懸念していたより少数だった - 声が多かった場合は作ることを覚悟していたが、一旦作らない判断をした
Copyright © 2025 Classi Corp. All Rights Reserved. 結果: 小さな仕様で大多数のユーザに満足いただけた
26 - 想定したユースケースはハマっていて、感謝の言葉ももらえた - 大項目を追加したい、という声も一部あった - が、懸念していたより少数だった - 声が多かった場合は作ることを覚悟していたが、一旦作らない判断をした 1. 小さな仕様にすることで「より早くリリース」した 2. 「顧客が要望しているもの」に関する知識を得た 3. 「使われない機能」という 最大の負債を防いだ
まとめ - 負債の再解釈 03
Copyright © 2025 Classi Corp. All Rights Reserved. まとめ -
負債の再解釈 28 - 「知識の欠落がある前提でリリースを急ぐこと」 こそが負債の「借り入れ」である - 内部知識の欠落を放ってリリースしてしまうと、自然には返せない - だからこそ、我々は普段こっちを目にすることが多い - 「外部知識の欠落」なら、実は リリースすることによって埋める こともできる - 我々のコードがプロダクトと実世界を繋ぐから - ここで力を発揮するには「要件定義への参画」が必須 - 得られた知識によって、必要に応じてまた改修をすれば良い - だからこそ、「継続改善リリースしやすい環境」が超重要
Copyright © 2025 Classi Corp. All Rights Reserved. 29 「外部知識を得るためのリリース」
を武器の一つとして覚えておこう 🔫
Copyright © 2025 Classi Corp. All Rights Reserved. 30 Thank
you for Listening!