博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《系统架构》之技术债务
阅读量:4229 次
发布时间:2019-05-26

本文共 994 字,大约阅读时间需要 3 分钟。

什么是技术债务

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

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

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

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

如何处理技术债务

项目管理中,表示系统和软件的质量用范围、时间、成本的三角形图表示。

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

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

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

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

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

转载地址:http://jaiqi.baihongyu.com/

你可能感兴趣的文章
ffs的另外一种实现方法
查看>>
strtol的用法
查看>>
工作队列的使用
查看>>
让vim显示空格,及tab字符 vim 多行注释
查看>>
利用mmc_test.c研究mmc模块
查看>>
tasklet、wait_queue、completion、work_queue用法总结
查看>>
int (*func(int)) (int *,int)
查看>>
在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel
查看>>
Linux内核同步机制API函数:宏:spin_lock_init ( )
查看>>
driver_register 理解
查看>>
copy_from_user && copy_to_user
查看>>
device_register
查看>>
Android上C++对象的自动回收机制分析
查看>>
从spin_lock到spin_lock_irqsave
查看>>
sdio 驱动
查看>>
T-SQL中的聚合函数中的SUM()函数与AVG函数()
查看>>
T-SQL中的聚合函数(二)
查看>>
分组查询
查看>>
2021-06-04
查看>>
最长无重复子数组
查看>>