《软件工程之美》材料地址:https://time.geekbang.org/column/article/91729
什么是技术债务?
根据软件项目管理金三角,如果范围不减,成本不增加,还想节约时间走捷径,就会影响到质量。这种对质量的透支,就是一种债务。而技术债务,就是软件项目中对架构质量和代码质量的透支。
- 技术债务是有利息的
债务的“利息”,就是在后面对软件做修改的时候,需要额外的时间成本。 - 技术债务不一定都是坏的
通过欠债,提高短期开发速度,快速上市,或快速验证
技术债务产生的原因
- 轻率(reckless)还是谨慎(prudent);
- 有意(deliberate)还是无意(inadvertent)。
如何管理技术债务?
- 识别技术债务
开发速度降低;
单元测试代码覆盖率低
代码规范检查的错误率高
Bug 数量越来越多 - 选择处理技术债务策略
- 重写:推翻重来,一次还清
- 维持:修修补补,只还利息
- 重构:新旧交替,分期付款
原则,看哪一种策略投入产出比更好。
- 实施策略
- 对于重写的策略,要当作一个正式的项目来立项,按照项目流程推进;
- 对于重构的策略,要把整个重构任务拆分成一个个小任务,放到项目计划中,创建成 Ticket,放到任务跟踪系统中跟踪起来;
- 对于维持的策略,也要把需要做的修补工作作为任务,放到计划中,放到任务跟踪系统中。
实施策略的关键就在于要落实成开发任务,做为项目计划的一部分。
预防才是最好的方法
预先投资
不走捷径
及时还债