办理房贷时信用卡必须还清吗_技术债务–您何时必须还清债务?

办理房贷时信用卡必须还清吗

有两次要考虑技术债务的问题:
  1. 当您构建系统并在“可以在将来的某个时候”和现在需要做什么之间做出权衡决策时
  2. “将来的某个时候”,当必须处理这些决定时,当您需要还清债务时。

现在“将来的某个时候”会发生什么? 多少债务太重了? 如果需要,您什么时候需要付款?

多少债务太多了?

每个系统都有一些债务。 总有一些代码不够清晰。 方法和类太大。 过期的第三方库。 为解决已消失的问题而进行的更改。 您后悔做出的设计和技术选择,如果有机会的话,它们会做的不同。

但是,这真的减慢了团队多少速度? 这真的要花多少钱? 您可以通过查看代码库来衡量技术债务是否随着时间而增加。 代码复杂度是一个因素。 看看引入回归的机会, 复杂度与维护代码的难度之间存在简单的关系:

复杂 错误修复的可能性
1-10 5%
20-30 20%
> 50 40%
100 60%

仅凭复杂性还不够。 一些代码本质上是复杂的,或偶然地复杂,但是不需要更改,因此不会增加开发的实际成本。 诸如Sonar之类的工具着眼于复杂性以及其他变量,以评估代码库的技术风险:

修复重复项的成本+修复违反样式的成本+评论公共API的成本+修复未发现的复杂性的成本(自动代码覆盖率不到80%的复杂代码)+使复杂度低于阈值的成本(拆分方法和类)

这使您对技术债务成本有了一定的了解,可以随时间推移进行跟踪或在系统之间进行比较,但是何时必须修复技术债务呢? 你什么时候越界?

确定是否需要还清债务取决于两个因素:

  1. 安全/风险。 代码太难更改还是太危险? 它有太多错误吗? Capers Jones说,每个系统,特别是大型系统,都有少量的程序集中错误程序的20%包含了80%的问题),清理或重写此代码是您最重要的事情。确实可以提高可靠性,并降低长期运行系统的成本。
  2. 成本–真实的证据表明随着时间的推移进行更改会变得越来越昂贵,因为您承担了太多的债务。 是因为代码太难理解,还是因为代码太难更改,或者太难测试而进行更改或修复错误?

虽然显然对于某些团队来说,很明显,如果您放慢速度,这一定是由于技术债务造成的,但我认为这不是那么简单。

随着系统的变大和老化,有很多原因导致团队随着时间的流逝而放慢速度,这些原因与技术债务无关。 随着系统变得越来越大,更多的客户以更多的方式使用更多的功能和自定义功能,代码将需要更长的时间来理解,更改将需要更长的测试时间,您将拥有更多的操作依赖性,更多的事情要担心和更多的事情。可能会打破,对您可以做什么和可能承担的风险施加更多限制。 所有这些都使您减速。

您怎么知道是技术风险使您放慢脚步?

当人们不得不花太多时间调试和修复事物时,特别是在系统的同一部分中修复事物,或者在系统的不同部分中修复相同事物时,团队就会放慢速度。 当您看到相同的错误或相同的错误反复发生时,您就知道自己有债务问题。 当您开始发现生产中出现更多问题时,尤其是由回归或手动错误引起的问题时,您就知道自己背负着沉重的债务。 当您看到维护和支持成本在上升时–当每个人花在升级,错误修复和调整上的时间都比添加新功能上的时间多时,您就开始运转了。

偿还技术债务的80:20规则

随着时间的流逝,债务逐渐增加,直到达到临界点。 没有细心的注意,所有代码都会随着时间的流逝而恶化,但是您遇到的任何问题在某些地方都会比其他地方更糟糕。 在偿还债务时,您最关心的是热点:

  • 代码复杂且
  • 代码变化很大,
  • 难以测试的代码
  • 具有错误和问题历史的代码。

您可以通过检查签入历史记录, 挖掘版本控制系统Michael Feathers在此上所做的工作确实很酷)和错误数据库,通过静态分析检查以及与开发人员和测试人员进行交谈,来确定这些问题区域。

这是您必须关注的代码。 在这里,您可以通过偿还技术债务来获得最佳的投资回报。 其他一切都保持良好的卫生习惯–不会受伤,但也不会赢得比赛。 如果您要偿还技术债务,请明智地偿还。

参考: 技术债务–您何时必须还清债务? 来自我们的JCG合作伙伴 Jim Bird在Building Real Software博客中获得。


翻译自: https://www.javacodegeeks.com/2012/09/technical-debt-when-do-you-have-to-pay.html

办理房贷时信用卡必须还清吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值