什么是技术债务

我们如何定义科技债务?
技术债务或代码债务是一个比喻,指的是由于代码编写不当和开发过程中的妥协而产生的所有后果。这个概念尤其包括改进软件或添加附加功能所必须付出的额外努力。

最新的 DZone 参考卡

威胁检测


也许解释“技术债务”一词的最佳方式是借助 QArea 项目组合经理 Alex Gostev 的类比。

“我非常喜欢维基百科提供的技术债务定义:技术债务可以与货币债务进行比较。这是什么意思?如果不偿还技术债务,就会积累“利息”,从而使以后实施变更变得更加困难。这是技术专家(美国程序员 Ward Cunningham)创造的最佳定义,用于在公司 CFO 面前证明重构成本的合理性。”

向企业主解释技术债务的概念非常容易。这就像获得信用。例如,您可以申请贷款为公司开设新办公室。如果您利用该信用来执行该计划,则会产生利息。换句话说,从长远来看,你会付出更多。

一些与现实生活的比喻相似也可以成为向非技术专家解释技术债务问题的有用工具。我们可以谈论房子里一些乱七八糟的技术债务,例如厨房区域。想象一下,您已经做好了晚餐,决定不清理就离开厨房。你每天都继续这样做,到了某个时候,厨房(读“软件”)变得混乱,所以不可能再在那里做饭(读“添加新功能”)。

有时,用确实的数字来解释科技债务比期望用隐喻来说服人们更好。“我建议在公司内部适当开展一项实验,将重构工作与可转化为数字的指标的积极动态联系起来——维护代码库的工作时间更少,重复出现的错误更少,客户投诉量更高解决了,”戈斯特夫强调说。

同样重要的是要提及技术债务的不同原因,这些原因可能会影响其范围,或者在某些情况下证明其目的的合理性。

技术债务有哪些类型?
我们至少可以区分三种类型的技术债务。即使开发人员不在质量上妥协并尝试构建面向未来的代码,债务也可能会不由自主地产生。这可能是由需求的不断变化或系统的开发引起的。

事实证明您的设计存在缺陷,并且您无法快速轻松地添加新功能,但这不是您的错或决定。在这种情况下,我们讨论的是意外或不可避免的技术债务。

第二种类型的技术债务是经过深思熟虑的决定而出现的故意债务。即使团队了解有一种正确的方法来编写代码并且有一种快速的方法来编写代码,它也可能会选择第二种。经常。这是有道理的——就像那些旨在快速将产品推向市场以超越竞争对手的初创公司一样。

最后,第三种技术债务是指开发人员没有足够的技能或经验来遵循最佳具体实践的情况,从而导致非常糟糕的代码。当开发人员没有花足够的时间和精力来理解他们正在使用的系统、错过一些事情或反之亦然时执行太多更改时,也会出现错误的代码。

科技债务的成本
毫无疑问,技术债务是一个需要解决的问题。由于某些原因,您可能会一开始就背负大量技术债务,但随着重构的进行,您会逐渐减少技术债务,从而最大程度地减少或消除损害。但如果你让技术债务不断累积,就会产生真正的后果。

例如,技术债务可能会导致现金成本,例如需要招募更多人员来维护系统或构建新功能所需的额外时间。根据 Appian 的说法,技术债务消耗了 40% 的开发时间,并导致更高的运营费用。技术债务可能会成为因安全漏洞或系统中断后销售损失而被罚款的原因。

技术债务的非现金成本也可能对您的业务造成相当大的损害。技术债务可能导致无法完成用户体验改进或适应市场变化。由于系统中断或需要花费大量时间提取数据而不是分析数据,这可能会导致生产力水平降低。

即使是最知名的公司在其发展过程中的某个时刻也必须解决技术债务问题。据《福布斯》报道,Twitter 决定在 Ruby on Rails 上构建其平台前端,最终导致优化搜索性能和添加新功能变得困难。Twitter 做出了正确的反应,并切换到 Java 服务器,这使得该公司能够显着降低搜索延迟。通过这种方式,Twitter 偿还了其技术债务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千源万码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值