ストーリー
技術的負債の分類
enum DebtType {
DELIBERATE_PRUDENT = "意図的・慎重", // 「今はこの設計で良い。後で直す」
DELIBERATE_RECKLESS = "意図的・無謀", // 「設計する時間がない」
INADVERTENT_PRUDENT = "偶発的・慎重", // 「より良い方法が分かった」
INADVERTENT_RECKLESS = "偶発的・無謀", // 「レイヤリングって何?」
}
interface TechDebt {
id: string;
title: string;
type: DebtType;
area: string;
severity: "critical" | "high" | "medium" | "low";
interestRate: string; // 放置した場合の追加コスト
repaymentCost: string; // 修正にかかるコスト
businessImpact: string;
}
// 負債台帳の例
const debtRegister: TechDebt[] = [
{
id: "TD-001",
title: "認証モジュールの密結合",
type: DebtType.INADVERTENT_PRUDENT,
area: "backend/auth",
severity: "high",
interestRate: "新機能追加のたびに+2日の追加工数",
repaymentCost: "2人×2週間",
businessImpact: "機能リリース速度の低下",
},
{
id: "TD-002",
title: "テストのないレガシーコード",
type: DebtType.DELIBERATE_RECKLESS,
area: "backend/payment",
severity: "critical",
interestRate: "月に1-2件の本番障害リスク",
repaymentCost: "1人×3週間",
businessImpact: "障害による売上損失リスク",
},
];
技術的負債の可視化
ビジネスサイドに伝わる形で可視化します。
## 技術的負債レポート(月次)
### サマリー
| 指標 | 先月 | 今月 | 傾向 |
|------|------|------|------|
| 負債総数 | 23件 | 21件 | 改善 |
| Critical | 3件 | 2件 | 改善 |
| 新規追加 | 2件 | 1件 | 改善 |
| 返済完了 | 4件 | 3件 | - |
| 推定影響(月あたり) | 45人日 | 38人日 | 改善 |
### ビジネスへの影響
- 技術的負債により、機能開発速度が推定30%低下
- 月間3件の障害のうち2件は負債に起因
- 新メンバーのオンボーディングが2週間余分にかかる
返済戦略
| 戦略 | 説明 | 適用場面 |
|---|---|---|
| 20%ルール | スプリントの20%を負債返済に充てる | 継続的な返済 |
| ボーイスカウトルール | 触ったコードを少しだけ良くする | 日常的な改善 |
| 負債スプリント | 定期的に負債返済専用スプリントを設ける | 大きな負債の返済 |
| 新機能と抱き合わせ | 関連する新機能開発時に一緒に直す | 自然な返済 |
// 返済計画の立て方
interface RepaymentPlan {
strategy: "continuous" | "sprint" | "bundled";
budget: string; // チームキャパシティの何%を割くか
prioritization: "severity" | "business_impact" | "proximity";
tracking: {
metric: string;
current: number;
target: number;
deadline: string;
};
}
const plan: RepaymentPlan = {
strategy: "continuous",
budget: "20% of sprint capacity",
prioritization: "business_impact",
tracking: {
metric: "機能追加の平均リードタイム(日)",
current: 14,
target: 7,
deadline: "2025-Q3",
},
};
まとめ
| ポイント | 内容 |
|---|---|
| 負債の分類 | 意図的/偶発的 × 慎重/無謀の4象限 |
| 可視化 | 負債台帳と月次レポートでビジネスに伝わる形に |
| 返済戦略 | 20%ルール、ボーイスカウトルール等を組み合わせる |
| テクニカルリードの役割 | 負債を「見える化」し、計画的に返済する仕組みを作る |
チェックリスト
- 技術的負債の4象限を説明できる
- 負債台帳の作り方を理解した
- 返済戦略の選択肢を把握した
- ビジネスサイドへの伝え方を学んだ
次のステップへ
次は理解度チェックです。Step 1で学んだテクニカルリードの役割について確認しましょう。
推定読了時間: 15分