技術的負債
短期的な開発速度を優先した結果、将来的に追加コストが発生する状態。Ward Cunninghamが提唱。
負債のメタファー
金銭的な負債と同様、技術的負債には「利子」がつく。放置すると複利的に悪化し、変更コストが増大する。
発生要因
- 短期的な納期優先
- 知識不足
- 設計の陳腐化
- ドキュメント不足
認知負荷との関係
技術的負債が蓄積すると、コードベースの複雑さが増し、認知負荷の保持負荷と翻訳負荷が増大する。プロダクションモデルの構築精度が低下し、変更の影響範囲が予測困難になる。
負債の分類
意図的 vs 無意識的
- 意図的負債: ビジネス上の判断で戦略的に受け入れる
- 無意識的負債: 知識不足や怠慢で発生
意図的負債は計画的に返済する前提で受け入れるべき。
発生源による3分類
| 種類 | 特徴 | 対応 |
|---|---|---|
| 意図的負債 | 技術知識を活用しない選択 | 必ず避けるべき |
| 変化による負債 | 技術進化・ドメイン変化で発生 | 早期回収が望ましい |
| 学習による負債 | 後から学んだ知識で判明 | 成長の証:早期改善を推奨 |
割れ窓理論との関係
割れ窓理論が示すように、技術的負債を放置すると改善機会が失われる。市場圧力は継続的で、負債返済の時間が確保できず、スパイラル的に悪化する。
返済方法
関連
参照
- 良いコードとは何か - 技術的負債の分類と対処法
- イシューからはじめよ - 技術的負債への対処優先度の判断