新冠肺炎疫情加速了大规模数字化的进程,并且促进了各个行业的科技发展。比如,Instacart 在2020年的销售额比2019年增长了230%, Zoom在新冠肺炎疫情初期的收入增长了169%。在过去的 18 个月里,许多公司都在被迫加速数字化转型。
但是这种增长是有代价的,许多网络攻击开始出现,比如“Zoombombings”——有人闯入 Zoom会议并发送色情动图或其他不适当的信息,这令人震惊,也引起了公司的高度重视。
另一个成本是支持数字应用程序增长的技术负债。总拥有成本 (TCO) 是开发应用程序的成本,加上持续的维护、升级和支持成本。当你的应用程序产生技术负债时,势必需要在未来某时偿还该债务。技术债务要么通过修复或升级应用程序等方式一劳永逸地消除,要么慢慢地通过增加维护、支持和损失机会成本来解决。
技术债务使领导者难以从他们的技术中去创新和创造更好的客户体验。这种对创新的扼杀意味着长期收入会降低。
什么是技术负债
技术负债是指未完成的工作累积而形成的负担。这种工作的累积是由于:在应该采用最佳方案时,因为价格昂贵或难以实现而进行了妥协,改用了短期内能简单处理的解决办法。
我们经常面临两种完成工作的选择:完全完成工作,或以有限的方式完成工作以满足短期需求但需要在以后重新工作填补。当我们选择后者时,就增加了技术负债,因为返工增加了我们的积压工作。
我们可以轻松地将技术负债可视化。如图 1,它是一个完全执行的项目的理想化模型。
图1:完成一个完整的项目可以减少技术负债
这代表了一个减少债务的完整工作流程,而不是短期解决方案。在左侧,我们可以看到项目开始前的状态。这里有一个计划中的项目(蓝色“项目”框)和现有技术债务的积压。在项目完全执行之后,我们最终得到了右侧的结果,积压的工作减少了。积压减少是因为项目已经完成,并且在项目执行期间还解决了一些技术负债。最终的结果就是现在整体的技术负债比以前少了。
但是,当我们不完全专注于完成一个项目,走捷径来节省时间或精力时,我们最终会得到一个看起来更像图 2 的项目执行流程。该图显示了当项目快速完成时会发生的情况,那就是留下了额外的技术负债。
图2:走捷径去减少短期工作却导致技术负债的增加
就像在第一个示例中一样,我们从蓝色框中相同的项目和相同的技术负债积压开始。然而,这一次我们执行了一个更快、更容易、更简单的项目,该项目只完成了满足我们短期目标所需的最少工作量,而留下了许多未完成的工作。其最终结果如右侧所示,就是完成了较小的工作,但却积压下了大量的技术负债。
技术负债不仅需要代码更改和重构。它还可能意味着基础架构的重建,例如迁移到云原生架构或将应用程序迁移到基于容器的环境中去。
技术负债还可能对流程中的工作人员和设备产生不利影响。这包括与客户支持、制造、订单履行和运输相关的流程和系统。在这些流程中走捷径所产生的成本,可能与传统的基于代码技术产生的成本相同。
作者:Lee Atchison,是云计算和应用现代化领域的专家。他在产品开发、架构、扩展和现代化方面拥有超过三十年的经验,曾在亚马逊、亚马逊网络服务 (AWS)、New Relic 等公司工作过。他的文章被广泛引用,并且一直是全球特邀演讲者。
原文网址:
http://www.infoworld.com/article/3635708/technical-debt-will-sink-you.html