ひとことで言うと#
技術的負債を「元本(修正コスト)」と「利子(放置による継続コスト)」で定量評価し、利子率の高い負債から優先的に返済する意思決定フレームワーク。
押さえておきたい用語#
- Tech Debt(テクニカルデット)
- 短期的な速度を優先した結果、将来の変更コストを増加させる設計・実装上の妥協を指す。
- Interest Rate(利子率)
- 負債を放置することで時間あたりに蓄積する追加コストを指す。利子率が高いほど早期返済の優先度が上がる。
- Principal(元本)
- 負債を解消するために必要な修正工数そのものである。リファクタリングやリプレースにかかる直接コストを意味する。
- Deliberate Debt(意図的負債)
- トレードオフを理解した上で戦略的に受け入れた負債。期限や返済計画とセットで管理する手法。
- Reckless Debt(無自覚な負債)
- 知識不足やプロセスの欠如から気づかずに作り込まれた負債のこと。発見が遅れるほど利子が膨らむ。
テクニカルデット優先順位付けの全体像#
こんな悩みに効く#
- 技術的負債が山積みでどこから手を付ければいいかわからない
- 「リファクタリングしたい」という声は多いが、ビジネス側を説得できない
- 負債返済に時間を使ったのに開発速度が改善しなかった
基本の使い方#
具体例#
エンジニア40名のフィンテック企業。技術的負債の棚卸しで 47件 がリストアップされた。最も利子率が高かったのは「CIパイプラインのFlaky Test」で、週に平均 12回 の偽陽性失敗が発生し、エンジニア全体で週 30時間 を再実行と原因調査に費やしていた。
元本は 2人×3週間(テスト基盤の整理とFlaky Testの修正)。利子率は月あたり 120時間、元本は 240時間 で、投資回収期間はわずか 2ヶ月。
返済後、CIの成功率が 72% → 97% に改善。エンジニアのデプロイ頻度が週 3回 → 8回 に増加した。
エンジニア80名のBtoB SaaS。決済モジュールがモノリスの中心に位置し、あらゆる機能変更が決済コードに影響していた。月平均 4件 の決済関連インシデントが発生し、新しい決済手段の追加に毎回 8週間 かかる状態。
利子率は極めて高いが、元本も 6人×4ヶ月 と大きい。Strangler Figパターンで段階的に分離する計画を立て、四半期ごとに1サブモジュールずつ切り出した。
1年後、決済関連インシデントは月 0.5件 に減少。新決済手段の追加は 2週間 で完了するようになっている。
エンジニア15名の教育系スタートアップ。CTOが「技術的負債の返済に20%の時間を使いたい」と提案するも、CEOから「目に見える成果が出ない作業に時間を割けない」と却下されていた。
利子率の定量化を導入。「テスト不足による本番障害の平均復旧時間 4.2時間 × 月 6回 =月 25.2時間」「レガシーAPIの手動変換作業 月40時間」など、負債の利子をエンジニア時給で金額換算し、月間 約180万円 の隠れコストとして提示した。
CEOが即座に承認し、四半期で上位5件の負債を返済。6ヶ月後にはリリースサイクルが 月1回 → 週2回 に短縮された。
やりがちな失敗パターン#
- 利子率を無視して元本の小さい負債から返済する — 簡単な修正に手を付けがちだが、開発速度への貢献が少ない。利子率の高い負債を優先する
- すべての負債を返済しようとする — 利子率が低く元本が大きい負債は放置が合理的な場合もある。「返済しない」という判断も重要
- 負債の棚卸しが1回限り — 四半期ごとに再評価しないと、新たに発生した高利子率の負債を見逃す。棚卸しは継続的に行う
- 負債の定義が曖昧 — 「コードが汚い」は負債ではなく感想である。「何が遅くなるか」「何が壊れるか」を具体的に記述する
まとめ#
テクニカルデット優先順位付けは、技術的負債を 「利子率(放置の継続コスト)」 と「元本(修正コスト)」で定量評価し、投資対効果の高い順に返済するフレームワーク。利子率が高く元本が小さい負債を最優先に、大きな負債は段階的に分割して計画的に返済する。定量化によりビジネス側との合意形成が容易になり、継続的な返済文化の醸成につながる。