大多数软件开发人员都熟悉技术债务,而编程以外的人可能不知道。但理解这个概念是非常重要的,因为它不仅存在于编程领域,而且存在于短期决策可能影响长期结果的广泛场景中。
芯片采购网专注于整合国内外授权IC代理商现货资源,芯片库存实时查询,行业价格合理,采购方便IC芯片,国内专业芯片采购平台。
什么是技术债务?
简而言之,当软件开发团队急于快速交付而忽略代码质量时,就会产生技术债务。例如,用户可能迫切需要某个功能,因此开发人员选择部署足够的代码,并计划在未来进行修复和优化。如果此代码最终没有重新检查和修复,此图暂时方便操作的成本是未来工作量的增加,就像不偿还贷款会产生利息和罚款一样。技术债务本身并不一定是一个问题,但如果未来产品优化不足或允许异常代码泛滥,它将成为一个不可低估的问题。为跟上市场快速变化的步伐,企业转向的快速发展在一定程度上加剧了技术债务的风险(DevOps)为了促进频繁的代码发布和持续的改进,需要每天甚至几个小时推送新的代码,开发人员可能会在文档规则或测试的压力下走捷径。
技术债务实例
计算机千年虫危机是一个经典的技术债务案例。在20世纪60年代和70年代,为了节省宝贵的内存,许多软件开发人员只使用两位十进制数来表示年份。例如,197373而不是1973年。这种做法持续了很多年,甚至在内存价格下跌的时候。很多这样的程序都嵌入到运营业务中,使用时间远远超出人们的预期。随着2000年的临近,数千家企业和政府机构意识到,当系统进行跨世纪日期处理操作时,会出现错误的结果,导致各种系统功能障碍甚至崩溃,因此进行了大量疯狂的清理工作。据估计,解决千年虫问题花费了近1000亿美元。
此外,技术债务不仅发生在软件上。例如,网络安全领域的最佳实践之一是将文件权限授予组织中的角色,而不是个人。假设一名行政助理获得了上级的批准,他可以暂时访问他通常无权查看的敏感文件。IT该组织批准了这一例外,但后来没有撤销该权限,这相当于将敏感文件的永久访问权授予一个最终可能被入侵和漏洞的账户。
技术债务的影响
如果开发人员知道如何在短时间内快速修复和处理技术债务,技术债务几乎不会造成伤害,甚至会促使企业快速响应机会或问题。
然而,当技术债务层层叠加时,由于缺乏文档记录或根本没有文档记录,当执行维修工作的开发人员离开时,企业只能对这个代码无能为力,不知道维修的意义。任何突然的变化都可能导致程序失败或运行缓慢,企业害怕承担风险,不愿改进,减缓创新速度。
技术债务类型
技术债务主要分为有意产生和无意产生。开发人员培训公司Construx首席执行官Steve McConnell有意产生的技术债务定义为根据战略故意承担的技术债务,无意产生的技术债务定义为非战略结果。
2014年,一群学者制定了技术债务分类法,将技术债务分为13种Kioxia代理同类型,包括结构债务、代码债务、缺陷债务、设计债务、流程债务和测试债务。这种分类方法涵盖了短视思维可能导致的所有长期问题,因此非常实用。
产生技术债务
故意产生的技术债务是故意做出的决定,因此应记录为文件并安排重建。无意产生的技术债务可能是由于临时措施的修改或添加,没有特别的代码重建计划,也可能是由于缺乏技术知识或不符合开发标准造成的不良设计决策。例如,当测试套件不完整或缩短或跳过测试链接时,测试债务将无意中产生。
文档债务是一种非常常见的技术债务,因为开发人员没有完全记录他们的代码。从长远来看,如果有人在离开公司时没有留下线索来帮助他人理解代码,就会出现严重的问题。文档债务是千年虫问题的主要原因之一。
技术债务的预兆
技术债务的预警信号包括:
● 由于开发人员对代码库缺乏深入了解,项目陷入困境;
● 由于复杂性或缺乏文档而出现难以修复的错误;
● 修复错误后,新的错误或性能稳定下降。
预防技术债务
要知道如何处理技术债务,首先要有健全的发展实践,比如DevOps测试在环境中左右移动。测试左移是指将测试过程提前到整个开发周期,以便在生产前预测和解决问题。测试右移是指在应用程序进入生产阶段后收集反馈,以便在软件被广泛使用之前提前发现和修复错误。这些预防措施可以防止更大的问题。
技术债务的临时措施是不可避免的,但开发人员必须记录在案件中,包括原因和修复说明。团队成员也可以定期检查现有代码,积极发现文档的缺陷或异常代码。
了解技术债务的重要性
有人说,现在每家公司都是软件公司,软件数量每年都在快速增长。就连重工业企业也在挖掘数据,让客户从购买的产品中获得更多的价值。
同时,开发部门需要快速生产项目,忙碌的开发人员自然会走捷径,项目经理应该理解并强调测试和文档记录的重要性。
最好的做法是什么?
采用DevOps技术企业应明确什么是技术债务,并采取敏捷的管理策略。企业可以使用测试右移和左移A/B和金丝雀测试技术在失控前发现问题;此外,同行代码审查可以从新的角度检查开发人员的工作。开发人员应使用统一的指定工具和语言,并在每个阶段都有任务清单。有效率的DevOps该部门不仅为建立应用程序提供了足够的自由,还制定了软件开发规范,以确保开发质量。
低代码开发平台-减少技术债务的好工具
为了更有效地减少技术债务,企业可以使用自动化测试对每个代码的变化进行多轮调试;建立强制性文档等完善的代码结构流程;将程序员分成两组,了解彼此的决策;使用项目管理工具可视化团队中每个人的工作状态。
此外,使用低代码和无代码工具编写的软件数量也在增加。这些软件在很大程度上实现了自动归档,因为流程图和拖放技术可以以可视化的方式呈现逻辑和预期结果。此外,生成的代码可以按原计划运行,也可以为自定义或性能目的进行修改。开发经理应鼓励团队使用低代码和无代码技术,以提高生产效率。
- 美欲组芯片四方联盟包围中国
- 350W AC/DC超窄壳开关电源—— LMF350-23BxxUH
- 活动报道 | 国产芯 共飞,研华&飞腾携手帮助产业数字化
- 通富微电框架类封装
- 消息称 LG 新能源将暂停棱形电池的开发,重点关注现有的袋式和圆柱形电池
- 贝索斯的蓝色起源完成了火箭发动机测试 推力比SpaceX猛禽还大
- 具有OVC III儒卓力提供的高功率密度转换器RECOM的20 W AC/DC RAC20E-K/277产品
- 从落后20年到赶上三星和美光,中国制造商只花了6年时间
- 为元宇宙提供动力 5 项重要技术
- 如何同步整流开关电源?
- 十年耕耘成果,乘势而上谱新篇!CITE2022 圆满落幕
- 苹果Apple Card颠覆者角色未成 经常出现拒付问题