什么是技术债务?


技术债务是指选择最快解决方案而不是最佳解决方案所带来的额外工作成本。虽然技术债务有时是值得的,但重要的是您的团队要了解快速审查的利弊以及如何有效地进行返工。在这篇文章中,我们将定义技术债务,提供减少债务的策略,并探讨盈利和非盈利估值之间的区别。

技术债务

技术债务是指由于选择了最快的方式而不是最佳解决方案而必须完成的额外工作的代价。术语“技术债务”最初是由软件工程师 Ward Cunningham 在 1992 年提出的,尽管此后它经历了一些变化。技术债务——也称为技术负债和代码负债——如今主要源于开发团队在向软件开发产品添加新功能时编写快速代码的决定。快速交付代码可以帮助您的团队满足截止日期,产生的债务可能有利可图,但如果处理不当,也会产生负面影响。一旦做出积累技术债务的决定,这些意外后果并非总是可以避免的。

当开发人员使用权宜之计、次优的编码或设计解决方案来加快生产速度时,结果往往是技术债务。然后,团队将(在某个时间点)必须返回到该产品以更新代码或添加新功能。

以下是公司为牺牲质量和速度给出的一些典型解释:

  • 探索市场契合度的战术选择。

  • 预算或时间限制。

  • 软件工程中的错误决策。

  • 代码选项不足。

  • 错误的公司选择。

技术债务象限

技术债务象限是一组四种不同的技术债务原因。Martin Fowler 确定了技术债务的四个类别:无意、有意、谨慎和不负责任。将技术债务分配到这些象限使理解编码问题的目的和历史变得更容易。一些代码债务可能是故意的,并被归类为好的债务,但其他代码可能是无意的,并被归类为坏的债务。

谨慎且有意

虽然团队意识到他们正在获得优势,但要谨慎和警惕。继续发布并稍后处理后果。如果提前发布的好处大于技术债务的成本或利益足够小,则此选择是合适的。

鲁莽且有意

当一个团队能够预见结果并采取预防措施,但仍然优先考虑速度而不是质量时。

谨慎且无意

当团队了解与应用程序相关的解决方案的实现方式时。

鲁莽且无意

当团队试图在没有必要知识的情况下编写最佳代码时,结果是粗心和无意的债务。团队完全不知道所犯的错误。

技术债务类型

技术债务分为两种类型

1. 国际技术债务

当一家公司选择专注于现在而不是未来时,它就是在有意承担债务。有意债务既有短期也有长期。例如,故意承担债务来偿还现有债务是短期债务,而避免未来更大的负担是长期债务。它也被称为主动债务。

2. 无意技术债务

然而,无意技术债务是由误解、无意的错误或某些情况下编写的代码不佳造成的。在最终有缺陷的设计策略中可以看到无意的技术债务。这是犯下不可避免的错误的意外后果。由于团队并没有无意中累积技术债务,因此可以假设这是偶然的。在大多数情况下,您直到完成工作或安装软件更新后才会注意到错误。它也被称为被动债务。

技术债务——好还是坏?

拥有技术债务并不一定很糟糕。大多数开发团队经常必须在速度、成本和质量之间做出选择。当出现以下情况时,它可能是一个问题:

  • 没有意识到债务。

  • 忽视了所谓的债务。

技术债务可以像财务债务一样以好的和坏的方式使用。技术债务也可以源于在冲刺中发布高质量代码并满足软件截止日期的明智决策。在其他情况下,不可避免的软件更新错误会导致技术债务。

如何控制技术债务?

在讨论技术债务时,必须考虑时间、质量和成本的平衡。但是,请记住软件开发团队的治理结构、工具包和思维方式。在该等式中找到正确的组合至关重要。此外,但不限于,适当的技术可以提供帮助。公司越来越多地使用低代码开发平台等现代技术来创建多样化和差异化的解决方案,从而避免了诸如技术债务等临时修复的困难。这就是 Out Systems 的情况。使用 Out Systems 创建的应用程序不需要专有组件、运行时或翻译。相反,它们依赖于业务中公认的框架和设计。这减少了工作开始前的技术债务。

结论

必须积累技术债务,因为在复杂环境中解决问题总是会导致新的见解和学习,以及以往的错误决策。因此,管理技术债务需要做出妥协。通过在特性工厂中生成新特性,从长远来看无法实现业务目标。但是,如果没有用户,功能完善的应用程序也毫无价值。

因此,Scrum 的技术债务管理是整个 Scrum 团队的责任,这使其成为 Scrum 内置检查和平衡的绝佳示例。您如何每天处理技术债务?在评论中告诉我们。

更新于:2023 年 3 月 28 日

126 次浏览

开启您的职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.