《系统架构》之技术债务

什么是技术债务

所有项目研发都有技术债务,是所有系统及软件研发部不可避免的,常见的技术债务如下:

  • 需求更新太急,现有架构无法满足新的需求,为了落地需求而绕过重构,直接更新代码
  • 项目维护时间过久,维护能力较低,解决问题基本靠打补丁的形式
  • 在开发和维护工作时,技术文档、代码注释不全,单元测试不完整等

在系统升级等项目研发中,技术债务是不可避免的,因此需要加强管理,并有意识的定期偿还债务利息,否则当项目不可控时,该系统将因为代码臃肿、效率低下无法维护而宣告破产。但是,需要明确的是,出色的开发团队会主动的引入技术债务来实现更快的交付,后期按预定计划逐步偿还,从而持续的创造价值。

技术债务必须是可控的。优质的技术债务是指技术团队为了短期的项目利益做出欠佳的技术决策而形成的,例如某项目决定基于某个即将过时的框架构建,而不是花大价钱购买该框架的升级版本。总之,真正的技术债务是团队为了获得短期利益而暂时牺牲长远债务的决策,而不是指因为开发、维护工作不规范而导致的债务成本,如上文指出的第2、3种技术债务。

如何处理技术债务

项目管理中,表示系统和软件的质量用范围、时间、成本的三角形图表示。
在这里插入图片描述
与产品经理关注功能特性不同,架构师关注的是质量属性,而质量属性又受需求范围、开发时间、开发成本所制约,为了提高某一特性,势必将导致质量属性的技术债务。

针对项目研发产生的技术债务,常见处理方式如下

  • 项目重写
    优点:针对当前的项目进行推到重建,从根本上解决项目技术债务的问题
    缺点:新旧两套系统需要同时建设,工作量大,还需保证旧系统的稳定和演进,因此需要新建项目,需要cost too much money。
  • 代码维持
    优点:成本相对较低
    缺点:随着系统新的需求,维护和研发成本越来越大
  • 项目重构
    按照预定计划,按不同功能逐渐的对内部结构和代码进行重新整理和优化,最终完全偿还项目的技术债务,但是耗时相对较长,是一个长期的工作。

因此,针对研发过程中的不良技术债务,预防才是最好的方法。

  • 做好架构设计:在项目立项时,需要对项目软硬件需求,技术需求,安全需求等进行整体的规划和设计,避免项目维护时频繁的打补丁。
  • 规范研发流程和交付标准:需要有专门的上线评估,对代码的审查、测试、技术文档的补充等有着完备的规章制度。
  • 及时修复:对于项目前期拖欠的技术债务,应该设定归还计划,及时修复和解决,避免项目的破产。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值