一、技术债务
软件项目中对架构质量和代码质量的透支。在软件开发中,范围不减、成本不加、还想节约时间,就会影响到质量。我们需要清楚的知道项目中有哪些技术债务,以及它给项目带来的收益和利息,这样才能管理好技术债务。
技术债务的利息: 在后面对软件做修改的时候,需要额外的时间成本。
技术债务不一定都是坏的: 如快速原型开发模型,或为了占领市场刻意欠一些技术债务短期提升开发速度。
二、技术债务产生的原因
轻率/有意的债务: 团队因时间、成本的原因,故意走捷径没有设计、不遵循好的开发实践,对于债务后续没有改进计划。
轻率/无意的债务: 团队不知道技术债务,也不知道后续要偿还技术债务。
谨慎/有意的债务: 团队清楚的知道债务的收益和后果,并且制定了后续完善架构、提升代码质量的计划。
谨慎/无意的债务: 团队很重视架构设计和技术债务,但因为业务变化等客观因素造成技术债务。
三、管理技术债务
最初的时候,欠一些技术债务是低利息高收益的,但是超过一个临界点后,就会变成高利息低收益,大大降低开发效率,管理技术债务就是将技术债务控制在临界点之下。
1、识别技术债务
开发速度降低、单元测试代码覆盖率低、代码规范检查的错误率高、Bug数量越来越多、加班太多、框架版本太老等等。
2、技术债务处理策略
根据当前项目的具体情况,看哪一种策略投入产出比更好。并将策略落实成开发任务,作为项目计划的一部分。
-
重写:工作量大,同时还有维护旧系统。
-
维持:维持现状,只对严重问题修修补补。成本低,如果项目不需要新增功能还好。
-
重构:每次只改进系统的一部分功能,对系统和业务影响小,不过耗时久。
3、预防才是最好的方法
预先投资、不走捷径、及时还债等