工程师预防技术债务的三个推荐策略。技术债务的概念似乎如此司空见惯,以至于几乎所有工程师都知道它会减慢开发过程。因此,本文将提供一些实用的建议,以节省工程团队花费大量时间来管理和解决技术债务。1.什么是技术债?通常,技术债务是指仓促的开发过程或团队成员之间缺乏知识共享。然而,在许多情况下,技术债务是正常软件开发过程的一部分,无法避免。例如,工程师可能不会在基础架构中实施正确的设计模式,因为他们想节省发布新功能的时间。此外,在没有文档的情况下共享知识或代码测试覆盖率低也是相关的场景。简而言之,代码质量会受到各种影响,例如知识不共享或开发周期过于仓促。下面概述了人们最想避免的最具破坏性的技术债务类型:1.基于知识的技术债务要理解基于知识的技术债务,让我们看一个例子。想象一下,两名软件工程师正在研究一项新功能,他们拥有关于该特定功能的所有知识,但团队中的其他软件工程师不具备这些知识。然后,当其他软件工程师必须处理此功能或必须执行使用此功能的实现时,他们将不知道正确实现新功能需要什么。因此,必须积极共享有关功能和重大代码库更改的知识,包括创建文档、示例、测试和举行回顾会议。这也是解决技术债务的最简单方法之一。2.设计债务设计债务通常发生在竞争激烈的市场或初创企业中,对他们而言,上市速度通常是重中之重。由于需要快速交付新功能,功能结构或代码架构可能会被忽略。添加新功能也变得越来越困难,您必须通过团队来完成这些工作。因此,设计债务也与结构特征和对设计模式的遵守密切相关。3.码债码债是写的质量差的代码,没有及时修复。例如,开发人员想要快速合并代码,但没有编写足够的测试或不遵守编码标准。许多组织使用带有代码检查的预提交挂钩等自动化工具来验证代码质量。如果您不实施这样的代码检查,糟糕的代码会迅速降低代码库的整体质量。2、预防和处理技术债务的三种推荐方法技术债务日积月累,解决问题的最佳时机永远是现在。一些实用的方法包括:1.代码和架构重构防止和/或解决代码和设计债务的最直接的解决方案之一是在每个Xsprint组织一个重构周。重构周允许您的团队解决未解决的错误、评估当前架构并为即将推出的产品功能准备架构。例如,留出一些时间来考虑新功能如何影响代码库的架构。好处:重构周为开发人员提供了在实施一组新功能之前评估和反思代码所需的喘息空间,这对于解决大量技术债务非常有用。缺点:重构会减慢开发过程,并且不允许团队始终如一地解决技术债务。2.开始定期的技术债务讨论回顾会议是工程师分享知识的绝佳方式,这些会议甚至可以让更多的利益相关者(比如产品负责人)参与进来,就代码库和工程师面临的问题达成共识。共识。审查会议将讨论进展顺利和进展不顺利的问题。这不是批评活动,而是分享反馈的公开会议。只专注于改进是最好的。好处:回顾允许人们分享关于代码的更新,工程师可以展示他们取得的成果。通常,这是工程师展示他们的代码库更改并解释这些更改如何影响代码库以及他们如何实现这一点的一种方式。因此,召开回顾会议是在每次编码冲刺后分享知识的有效方式。缺点:利益相关者和管理者需要就此方法达成一致,工程师需要时间来组织这些会议。3.开始在编辑器中追踪技术债要保持代码库的健康,工程师尽可能轻松地解决技术问题无疑是最好的方式。在编辑器中跟踪技术债务使工程师能够:全面了解技术债务查看每个代码库问题的上下文与Jira、Linear、Asana和其他项目管理工具集成的VSCode或JetBrains的免费Stepsize扩展。好处:开发人员已经在编辑器中花费了大量时间,因此它也是跟踪和报告技术问题的最佳方式。实施技术债务管理流程将积极影响工程团队的士气并提高客户满意度。缺点:养成新习惯需要团队成员投入时间和精力,如果没有顶尖的技术债务大师,将很难实现。3.如何发现不断增长的技术债务?应积极跟踪和管理不同类型的技术债务,防止技术债务增加是关键问题。拥有大量技术债务会显着减慢开发速度,并使解决问题变得越来越困难。换句话说,巨大的技术债务代价高昂,并且会影响您的上市速度。跟踪与不同类型的技术债务相关的指标至关重要,可以跟踪以下指标:总体代码覆盖率和每个功能的代码覆盖率:百分比下降是技术债务累积的危险信号。许多失败的CI/CD构建的数量:如果失败的CI/CD构建的数量增加,这是代码库不稳定的明显标志。这与设计债务和代码债务有关。每周或每月都有许多新错误:如果您的团队每周或每月发现越来越多的错误,则表明您的代码库质量正在恶化。所以这也是检测不断增长的技术债务的一个重要指标。功能吞吐量:将新功能推送到主分支所需的天数。这是一个支持指标,可以表明不断增长的技术债务。虽然每个功能的大小各不相同,但如果您发现该指标在数周内有所下降,则该进行干预了。非功能性需求问题:在定义检测技术债务的指标时,您是否考虑过衡量非功能性需求?衡量应用程序性能、用户体验(增加易用性)或兼容性损失等指标是技术债务增加的可靠指标。如果您想使用此指标,请尝试对应用程序中的关键路径进行性能监控。4.处于不同阶段的公司如何处理技术债务?对于初创企业来说,压力往往来自快速推出产品。这些公司可以通过采用自动化代码质量验证工具轻松解决技术债务问题。除此之外,较小团队之间积极的知识共享通常是避免技术债务的有效策略之一。然而,大型企业要控制技术债务并不容易。根据2021年技术债务状况报告,66%的工程师认为,如果团队拥有管理技术债务的流程,交付速度将提高100%,另有15%的工程师甚至认为他们的生产率将提高200%。不幸的是,组织回顾会议等知识共享会议也是一种解决方案,但大型企业往往需要比这更好的解决方案。为了控制技术债务,大型企业需要使用项目管理工具来了解正在开发哪些功能以及谁在代码库的特定区域工作。这些项目管理工具是避免冲突的理想工具。除此之外,企业还应该使用自动化的代码质量工具来确保整体代码库的健康,通常代码质量工具可以集成到持续集成流水线中。V.结论未能解决技术债务可能会给组织带来问题,例如总拥有成本高、上市时间慢、敏捷性降低以及由于糟糕的架构设计而导致的安全性差。因此,必须衡量与技术债务相关的一些指标,同时确保有一个流程,以便可以轻松地与团队成员共享知识,并持续解决技术债务。原文链接:https://dzone.com/articles/3-best-tactics-to-prevent-technical-debt-as-an-eng译者介绍朱刚,社区编辑,2021IT影响力专家博主,阿里云专家博主,2019CSDN博客之星Top20,2020腾讯云+社区优秀作者,11年一线开发经验,曾参与猎头服务网站架构设计、企业智能客服及大型电子政务系统开发,引领某国有大型企业内部防泄密和电子文档安全监控系统建设,目前在北京途家健康从事医疗软件研发。
