技术债隐喻从哪来
技术债由 Ward Cunningham 在 1992 年提出:用「借款」比喻为了当下交付而选择的次优实现,未来要以额外的修改成本偿还利息。这个隐喻的价值在于沟通取舍——它能说清「现在快一点,以后慢一点」的代价,而不是给人贴标签。
基本信息
| 提出者 | Ward Cunningham(1992 年) |
|---|---|
| 本金 | 补齐质量差距所需的返工成本 |
| 利息 | 现状导致的持续额外成本:改得慢、容易出错、不敢动 |
| 常见误用 | 把所有不喜欢的东西都归为技术债 |
利息在工程上的表现
- 小需求也要改很久:结构不匹配,改动要绕开多个历史包袱。
- 改动容易顺手引入缺陷:缺少测试与清晰边界,风险靠人盯。
- 新人上手慢:没有文档与稳定结构,只能靠口口相传。
- 被迫做重复劳动:同一类问题反复出现,每次都手工处理。
- 没人敢动核心模块:动一次代价太大,只好持续打补丁。
常见的技术债类型
| 类型 | 来源 | 偿还方式 |
|---|---|---|
| 设计债 | 为赶工期简化结构 | 重构,配合测试保护 |
| 测试债 | 缺用例或断言无效 | 补关键路径用例并纳入 CI |
| 文档债 | 接口与配置未同步 | 补齐说明与迁移方式 |
| 依赖债 | 版本落后或无人维护 | 制定升级与替换计划 |
| 知识债 | 只有少数人了解核心逻辑 | 结对与设计记录 |
原话语境
原话语境
// 大意:先把代码交给用户以获得反馈,
// 但若不尽快把「理解过的设计」补回去,
// 团队会越走越慢——每一笔利息都在累加怎么把它谈清楚
- 说清本金与利息:补上要多久,不补每月多花多少时间。
- 用可观测现象描述:交付周期变长、缺陷率上升、返工次数增加。
- 给出偿还节奏:随需求顺手偿还,还是安排专门窗口。
- 区分有意与无意:有意借款要记录,无意造成的问题要先补测试。
债务不等于错误代码:它是关于「现在省、将来还」的取舍叙述,重点在把利息说清楚。
隐喻的沟通对象往往不是工程师:用交付周期与故障数据描述利息,比用代码术语更容易被理解。