首页/开发/代码质量与评审速查/技术债台账:登记、排序与偿还节奏
技术债与度量63 条

技术债台账:登记、排序与偿还节奏

把债务当作可管理条目:登记症状与利息证据、给排序依据(利息 × 改动频率)、每个迭代固定配额偿还;台账公开在团队可访问处,随偿还更新状态。

技术债台账是什么

把债务当成可管理的工作项而不是口头抱怨:每条记录症状、成因、利息证据、偿还方案和估计,放在团队都能看到的地方,随偿还更新状态。有了台账,债务才和功能需求站在同一个排序池里竞争资源,而不是永远排在功能之后。台账的价值不在记录本身,而在于把「这段代码很难改」翻译成可排序、可估算、可验收的条目。

基本信息

字段症状 / 成因 / 利息证据 / 偿还方案 / 估计 / 状态
排序依据利息 × 变更频率,热点优先
节奏每迭代固定比例(如 15%)与功能同排
可见性团队可访问,不是个人笔记
验收偿还完成的判定写清:看什么指标或行为

登记与维护要点

  • 症状写可观察现象(「改价目表要动四处」),而不是主观评价
  • 利息要有证据:返工耗时、缺陷数、发布受阻次数
  • 排序用利息乘更改频率:改得勤又疼的地方优先
  • 偿还方案写成可执行动作,避免「重构一下」这种无法估算的描述
  • 每次迭代回顾更新状态,已偿还的移出而不是堆积
  • 决定不还的条目也写清理由,避免反复讨论同一个东西

台账字段示例

台账字段示例
CREATE TABLE tech_debt (
  id, area,              -- 位置:模块/目录
  symptom,               -- 症状:可观察现象
  cause,                 -- 成因:赶工/方案妥协/认知不足
  interest_note,         -- 利息证据:返工工时、缺陷数
  change_freq,           -- 近三个月改动次数
  repay_plan,            -- 偿还方案:具体到拆哪个类
  estimate_days,         -- 估计:人日
  status                 -- 待排期/进行中/已偿还/主动不还
);

排序示例

条目改动频率利息证据优先级
报表口径模块高每次需求多花 2 天高
日志格式工具低偶有新增格式低
支付回调重试中季度内 3 次线上告警高
旧导入脚本极低无主动不还
用户表读写混用高两次并发问题高
台账不是越长越好:条目超过几十条说明缺乏取舍。可以按模块聚合,只保留进入偿还候选的细项,其余作为背景记录;否则清单本身会变成一项新的维护负担。
配额如果只在「空闲时间」执行,等于没有配额:功能排期会永远吃掉空档。把债务项写进迭代计划、和需求一起承诺,才真的会还;同时要留出随时插入高利息项的空间。

易错点

  • 台账只增不减:已偿还的条目不更新,几个月后没人再信任它
  • 无迭代配额只靠空闲时间:债务永远排在功能之后,利息持续累积
  • 症状描述写成主观评价(「代码很乱」):无法排序、无法验收,也无法估算
  • 把台账当成考核依据:团队开始隐瞒或美化条目,数据随即失真

数据来源与参考

  • 技术债管理工程实践(台账化与迭代配额)综合
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌