2021年,是时候把技术债务管理提上日程了

Wesley13
• 阅读 606

开发人员面临着前所未有的压力:从传统的基础设施转移到现代的基础设施,减少效率低下的情况,并创建构建客户满意度和增加收入的产品。许多企业都在以DevOps的思维方式前进,但在他们前进的过程中,他们可能会忘记一件事,技术债务。的确,开发者可能会快速移动并破坏某些内容,但却从未真正去修复它们。因此,技术债务的积累,导致工程生产力的下降和生产成本的上升。

今年早些时候,Umser Mansoor为codehoy做了一个关于技术债务的小调查。调查发现,在91名受访者中,68%的开发者表示,他们开发的产品背负着高额或非常高的科技债务。技术债务每年给公司造成极高的的成本损失,也对工程团队造成毁灭性的影响。

1.时间浪费

能想象到你的开发团队一年中花费近三个月(或更多)在技术债务上、没有希望达成KPI吗?瑞典的一项调查对软件开发人员进行了纵向研究,发现软件开发人员由于技术债务平均浪费了23%的工作时间。

这些数据得到了对大型软件公司的研究的支持,研究发现,管理大型软件公司的技术债务的成本是巨大的,据估计,平均占整个开发时间的25%。Stripe的研究显示,这个数字甚至高达33%!这是一笔可以避免的巨额支出。

更糟糕的是,正如瑞典的研究中详细描述的那样,随着时间的推移,解决技术债务只会变得更加具有挑战性,因为任何添加到代码库的操作都是在一个已经无法工作的系统之上进行的,因此bug和小故障不断复合。整个团队都被技术债务感染了,而且是会传染的。

在价值方面,构建速度和更快发布的能力受到了阻碍。很难对工作进行时间估计,交付代码的利润率也会下降。

人们在哪些债务上浪费时间?

2021年,是时候把技术债务管理提上日程了

根据瑞典的研究,浪费的时间通常花在执行额外的测试上,然后是执行额外的源代码分析和执行额外的重构。一位受访者称:“通常情况下,做出正确的解决方案需要更长的时间。这或多或少总是一个时间问题。通常,当你引入技术债务时,是因为出现了一些东西。这与我们计划如何开发软件时所认为的方式不太一样。”

Codeahoy研究将技术债务归因于几个因素,包括过时的库、缺乏文档、代码质量差、臃肿的整体、开发过程中不包括的静态分析工具、缺乏单元测试、随意的体系结构、糟糕的设计决策以及缺乏持续交付。具体的例子包括“10年前在内部构建的框架”和“未使用服务的遗留AWS基础设施”。

这对开发人员有什么影响?

用厨房打比方来描述技术债务的现实是个很好的例子:
如果你经营一家餐饮店,你只负责烹饪,不洗盘子、不刮烤架、不整理冰箱,市场监督管理局很快就会关掉你的这坨“垃圾”。

然而,软件开发可没有监督管理的,这要让厨房工作人员对每天工作的厨房状况更加警觉,如果不采取任何措施,就会出现厨房开始无法生产可食用饭菜的情况。一般来说,你可以说服决策者,从长远来看,打扫厨房是更有利的选择;或者,更新一下简历,在目前这个“厨房”烧毁之前离开。

2.士气低落,工作满意度降低

技术债务损害团队士气,导致过度认知的负荷。此外,管理充满不满情绪的团队并非易事。大多数人都以把工作做好为荣,并从成功中得到奖励。但如果有技术债务,他们可能会觉得被拖垮或压垮。如果已经向管理层提出了担忧而又没有追索权,情况就更糟了。80%的Codehoy受访者指出,他们的管理层意识到了技术债务:具体来说,57%的受访者表示,他们的经理意识到了,但并没有计划;23%的受访者表示,他们的经理知道但不在乎。

一位受访者提到:“管理层积极地承认这一点,我们甚至在技术债务中进行优先排序,但是技术债务项目从来没有进入工作流,因为它从来没有被视为足够重要。”
另一位是这么说的:“我注意到的一件奇怪的事情是,我们的公司正陷入财务困境,这意味着解决技术债务的优先级要低于可能带来更多收入的新功能。然而,我认为我们的许多问题都与我们的技术债务有关(例如,由于监管不善,系统在周末的时候被降级了)。不管出于什么原因,新功能才能不断战胜那些让我们的用户付出代价的问题,技术债务越发得不到解决。”

3.人才流失

技术债务既是一个技术问题,也是一个管理问题。快乐的开发人员是高功能团队的成员,如果你的开发人员不满意,他们就会离开,并带走他们(并没有文档记录)的知识。

技术债务是人们离开或者想要离开的原因之一。Codehoy的调查发现,50%的被调查开发者可能或非常可能因为技术债务而离职。另外27%的人表示他们考虑过这个问题,但还不确定。总而言之,有相当一部分人可能会因为竞争对手提供的诱人工作机会而动摇。如果公司正在经历开发人员的高流动率,技术债务可能是一个因素,特别是对于那些花费时间去解决遗留代码中的错误而错过了更令人兴奋的项目的人。

4.客户满意度下降

如果技术债务导致发布了平庸产品,那么就会有负面的客户体验风险。开发人员可能在某种程度上远离最终用户,但当出现错误时,他们将首当其冲地承担寻呼机和帮助台的责任。此外,随着代码变得更加复杂,开发人员将新功能发布到生产环境中需要更长的时间,从而降低了整个生产速度,并延迟了更新时间,从而导致客户满意度下降,最终导致竞争劣势。

5.造成法律后果

当技术更新涉及到遵守标准时,技术债务可能会产生严重的后果。它可能导致昂贵的数据泄露、罚款和合规处罚,甚至在医疗保健和银行等领域引发诉讼。在某些情况下,关键任务软件的延迟可能会危及软件生命。

6.扼杀创造性

由于技术债务而花费在维护上的每一分钟都是失去创新或增值工作的机会。Accenture对联邦IT系统的研究表明,技术债务和由此导致的IT不连续性阻碍了创新、敏捷性和工程速度。83%的人表示技术债务严重限制了他们的创新能力,79%的人表示技术债务抑制了他们对变化的响应能力,而只有38%的受访者估计了修复技术债务的成本。遗留系统中的技术债务积累是实现现代化的关键障碍。

点赞
收藏
评论区
推荐文章
企业级飞速低代码 | 这5个理由让软件架构师积极拥抱低代码
从避免技术债务到简化和整合业务流程到解锁单体系统,低代码提供了速度和灵活性。软件开发者和架构师曾经有理由对低代码技术持怀疑态度,但今天,许多成熟的低代码平台使敏捷开发团队能够提高生产力、增加质量、并频繁部署。开发人员使用低代码技术来构建应用程序、客户体验、门户网站、搜索体验、工作流集成、数据管道、数据流、仪表板、测试自动化、机器学习模型和其他解决方案。"低代
Stella981 Stella981
3年前
DevOps如何解决技术债务挑战?
!(https://oscimg.oschina.net/oscnet/32c0085858b04e6e80a771633912ce14.jpg)许多组织在迁移到云期间发现了大量的技术债务。但是什么是技术债务呢?DevOps如何帮助我们去解决技术债务呢?在这篇文章中,我们将讨论使用DevOps将您的技术债务负担减少的方式!什么是技
陈哥聊测试 陈哥聊测试
11个月前
应对 DevOps 中的技术债务:创新与稳定性的微妙平衡
技术债务如果得到有效管理,可以成为短期内优化交付速度和创新的工具。
邢德全 邢德全
11个月前
万界星空科技MES系统中的生产防错功能
在现代制造业中,生产过程中的失误和错误往往会导致严重的影响,如产品质量下降、生产效率低下、安全事故发生等。因此,为了确保生产过程的稳定和可靠,MES设置生产防错功能是至关重要的。
京东云开发者 京东云开发者
10个月前
复杂SQL治理实践 | 京东物流技术团队
一、前言软件在持续的开发和维护过程中,会不断添加新功能和修复旧的缺陷,这往往伴随着代码的快速增长和复杂性的提升。若代码库没有得到良好的管理和重构,就可能积累大量的技术债务,包括不一致的设计、冗余代码、过时的库和框架以及不再使用的功能。这些因素都会导致软件结
敏捷开发 敏捷开发
9个月前
我们不可能永远都在救火 ——Scrum中技术债务“偿还”指南
这些技术债务到底是从何而来?为什么某些团队在Scrum开发过程中会导致技术债务的积累呢?我们该如何解决技术债务呢?
陈哥聊测试 陈哥聊测试
6个月前
产品经理如何帮助减少技术债务 ?
这里有一些会起到帮助的可行策略。
codigger codigger
5个月前
与Bug较量:Codigger之软件项目体检Software Project HealthCheck来帮忙
Codigger之软件项目体检SoftwareProjectHealthCheck工具旨在帮助团队在整个软件开发生命周期中维护高标准的代码质量,减少技术债务,提高开发效率,并确保软件产品的稳定性和安全性。
codigger codigger
4个月前
从混乱到有序:Codigger 软件项目体检助力软件项目管理
Codigger的软件项目体检(SoftwareProjectHealthCheck)工具,致力于协助团队在整个软件开发生命周期内保持高标准的代码质量,降低技术债务,提升开发效率,保障软件产品的稳定性与安全性。
小万哥 小万哥
11个月前
深入理解技术内容运营
技术内容营销营销是一种商业策略,涉及识别客户需求并确定如何最好地满足这些需求。换句话说,它旨在确保企业或产品以吸引目标受众的方式定位,鼓励他们购买。该策略包含多个方面,包括市场研究、品牌建设、产品开发、销售、促销和公共关系。营销人员使用这些策略来创建公司形