技能标识:tech-debt-ledger
>
技术债务就像金融债务。为了加快速度而承担债务是可以的——只要你知道利率、跟踪余额,并有一个还款计划。问题是,大多数团队有一堆他们甚至看不懂的借条。
你的代码库存在技术债务。每个人都知道这一点。但没有人知道有多少、成本多少,或者何时会变得不可持续。
技术债务分类账将复式记账法应用于技术债务。每一个捷径、变通方法和我们稍后修复都会成为分类账条目,包含:
并非所有技术债务都相同。不同类型的债务有不同的利率:
| 债务类型 | 本金 | 利率 | 利息类型 | 示例 |
|---|---|---|---|---|
| 审慎-有意 | 已知、已规划 | 低(2-5%) | 单利 | 先手动部署上线;后续再自动化 |
| 审慎-无意 |
当前成本 = 本金 + 累计利息
其中:
单利: 累计利息 = 本金 × 利率 × 时间
复利: 累计利息 = 本金 × (1 + 利率)^时间 - 本金
总债务负担 = Σ(所有条目的当前成本)
偿债比率 = 每月利息支付 / 每月开发能力
< 0.15 → 健康
0.15-0.30 → 可控(优先偿还)
0.30-0.50 → 紧张(债务正在拖慢你)
> 0.50 → 危机(大部分工作在应对债务,而非构建功能)
每个债务条目都是一个完整的金融工具:
╔══════════════════════════════════════════════════════════════╗
║ 债务条目:#TD-2025-047 ║
╠══════════════════════════════════════════════════════════════╣
║ ║
║ 描述:支付流程缺少集成测试 ║
║ 位置:src/payments/, src/checkout/ ║
║ 类别:鲁莽-有意 ║
║ 产生时间:2025-01-15(Sprint 42,上线截止日期) ║
║ ║
║ 本金: 16个开发小时,用于编写全面的集成测试套件 ║
║ ║
║ 利率: 每季度20%(复利) ║
║ 利息类型: 复利——未经测试的代码会吸引更多未经测试的代码; ║
║ 复杂性不断增长 ║
║ ║
║ 当前余额: 23.1个开发小时(已产生7.1小时利息) ║
║ ║
║ 最低还款额: 每月2个开发小时 ║
║ (每次部署时手动测试,调查支付相关bug) ║
║ ║
║ 到期日: 2025-07-01(欧盟合规审计) ║
║ 到期罚金: 合规失败,可能面临罚款 ║
║ ║
║ 利息说明: ║
║ 每个月没有测试,支付代码就会发生变化。每次变化都使最终的 ║
║ 测试套件更难编写。开发人员避免重构,因为没有安全网。 ║
║ 糟糕的模式会固化。今天16小时的修复在6个月后会变成40小时的修复。 ║
╚══════════════════════════════════════════════════════════════╝
| 评级 | 债务与能力比率 | 说明 |
|---|---|---|
| AAA | < 5% | 最小债务,健康代码库 |
| AA |
债务热力图:
├── src/payments/ ████████████████████ 42小时(占总债务36%)
├── src/auth/ ████████████ 24小时(21%)
├── src/checkout/ ████████ 18小时(15%)
├── src/api/ ██████ 14小时(12%)
├── src/utils/ ████ 9小时(8%)
└── src/ui/ ████ 9小时(8%)
总计:116个开发小时
自动发现:
├── TODO/FIXME/HACK/WORKAROUND注释 → 转换为分类账条目
├── 代码复杂性热点 → 潜在的结构性债务
├── 测试覆盖率缺口 → 测试债务
├── 过时的依赖项 → 维护债务
├── 复制粘贴的代码 → 重复债务
├── 死代码/未使用的导出 → 整洁性债务
├── 缺失的错误处理 → 可靠性债务
└── 硬编码值 → 配置债务
手动发现:
├── 我们知道这不对,但是...的决策
├── 为赶截止日期采取的捷径
├── 推迟的重构
├── 缺失的文档
└── 已知的安全漏洞
对于每个条目:
├── 估算修复时间(乐观、现实、悲观)
│ └── 本金 = 现实估算
├── 估算利率:
│ ├── 这个区域是否频繁变更?(高变更率 = 高利率)
│ ├── Bug是否集中在这里?(高Bug率 = 高利率)
│ ├── 这是否阻碍其他工作?(阻碍 = 高利率)
│ └── 是否有截止日期?(截止日期 = 到期日)
├── 分类利息类型:
│ ├── 单利:成本线性增长(技术保持不变)
│ └── 复利:成本指数级增长(复杂性滋生复杂性)
└── 设定最低还款额:维持其运行的持续维护成本
| 策略 | 描述 | 最适合 |
|---|---|---|
| 雪崩法 | 先偿还最高利率的债务 | 最大化长期节省 |
| 滚雪球法 |
季度债务预算:
├── 总开发能力:480个开发小时
├── 功能开发分配:384个开发小时(80%)
├── 债务偿还分配:96个开发小时(20%)
│
├── 还款计划(雪崩策略):
│ ├── #TD-2025-047:支付测试(16小时本金,20%利率)→ 全额偿还
│ ├── #TD-2025-023:认证模块重构(24小时本金,15%利率)→ 全额偿还
│ ├── #TD-2025-031:API版本管理(18小时本金,10%利率)→ 全额偿还
│ └── #TD-2024-089:遗留工具函数(38小时本金,8%利率
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 tech-debt-ledger-1776274608 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 tech-debt-ledger-1776274608 技能
skillhub install tech-debt-ledger-1776274608
文件大小: 5.02 KB | 发布时间: 2026-4-16 17:23