【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

技术债务是技术问题么?

  • 2010-01-26
  • 本文字数:865 字

    阅读完需:约 3 分钟

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

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

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

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

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

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

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

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

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

2010-01-26 01:521564
用户头像

发布了 88 篇内容, 共 258.7 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

2021年大厂程序员进阶宝典,flutter面试题

android 程序员 移动开发

揭开MySQL Volcano模型迭代器性能提升千倍的秘密

华为云开发者联盟

MySQL 数据库 华为云数据库 MySQL Volcano 模型迭代器

2021年Android大厂面试分享,实战篇

android 程序员 移动开发

2021年Android春招面试经历,阿里秋招面试真题解析

android 程序员 移动开发

2021年GitHub上那些优秀Android开源库总结,花2万块买的教程

android 程序员 移动开发

DeFi流动性挖矿系统开发资料(源码)

Vue进阶(幺肆肆):(window,parent,opener,top).location.reload方法分析

No Silver Bullet

Vue 页面刷新 10月月更

DeFi智能合约DAPP系统开发公司(现成)

2020-2021蚂蚁金服Android面试真题解析,使用指南

android 程序员 移动开发

Groovy动态添加方法和属性及Spock单测

FunTester

Java 动态 spock Groovy FunTester

2021年Android高级面试题,成功入职字节跳动

android 程序员 移动开发

阿里云边缘云ENS再升级 产业数字化落地向何方?

阿里云Edge Plus

2021年大厂程序员进阶宝典,真是经典中的经典

android 程序员 移动开发

Go 中如何使用结构体标签

baiyutang

golang 10月月更

在 pygame 中好好玩玩精灵,滚雪球学 Python 游戏番

梦想橡皮擦

10月月更

Defi挖矿系统开发简介(现成案例)

2021最值得加入的互联网公司有哪些,阿里三面

android 程序员 移动开发

第 22 章 -《Linux 一学就会》- 跳出循环-shift参数左移-函数的使用

学神来啦

Linux linux运维 linux云计算 linux一学就会

全球6G专利独占4成,中国能否借此“制霸”元宇宙?

海比研究院

Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理

API7.ai 技术团队

云原生 PaaS API网关 Apache APISIX

Zookeeper 客户端错误:Packet len8854970 is out of range!

看山

zookeeper 10月月更

2021年字节跳动+京东+美团面试总结,查漏补缺

android 程序员 移动开发

2021年来看看Android的发展,程序员如何应对中年危机

android 程序员 移动开发

解密诡异并发问题的幕后黑手:可见性问题

华为云开发者联盟

并发编程 线程 并发 可见性 单核CPU

Python代码阅读(第43篇):构造组合函数

Felix

Python 编程 Code Programing 阅读代码

2021年Android程序员职业规划,Android开发技巧

android 程序员 移动开发

2021年大厂程序员进阶宝典,Android开发基础面试题

android 程序员 移动开发

2021最新Android常用开源库总结,retrofit源码

android 程序员 移动开发

架构实战营-模块一

瓜子葫芦侠

「架构实战营」

谈 C++17 里的 Chain of Responsibility 模式

hedzr

设计模式 Design Patterns 职责链模式 c++17 消息分发

Vue进阶(幺肆伍):Vue-elementUI实现操作栏位更多效果

No Silver Bullet

Vue 10月月更

技术债务是技术问题么?_研发效能_Amr Elssamadisy_InfoQ精选文章