技术债务
识别、登记、偿还策略。
25 分钟
技术债务
技术债务(Technical Debt) 像金融债务:短期「借速度」跳过设计、测试、文档,长期要付 利息——改需求更慢、bug 更密、新人更懵。成熟团队不是零债务,而是 可见、可量化、有计划地偿还。
学习目标
- 识别技术债务的常见来源与症状
- 会使用登记方式(issue、标签、Sonar 债务分钟)
- 制定与业务平衡的偿还策略
债务从哪来
| 来源 | 例子 |
|---|---|
| 有意权衡 | 赶上线,TODO 补测试 |
| 无意腐化 | 需求叠在烂结构上 |
| 知识流失 | 原作者离职,文档缺失 |
| 依赖老化 | Spring 2.x 未升级 |
与 cq-smells 重叠:smell 久不 refactor 即债务。文档过期见 cq-docs。
如何登记
- Issue 模板:现象、影响、粗略工时、建议方案
- 标签:
tech-debt、priority/P2 - 工具:SonarQube 债务、Dependabot PR
- ADR:重大妥协写决策原因(cq-team)
禁止:口头「以后再说」无 ticket。Review 发现债务可 开 issue 而非阻塞小 PR,见 cq-reviews。
偿还策略
规则 1:每个 sprint 固定 10–20% 容量还债
规则 2:动到 legacy 模块时「童子军 +1」
规则 3:新功能不 Copy-Paste 扩大债务
优先还 高利息 项:频繁改动区、无测试的核心路径。补测试可参考 testing-essentials;大升级配合 git-essentials 长分支与 feature flag。
spring-boot-essentials 版本升级、安全补丁也是债务偿还的一种。AI 加速写功能时别加速 堆债,ai-coding-essentials 强调 merge 前门禁。
练习
- 在你项目列 3 条 tech debt,估工时并标 priority
- 找一处
TODO/FIXME,决定:本周还、开 issue、或删(若已无效) - 与产品/负责人对齐:下一迭代留多少 % 还债
小结
技术债务要记账、付息有计划;smell 与文档过期都是常见本金。 下一课团队规范:ADR 与 Definition of Done 把质量写进协作契约。