Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
技術的負債という武器の扱い方を考える
Search
to_lz1
December 02, 2025
2.4k
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
990
スケーラブルなデータ収集と活用の舞台裏 / scalable data infrastructure of M3
mtoriyama000
0
10k
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
エンジニアに許された特別な時間の終わり
watany
108
250k
It's Worth the Effort
3n
188
29k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
480
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
500
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
Side Projects
sachag
456
43k
Heart Work Chapter 1 - Part 1
lfama
PRO
9
36k
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!