软件工程之美学习笔记二十五 24 | 技术债务:是继续修修补补凑合着用,还是推翻重来?

《软件工程之美》材料地址:https://time.geekbang.org/column/article/91729

什么是技术债务?

根据软件项目管理金三角,如果范围不减,成本不增加,还想节约时间走捷径,就会影响到质量。这种对质量的透支,就是一种债务。而技术债务,就是软件项目中对架构质量和代码质量的透支。

  • 技术债务是有利息的
    债务的“利息”,就是在后面对软件做修改的时候,需要额外的时间成本。
  • 技术债务不一定都是坏的
    通过欠债,提高短期开发速度,快速上市,或快速验证

技术债务产生的原因

  1. 轻率(reckless)还是谨慎(prudent);
  2. 有意(deliberate)还是无意(inadvertent)。
    软件工程之美学习笔记二十五 24 | 技术债务:是继续修修补补凑合着用,还是推翻重来?

如何管理技术债务?

软件工程之美学习笔记二十五 24 | 技术债务:是继续修修补补凑合着用,还是推翻重来?

  1. 识别技术债务
    开发速度降低;
    单元测试代码覆盖率低
    代码规范检查的错误率高
    Bug 数量越来越多
  2. 选择处理技术债务策略
  • 重写:推翻重来,一次还清
  • 维持:修修补补,只还利息
  • 重构:新旧交替,分期付款
    原则,看哪一种策略投入产出比更好。
  1. 实施策略
  • 对于重写的策略,要当作一个正式的项目来立项,按照项目流程推进;
  • 对于重构的策略,要把整个重构任务拆分成一个个小任务,放到项目计划中,创建成 Ticket,放到任务跟踪系统中跟踪起来;
  • 对于维持的策略,也要把需要做的修补工作作为任务,放到计划中,放到任务跟踪系统中。
    实施策略的关键就在于要落实成开发任务,做为项目计划的一部分。

预防才是最好的方法

预先投资
不走捷径
及时还债