第11章 技术债务量化管理
技术债务不是一个新话题,但在研发绩效体系里,它经常被忽视或简化。前面的体系提到了技术债要被看见、被记录、被评估、被偿还,但缺少具体的操作方法。
这一章我们讨论:如何量化技术债?如何管理偿还计划?如何让技术债进入绩效评价?
技术债务的本质
技术债务不是"代码写得不好"这么简单。更准确地说:
技术债务是我们为了短期目标,有意识或无意识地接受的长期成本。
技术债务可以分为三类:
| 类型 | 说明 | 处理方式 |
|---|---|---|
| 有意识技术债 | 为了验证方向、抢时间窗口,主动选择的方案 | 记录、评估、定期偿还 |
| 无意识技术债 | 因为认知不足、经验不够,无意中留下的问题 | 通过评审、复盘、测试发现并修复 |
| 恶性技术债 | 为了短期结果,故意隐瞒风险、绕过必要流程 | 必须进入低质量行为评价,不能容忍 |
绩效体系不应该惩罚所有技术债,但必须惩罚不可见、不可控、不可偿还的技术债。
技术债务量化评分卡
要管理技术债,首先要能评估它。用下面的评分卡可以把技术债从"感觉"变成"可量化的指标"。
评分维度
| 维度 | 评分标准 | 1分 | 3分 | 5分 |
|---|---|---|---|---|
| 影响范围 | 多少功能/模块受影响 | 局部,不影响核心 | 多个模块 | 全系统或核心路径 |
| 修复成本 | 修复需要多少人力和时间 | 1人天以内 | 1-2人周 | 1人月以上 |
| 业务风险 | 不修复会有什么后果 | 无风险,只是不优雅 | 偶发问题,有 workaround | 生产事故、安全隐患、性能阻断 |
| 扩散速度 | 问题是否会越变越大 | 不会扩散 | 缓慢扩散 | 快速恶化,新代码也会被污染 |
| 可见性 | 问题是否容易被发现 | 显而易见,有告警 | 需要仔细检查 | 隐藏很深,不出事不知道 |
综合评分
把每个维度的分数加起来,得到技术债的综合评分:
| 综合评分 | 等级 | 处理建议 |
|---|---|---|
| 5-10分 | 低优先级 | 记录下来,安排在空闲时间修复 |
| 11-18分 | 中优先级 | 安排在 1-2 个迭代内修复 |
| 19-25分 | 高优先级 | 暂停新功能,优先修复 |
评分示例
示例 1:一个命名不规范但不影响功能的模块
- 影响范围:2分(一个模块)
- 修复成本:2分(几小时重命名)
- 业务风险:1分(无风险)
- 扩散速度:1分(不会扩散)
- 可见性:1分(显而易见)
- 综合评分:7分(低优先级)
示例 2:核心支付模块缺少重试机制,偶发丢单
- 影响范围:5分(核心路径)
- 修复成本:3分(1人周)
- 业务风险:5分(资金损失、客户投诉)
- 扩散速度:3分(其他模块可能效仿)
- 可见性:3分(需要看日志才知道)
- 综合评分:19分(高优先级)
技术债务的管理流程
第一步:发现和记录
技术债不能只靠"感觉",要有系统的发现机制:
| 发现渠道 | 具体做法 |
|---|---|
| 代码评审 | 评审时同步记录技术债 |
| 事故复盘 | 复盘时问:是否有技术债导致了这个事故? |
| 架构评审 | 定期做架构评审,识别系统性问题 |
| 开发反馈 | 团队可以主动上报发现的技术债 |
| 工具扫描 | 用静态分析工具、复杂度工具发现问题 |
记录时,每个技术债条目应该包含:
- 问题描述
- 评分(用上面的评分卡)
- 发现时间
- 发现人
- 计划修复时间
- 责任人
第二步:评估和分类
不是所有技术债都要立刻修。根据评分分类:
| 分类 | 处理策略 |
|---|---|
| 必须立刻修 | 高风险、影响核心业务的技术债 |
| 排期修 | 中优先级的技术债,安排在迭代中 |
| 分期修 | 修复成本高但风险可控的,拆成小步骤 |
| 暂时不修 | 低优先级、不影响业务的,记录下来,持续观察 |
第三步:制定偿还计划
技术债偿还应该像功能开发一样,有明确的计划:
计划要素:
- 修复目标(要达到什么状态)
- 修复步骤(分几步完成)
- 时间安排(什么时候开始、什么时候完成)
- 责任人(谁负责)
- 验收标准(怎么算修完了)
示例计划:
技术债:支付模块缺少重试机制
评分:19分(高优先级)
目标:3个月内建立完善的重试和幂等机制
步骤:
1. 第1个月:设计方案,加入幂等ID(2人周)
2. 第2个月:实现重试逻辑,覆盖核心场景(2人周)
3. 第3个月:灰度验证,全面上线(1人周)
责任人:张三
验收标准:重试覆盖率 100%,幂等逻辑通过压力测试第四步:执行和跟踪
技术债偿还不能"说过就算",必须跟踪进度:
- 把技术债偿还任务纳入迭代规划
- 定期(如每周)更新进展
- 遇到阻碍及时升级
- 完成后做验收和复盘
第五步:预防新债
偿还旧债的同时,不能产生更多新债:
- 建立代码规范和架构原则
- 加强代码评审
- 做架构评审,在设计阶段就避免问题
- 用自动化工具防止已知问题再次出现
- 把"不产生恶性技术债"作为绩效评价的一部分
技术债务相关的 KPI 设计
技术债不能只用定性描述,也要有定量指标观察趋势。
推荐 KPI
| KPI | 计算方式 | 说明 |
|---|---|---|
| 技术债存量 | 所有未关闭技术债的评分总和 | 应该呈下降趋势,或至少不上升 |
| 技术债偿还率 | 已关闭技术债评分 / 期初总评分 | 观察偿还速度 |
| 新技术债产生率 | 本期新增技术债评分 / 本期交付功能点数 | 观察团队是否在控制新债 |
| 高优先级技术债占比 | 评分 >18 分的技术债数量 / 总数量 | 这个比例应该降低 |
| 技术债平均年龄 | Σ(每个技术债的存在天数) / 总数量 | 观察技术债是否被长期拖延 |
如何使用这些 KPI
不要用这些 KPI 机械地评价团队:
- 不要考核"技术债必须为 0"(这不现实)
- 不要因为团队上报技术债就惩罚他们(反而应该鼓励)
- 不要因为有技术债就否定团队的贡献
正确的使用方式:
- 观察趋势:技术债是在变好还是变坏?
- 发现问题:是否有某个模块或团队技术债快速增加?
- 分配资源:根据技术债的分布,合理安排资源
- 奖励进步:团队主动发现并偿还技术债,应该被认可
技术债务在绩效评价中的位置
技术债应该进入绩效评价,但要用正确的方式。
应该奖励的行为
| 行为 | 说明 |
|---|---|
| 主动发现技术债 | 不隐瞒问题,主动上报 |
| 有计划地偿还技术债 | 不是临时抱佛脚,而是有节奏地处理 |
| 预防新债 | 从源头减少技术债的产生 |
| 沉淀防债机制 | 建立规范、工具、流程,让技术债难以产生 |
不应该被奖励的行为
| 行为 | 说明 |
|---|---|
| 为了按期交付,故意绕开必要流程 | 制造恶性技术债 |
| 隐瞒技术债,等出事才暴露 | 让问题变得更严重 |
| 只修容易修的,不修真正重要的 | 避重就轻 |
| 一边还旧债一边制造更多新债 | 问题没有真正解决 |
绩效评价时如何考虑技术债
评价时可以问这些问题:
- 团队是否主动发现和记录技术债?
- 高优先级技术债是否得到及时处理?
- 技术债整体趋势是变好还是变坏?
- 团队是否有意识地预防新债?
- 是否沉淀了防止技术债的机制?
不要因为有技术债就否定团队,但要关注:
- 技术债是否可见?
- 是否在可控范围内?
- 是否在被积极管理?
技术债务管理的常见误区
误区 1:技术债必须为 0
这不现实,也没有必要。为了赶时间窗口、验证方向,适当接受一些技术债是正常的。
正确做法:技术债不需要为 0,但必须可见、可控、有偿还计划。
误区 2:技术债只是"技术问题"
技术债不只是技术问题,也是业务问题。它会影响交付速度、质量、成本、团队士气。
正确做法:技术债需要业务方和技术方共同面对,一起决定偿还优先级和节奏。
误区 3:偿还技术债是"不务正业"
有些团队认为"先做功能,技术债以后再说"。但技术债会让以后的功能开发越来越慢,质量越来越差。
正确做法:每个迭代都应该安排一定比例的时间(如 20%)偿还技术债。
误区 4:用"重构"的名义制造更多技术债
有些团队为了"技术理想",不考虑成本和风险,盲目重构,反而制造更多问题。
正确做法:重构要有明确目标、清晰计划、验收标准,不能为了重构而重构。
一套可落地的技术债管理模板
技术债登记表
| ID | 问题描述 | 评分 | 发现时间 | 发现人 | 计划修复时间 | 责任人 | 状态 |
|---|---|---|---|---|---|---|---|
| 1 | 支付模块缺少重试机制 | 19 | 2026-02-15 | 张三 | 2026-05-30 | 张三 | 进行中 |
| 2 | 用户中心表结构不合理 | 12 | 2026-02-20 | 李四 | 2026-06-30 | 李四 | 待开始 |
技术债季度报告
内容包括:
- 技术债存量变化(期初 vs 期末)
- 技术债偿还情况(完成了哪些)
- 新增技术债分析(为什么会产生,如何预防)
- 高优先级技术债处理进展
- 下季度计划
技术债验收清单
修复完成后,确认:
- 问题是否真正解决?
- 是否有测试覆盖?
- 是否有文档说明?
- 是否有防止复发的机制?
- 相关团队是否知道这个变化?
总结
技术债务管理的核心不是"消灭所有技术债",而是:
- 让技术债可见:不隐瞒、不回避
- 量化评估:用评分卡替代感觉
- 有计划管理:不是救火式地修,而是有节奏地还
- 预防为主:从源头减少新债的产生
- 进入绩效:但要用正确的方式,不机械考核
当团队真正把技术债管理起来,而不是把它当成"欠债"时,交付效率和质量都会持续提升。
相关内容
支付宝
微信