BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

技术债务是技术问题么?

| 作者 Amr Elssamadisy 关注 0 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2010年1月27日. 估计阅读时间: 2 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

“技术债务”一词最初是由Ward Cunningham提出的(大家可以看看Ward Cunningham自己是如何描述这一术语的):

最初交付的代码就好像是欠债一样,但只要能通过重写快速地还债,那么少量的债务是会提升开发速度的。但是,如果债务得不到偿还,危险就会随之产生。花在并不太正确的代码上的每一分钟都将成为债务的利息。整个组织都会在债务的重压之下被折磨得精疲力竭。

最近,本文作者与一些同僚就技术债务及其解决方案展开了一次对话。此次讨论的中心议题是:本文作者认为技术债务是个技术问题,可以通过规范的手段加以解决,比如重构和测试等;而另一方则认为光是重构与测试并不能减少技术债务。

可以将本文作者一方的观点总结如下:为了减少技术债务,人们必须要不断增加测试数量和重构次数以首先满足系统的设计与架构要求,接下来逐步解决系统所面临的各种问题。这一方对技术债务的理解是:技术债务就是个技术问题,应该通过管理的手段加以解决。我们可以接受技术债务,但不要忘记偿还就行。Martin FowlerWard Cunningham以及Bob大叔等人已经就这个主题、其重要性以及对开发团队的影响进行过多次讨论。

另一方的观点与本文作者并不矛盾,但他们认为技术债务只是真实问题的一小部分而已,我们可以解决表面症状,但如果没有足够的细心是无法解决其根源问题的。事实上,我们甚至在TDD和术语“重构”出来之前就已经在不断重构了。作为软件开发人员,我们会重新设计,重新构建系统,这不过是更大的重构周期(月、年而非分钟)的一部分。因此,TDD和重构只是在解决表面症状而已。他们援引Deming的话说:

这并非是把人分成三六九等。每个人都要清楚自己的工作效率在很大程度上会受到所从事工作的影响...

上面这句话表明技术债务实际上是更大问题的一种症状表现,然而人们很难看清债务本身,对于开发者和组织来说,千万不要放任技术债务横行。因此,解决方案就是公开问题与解决问题的代价,而非向开发者提供一套新的工具集。

本文作者认为还需要一些时间来消化上面这些内容,同时感觉很有必要与社区分享这些内容。

查看英文原文:Is Technical Debt a Technical Issue?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

good by ly kuang

说的很有道理,深有同感

听过这个说法 by 贺 天卓

第一次看到“技术债务”是在 《重构》这本书里。
还有在《卓有成效的程序员》里也看到过“破窗理论”。

保持代码的清晰及逻辑完备是开发一个长远产品所必备的要求。

做项目不是比赛短跑 by Chen Renart

同上

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

深度内容

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT