Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

技術的負債という武器の扱い方を考える

Avatar for to_lz1 to_lz1
December 02, 2025
12

 技術的負債という武器の扱い方を考える

Avatar for to_lz1

to_lz1

December 02, 2025
Tweet

Transcript

  1. Copyright © 2025 Classi Corp. All Rights Reserved. 2 従業員数

    自己紹介
 鳥山 誠
 Classi株式会社 プロダクト本部 
 
 経歴:
 新卒でSIer子会社
 → 人材系企業
 → 医療系企業 
 → 現職(教育系企業)
 
 経験してきたロール: 
 ソフトウェアエンジニア、
 データエンジニア、
 SRE、チームリーダー etc.
 
 趣味:
 音楽、本、ゲーム、ときどき山登り

  2. Copyright © 2025 Classi Corp. All Rights Reserved. Classi社のプロダクト 


    3 小中学校×校務支援領域でシェア獲得 登録者200万人 高校×学習支援領域でシェア獲得 累計2,400校 2014年から高校領域で、2022年からは小中領域も合わせて 「生徒を取り巻く環境における課題の解決」を目指す
  3. Copyright © 2025 Classi Corp. All Rights Reserved. 今日のアジェンダ 


    4 1. 技術的負債の正体 2. 事例紹介 - 「欠落」を「リリース」で埋めに行く 3. まとめ - 負債の再解釈
  4. Copyright © 2025 Classi Corp. All Rights Reserved. 「技術的負債」の出典、負債のメタファー 


    6
 著名な開発者、Ward Cunninghamが言った......と、 
 『リファクタリング』の著者、Martin Fowlerは言っている 
 出典: https://bliki-ja.github.io/TechnicalDebt 
 ソフトウェアシステムでは、クラフト(出来の悪いも の)が生まれやすい。システムの修正や拡張をし ようとしても、内部品質の欠如がそれを難しくして いる。「技術的負債」とは、Ward Cunninghamが 作ったメタファーである。 ファイナンスの負債のよ うに考えることで、こうしたクラフトの扱いのことを 考えやすくなる。

  5. Copyright © 2025 Classi Corp. All Rights Reserved. ご本人の説明 


    7
 2009年にWard CunninghamがアップロードしたYouTube動画上での説明は、こう...... 
 もしも自分たちが書いている プログラムを、 金融の世界に関する正しい捉え方だと自 分たちが理解した姿と一致させることがで きなくなれば、......開発スピードは遅くなって いくでしょう。それはまるで借金の利子を払 い続けるかのようです 
 出典: https://t-wada.hatenablog.jp/entry/ward-explains-debt-metaphor 

  6. Copyright © 2025 Classi Corp. All Rights Reserved. 9
 早くリリースするために書いた


    「雑なコード」 じゃないの?
 
 古いフレームワークにまみれた
 「レガシーコード」 じゃないの?

  7. Copyright © 2025 Classi Corp. All Rights Reserved. どうやら違うっぽい 


    10
 同じ動画で言ってるのが、これ 
 私は雑なコードを 
 書くことには 
 全く賛成しません 
 出典: https://t-wada.hatenablog.jp/entry/ward-explains-debt-metaphor 

  8. Copyright © 2025 Classi Corp. All Rights Reserved. けど、考えてみると 


    12
 「現時点での不十分な理解」でソフトウェアをリリースすることが「負債」の定義だとすると、 
 「当時最新のフレームワークで書いたシステム」が古くなるのは必ずしも「負債」ではないかもしれない 
 フレームワークの進化
 最近出たAngularJSに 
 挑戦してみよう!
 全然最新に追随出来てない!
 EOLじゃん!負債だ!
 (変更が大変なのはそれはそうだけど)
 2010年の時点では何も犠牲にしてない 
 有識者の離脱
 更新の停滞
 2010
 2025
 ※架空の事例です

  9. Copyright © 2025 Classi Corp. All Rights Reserved. 本発表での自分なりの定義 


    13
 技術的負債とは...
 
 何かをより早くリリースしようとした結果 、
 ソフトウェアが理想的な状態ではなくなり
 改修を加える度に追加のコストが掛かるようになった箇所

  10. Copyright © 2025 Classi Corp. All Rights Reserved. 「より早く=借り入れ」の現場で何が起きているのか 


    14
 いくつかパターンがあるが、概ね「知識の欠落」という言葉と 
 「内部的 ⇔ 外部的」「技術的 ⇔ ドメイン的」の2軸で整理できる(と筆者は考える) 

  11. Copyright © 2025 Classi Corp. All Rights Reserved. 「より早く=借り入れ」の現場で起きていること 


    15
 いくつかパターンがあるが、概ね「知識の欠落」という言葉と 
 「内部的 ⇔ 外部的」「技術的 ⇔ ドメイン的」の2軸で整理できる(と筆者は考える) 
 理論値では動くはずだけど、 
 本番の負荷に耐えられるか……? 
 全部入りで作ろうとしてるけど、 
 本当にお客さんはこれ使うの? 
 設計に自信がないけど、 
 有識者のレビューを受ける時間がない 
 この例外処理、業務フロー的に 
 あり得ないと思うけど一応書くか 

  12. Copyright © 2025 Classi Corp. All Rights Reserved. 「内部的な知識の欠落」は基本的に埋めた方が良い 


    16
 「設計に自信がないけど、有識者のレビューを受ける時間がない」(内部×技術) 
 ❌「レビューせずに急いで出してヨシ!」 
 󰢏「レビューはする。期日の件はスコープ調整しよう」 
 → レビューで得た設計知識が次の生産性を上げる 
 
 「この例外処理、業務フロー的にあり得ないと思うけど一応書くか」(内部×ドメイン) 
 ❌「違和感あるけどコードとしては動くから approve!」 󰢏「ドメインエキスパートのXXさんにSlackで聞いてみてくれない?」 
 → 質問して得たドメイン知識が次の生産性を上げる 
 
 
 
 

  13. Copyright © 2025 Classi Corp. All Rights Reserved. Classiの事例: 欠席連絡の理由カスタマイズ

    
 19
 保護者から受け付ける欠席連絡には「発熱」「頭痛」などの他、「忌引」「部活・大会」なども。 
 当初、欠席理由は固定のマスタデータであり「カスタマイズしたい」という声が複数あった 
 この部分

  14. Copyright © 2025 Classi Corp. All Rights Reserved. Classiの事例: 欠席連絡の理由カスタマイズ

    
 20
 初見では分かりづらいが、実は理由には階層があったり、制約があったりした 
 → 全てをカスタマイズ可能にするのは、工数的になかなか大変 

  15. Copyright © 2025 Classi Corp. All Rights Reserved. 足りなかった「外部×ドメイン」知識 


    21
 そもそも、要望してる人って 
 「何を」カスタマイズしたいんでしたっけ? 

  16. Copyright © 2025 Classi Corp. All Rights Reserved. 一口に「カスタマイズ」と言っても 


    22
 理論上は色々なパターンが考えられる 
 - コロナ対応で「COVID-19」を追加したい 
 - 「出席停止」系を保護者に勝手に入れられると困るから消したい 
 - 自分の学校独自の活動を大項目として追加したい 
 - 「病気」を早退の時でも使えるようにしたい 
 - 「その他」使用時に備考欄に必ず理由を入力してもらいたい 
 
 

  17. Copyright © 2025 Classi Corp. All Rights Reserved. 解法: 小さな仕様でまずリリースする

    
 23
 例えば、「小項目だけ追加 or 削除ができる」 仕様なら......
 - コロナ対応で「COVID-19」を追加したい → 対応可能 ⭕
 - 「出席停止」系を保護者に勝手に入れられると困るから消したい → 対応可能 ⭕
 - 自分の学校独自の活動を大項目として追加したい → 対応不可✖ 
 - 「病気」を早退の時でも使えるようにしたい → 対応不可✖ 
 - 「その他」使用時に備考欄に必ず理由を入力してもらいたい → 工夫すれば可能△ 
 - 「その他(備考欄に必ずご入力下さい)」を新設して貰えばいい
 
 

  18. Copyright © 2025 Classi Corp. All Rights Reserved. 実際、そうやってリリースした 


    24
 実際のヘルプページ 
 
 ディレクターやCSのメンバーとも相談し、 
 回避策を案内するなど文言を検討・調整 

  19. Copyright © 2025 Classi Corp. All Rights Reserved. 結果: 小さな仕様で大多数のユーザに満足いただけた

    
 25
 - 想定したユースケースはハマっていて、感謝の言葉ももらえた 󰢏
 - 大項目を追加したい、という声も一部あった 
 - が、懸念していたより少数だった 
 - 声が多かった場合は作ることを覚悟していたが、一旦作らない判断をした 
 

  20. Copyright © 2025 Classi Corp. All Rights Reserved. 結果: 小さな仕様で大多数のユーザに満足いただけた

    
 26
 - 想定したユースケースはハマっていて、感謝の言葉ももらえた 󰢏
 - 大項目を追加したい、という声も一部あった 
 - が、懸念していたより少数だった 
 - 声が多かった場合は作ることを覚悟していたが、一旦作らない判断をした 
 
 1. 小さな仕様にすることで「より早くリリース」した 
 
 2. 「顧客が要望しているもの」に関する知識を得た 
 
 3. 「使われない機能」という 最大の負債を防いだ 

  21. Copyright © 2025 Classi Corp. All Rights Reserved. まとめ -

    負債の再解釈 
 28
 - 「知識の欠落がある前提でリリースを急ぐこと」 こそが負債の「借り入れ」である 
 - 内部知識の欠落を放ってリリースしてしまうと、自然には返せない 
 - だからこそ、我々は普段こっちを目にすることが多い 
 
 - 「外部知識の欠落」なら、実は リリースすることによって埋める こともできる
 - 我々のコードがプロダクトと実世界を繋ぐから 
 - ここで力を発揮するには「要件定義への参画」が必須 
 - 得られた知識によって、必要に応じてまた改修をすれば良い 
 - だからこそ、「継続改善リリースしやすい環境」が超重要