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

技術的負債の正体を知って向き合う / Facing Technical Debt

Avatar for irof irof
October 09, 2025

技術的負債の正体を知って向き合う / Facing Technical Debt

見て見ぬフリはもう終わり!技術負債解消の実践知を学ぶ夜【D-Plus Osaka #5】
https://d-plus.connpass.com/event/367909/

LT資料です。LTですってば。

Avatar for irof

irof

October 09, 2025
Tweet

More Decks by irof

Other Decks in Programming

Transcript

  1. irof
 • ふつうのプログラマ
 • 個人事業主
 • 開発全域の支援をしています
 • #アイコンだけでも覚えてって下さい
 •

    関ジャバの中の人してます
 ◦ 毎月イベントしてるのでぜひ。
 ◦ https://kanjava.connpass.com

  2. 技術的負債という言葉の出自
 • Ward Cunningham(ウォード カニンガム) 
 ◦ Wikiの発明者、アジャイルソフトウェア開発宣言の著者 
 •

    初出は1992年
 ◦ 33歳
 ◦ もうすぐ定年だね?
 • リファクタリングを上司に説明するために採用したメタファ 
 ◦ 扱っていたシステムが金融系だったから採用された 
 ◦ もともと負債に馴染みがある文脈 
 • 一般的に「負債」にネガティブな印象を持ちがちだが、金融文脈ではポジティブな側面があ り、元々のメタファの意図は後者だったりする。 
 • とはいえ「技術的負債」という言葉が広がったのは一般に認知されているネガティブさがある が故だろうとか思ったりする。

  3. いろんな人がいろんなことを言っている例
 • A Mess is not a Technical Debt. -

    Uncle Bob
 ◦ 散乱は負債ではない
 • Technical Debt Quadrant - Martin Fowler
 ◦ 技術的負債の四象限
 • 怪獣大決戦
 ◦ この手のはいろんな文脈でしょっちゅうやってるじゃれあ いみたいなもの

  4. ざっくり: Uncle Bob
 • 技術的負債と散乱(Mess)は別物である
 • 技術的負債とは
 ◦ 短期的に利益があるが、将来のリリースを遅らせる
 ◦

    クリーン
 • 散乱とは
 ◦ 常に損失となる、その瞬間からリリースを遅らせる
 ◦ 怠惰の現れ

  5. 二者の意見に対する私の理解
 • 共通するのは「技術的負債」という言葉のままでは扱いづら いので分類しようとしている
 • Uncle Bobは散乱を切り分けて、それをなくしてから技術的負 債に向き合おうというアプローチ
 • Martin

    Fowlerはクラフトのすべてで負債のメタファは有効と 見ていて、負債をカテゴライズしてそれぞれ戦っていこうとい うアプローチ
 • どっちも有用なので状況に合いそうなら選ぶ

  6. メタファ活用のポイント
 • メタファの有用な部分 だけ 扱う
 ◦ 扱いやすい: 元本の返済と利息
 ◦ 扱いにくい:

    その他の負債に絡むあれこれ
 • 扱いにくい部分で試行錯誤したところで、役立たないどころか ミスリードまであるのがメタファ
 • このメタファは あなたの直面している現実に有用 でしょう か?

  7. 紹介: 文書化する際に有効な属性
 • 有効期限
 ◦ 短めにして「有効期限の更新が行われないものは破棄す る」くらいがちょうどいい
 ◦ 更新めんどくさい?多すぎるんじゃないかなぁ
 •

    適用範囲
 ◦ ブラックリストではなくホワイトリストで適用範囲を明示す る
 ◦ 書いていない範囲には適用されないようにする

  8. 利息: 利率 複利
 • 負債の存在があらたな負債を呼びこみ、元本も増えて利息も 増えていくものがある
 • 自己増殖型
 • 散乱にはこの傾向のものが多い


    ◦ 微妙なコードベースほど微妙なコードがそのままコピペさ れがちだし、一貫性のために微妙な設計を真似ることが 推奨されたりもする

  9. 利息: 単位 認知負荷
 • 「量が多い」だけでも利息がかかる
 ◦ ちょっとした作業でかかる時間がかわらなくても頭の片隅 で気にすることが増えている状態
 • 作業工数以外の単位は蔑ろにされがち


    • 「特定の人しか対応できない」も利息がかかる負債
 • 元本と単位が異なるのも特徴
 ◦ 現金の利子がポイントでつく、みたいな?

  10. 実践例1: 個人活動
 • 毎日1コミット以上やる
 ◦ 281日継続中(10/08現在)
 ◦ 題材: JIG
 ▪

    2018-02-12生まれの生きたプロダクト
 • Tidy First?を元日に読んで思い立った
 • やってみたら色々あって色々ある

  11. (C)計画的に返す
 • ……できんの?
 • 「定期的に計画を立てて返済する」
 ◦ 払えてるのは元本じゃなく溜まった利息では?
 • 貯まる構造の方にアプローチしたい気持ちが強いです
 •

    なので「大規模リファクタリングで解消」にはネガティブな反応 をしがちな私。
 ◦ 有効な場面や必要な状況は理解できる
 ◦ ファーストチョイスにはしない

  12. まとめ: 技術的負債解消に向けた取り組み
 • メタファを上手く使うと正体が照らし出せる
 ◦ 役立つようにメタファを調整する
 • 放置していると利息で身動きがとれなくなる
 • 利息を減らすには

    地道&継続 が現在も有力
 • 「リファクタリング」で動きづらいならTidyがいい塩梅
 ◦ Tidyからはじめよう
 ……そんなこと言ってたっけ?