技術的負債は、その場をしのぐ実装や先送りにした設計が、あとから開発速度を落とし続ける状態を指す言葉です。 借金にたとえられるのは、放置している間ずっと利息を払い続けるからです。
利息は「時間」で払う
負債があると、次のような形で毎回コストが乗ります。
- 1行の変更に影響範囲の調査が必要になる
- 似た処理が3箇所にあり、全部直さないとバグる
- テストが無いので、直したあと手作業で確認する時間が要る
見積もりが妥当なのに毎回遅れるチームは、この利息を計算に入れていないことが多いです。
「意図した負債」と「無自覚な負債」は別物
ここを混ぜると議論が噛み合いません。
| 意図した負債 | 無自覚な負債 | |
|---|---|---|
| 発生 | 期限のために承知の上で選んだ | 知識不足・確認不足で生まれた |
| 記録 | 残っている(コメント、課題票) | 残っていない |
| 返済 | 計画できる | 存在に気づいていない |
急ぐために雑に作ること自体は、必ずしも間違いではありません。問題は記録せずに忘れることです。 「あとで直す」と決めたなら、その場で課題として残してください。残っていない負債は、担当者が変わった瞬間に「なぜこうなっているのか分からないコード」になります。
全部返そうとしない
技術的負債の話がうまくいかない典型は、「まとめてリファクタリングする期間をください」という提案です。効果が見えにくく、承認されにくく、途中で止まります。
現実的なのは触る場所から直すやり方です。優先順位は「変更頻度 × 痛みの大きさ」で決めます。何年も触らないコードは、汚くても放っておいてよい——利息が発生していないからです。