技术债务

今天选择更快、不太干净的实现所累积的成本,将随着未来工作的缓慢和错误而得到回报。

什么是技术债务?

技术债务 是现在选择更快、更不干净的实施以换取更慢、更昂贵的未来工作的累积成本。这个比喻(由 Ward Cunningham,1992 年创造)是有意为之的:就像金融债务一样,你会以错误、减速和返工的形式支付利息,直到你“还清”。

技术债务从何而来

  • 刻意的权衡:“立即发布,重构下一个冲刺”以达到最后期限。
  • 知识差距:在团队充分了解该领域之前选择的模式。
  • 随着时间的推移而腐烂:2018 年的干净代码可能与 2026 年的代码库不一致。
  • 跳过测试、文档或类型:快速跳过,昂贵的添加回来。

冲刺中的症状

  • 速率 趋势下降:同样的团队,同样的努力,更少的产出。
  • 估计爆了:看似微小的改变通常需要三倍于计划的努力。
  • 错误重现:同样的根本原因不断出现在新的罚单中。
  • “恐惧”的故事:没有人自愿接触的代码区域。

如何管理它

  • 明确跟踪它:将债务项目记录为待办列表工单,而不是不言而喻的团队民间传说。
  • 储备冲刺能力:许多团队将每个冲刺的 10-20% 分配给债务偿还。
  • 将还款与特色工作挂钩:偿还您已经接触某个功能的模块中的债务。
  • 童子军规则:使文件比您发现时更干净。

常见错误

  • 《生活大爆炸》改写:几乎总是超出预算并且很少完成。增量重构。
  • 平等对待所有债务:只偿还拖慢团队速度的债务 现在 或接近关键特征。
  • 无能见度:只存在于工程师头脑中的债务永远不会优先于功能。

相关

在没有打开术语表选项卡的情况下运行冲刺

SprintFlint 在 30 秒内设置一个具有合理默认值的工作冲刺:速率、燃尽、回顾和容量全部内置。每月 50 张免费工单。