写点什么

用金钱计算技术债务

  • 2010-03-31
  • 本文字数:1206 字

    阅读完需:约 4 分钟

很多敏捷团队都能认识到技术债务相关的罪状。就跟财务上的负债一样,技术债务也会产生利息。要支付这些利息,就要付出额外努力维护和改进正在“腐化”或基础并不牢固的软件。诸多敏捷人士推荐尽早偿还技术债务。然而,大多数敏捷团队无法成功以金钱的方式计算技术债务,因此无法得到有价值的深入理解和思考。

一旦有了与技术债务直接相关的金钱数目,关于软件的多种复杂而麻烦的问题就能得以回答。 Israel Gat 提出:除非对于技术债务有一个量化的账单,否则团队都会忽略其重要性,软件会因此而逐渐腐化,无法补救

当债务达到一定程度之后,就没有什么好的补救方法了。代码质量非常糟糕,这时要修复任何部分都会造成伤害,不管修复哪里似乎都会破坏其他某些部分代码。

他还提到了以金钱方式计算技术债务的需要,并使用收支平衡表展示出其作为债务的一面

在 Israel 看来,以金钱方式计算技术债务有如下好处:

  1. 能够告诉团队何时停止开发,开始重构——当技术债务达到一定程度后(比如每行代码 25 美分),就要暂停开发新功能。团队进入重构过程,除非债务得以偿还,否则不加入任何功能。
  2. 软件的客户对于软件的风险得以了解——Israel 认为这符合敏捷宣言中的一项:“客户协作胜过合同谈判”。
  3. 风险投资者能够以此做出投资决策——VC 们可以以此判断向某项软件产品中投入资金是否理智。
  4. 有助于判断软件的支付能力——软件在其生命周期的演化过程中,与之伴随有开发和维护活动,以金钱方式计算技术债务能够有助于回答与这些活动相关的支付能力问题。
  5. 有助于人们在重构和重写这二者之间做出选择——将技术债务与其他重要因素联合起来,能帮助人们判断是否要重新开始。
  6. 有助于定义限额——一旦金钱上的限额定义出来之后,就能帮助 CxO 等利益干系人做出成熟的决策。

那么,有哪些有效的方式可以用来将技术债务以金钱衡量呢?

使用 Sonar 中的技术债务插件是一种方式。在 Sonar 的实时站点上,已经有了对于多个项目的技术债务分析。要计算成本,首先要使用下面的方式找出债务:

  • 债务(以人天计算)={修复重复部分的成本+修复违规的成本+为公共 API 做注释的成本+修复未发现的复杂性的成本+带入低于阈值复杂性的成本+在包的层面上切断生命周期的成本}

在上面各种违规情况中,对于每个小时的成本有个默认值。比如:

  • 修复重复部分的成本={修复 1 个部分的成本 * 重复的部分}

现在,比如默认的“修复重复部分的成本”为 2 个小时。假设每个开发人员每天的成本是 500 美元,一天有 8 个小时,那么修复一个重复部分就要花费 125 美元。与之类似,就可以做出针对各种违规情况的金钱分析,并可以计算出最终的技术债务总和。

因此,以金钱方式计算技术债务能够让人们深入理解与软件相关的潜在成本。对于所有希望监控技术债务成本并将其保持在一定限额内的敏捷团队来说,这很关键。这么做有助于创造一个易于维护和改进的软件产品,同时让 VC 有信心投资,让客户有信心买单。

查看英文原文: Monetizing the Technical Dept

2010-03-31 00:002325
用户头像

发布了 479 篇内容, 共 182.3 次阅读, 收获喜欢 53 次。

关注

评论

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

TDS:标签平台+API平台+数据共享平台,助力数据运营平台建设

星环科技

“祖师级”技术人的哲理:认知、热爱、恒心

非凸科技

c++ C# MySQL 程序员 编程语言

Wally-DR6000/IPQ6000/802.11ax/ 2x2 2.4GHz&5GHz /1.7Gbps

wallys-wifi6

Linux wifi6 openwrt

星环科技多模型大数据基础平台TDH9.0:十种数据模型组合拳 打通大数据业务全场景

星环科技

Apache IoTDB 在智慧养老家庭设备上的落地应用,节约99%存储成本

Apache IoTDB

【ELT.ZIP】OpenHarmony啃论文俱乐部——即刻征服3D网格压缩编码

ELT.ZIP

3D OpenHarmony ELT.ZIP 图像视觉

TDC 3.0 从数据分析到数据流通,数据云拓展新场景

星环科技

体验有礼 | 1 分钟 Serverless 极速部署个人网盘,真网盘真好用!

Serverless Devs

阿里云 互联网

公有云厂商有哪些?排名是怎样?

行云管家

云计算 公有云 企业上云 云厂商

将项目自动化发布到多台windows服务器上的工具有吗?哪个好?

行云管家

IT运维 自动化运维 服务器运维

深入探索云原生流水线的架构设计

尔达Erda

DevOps 运维 云原生 架构设计 pipeline

星环科技Sophon 3.1发布,模型运管、隐私计算、边缘计算、知识全流程实现从数据到智能的全链路构建

星环科技

星环科技打造自主可控的高性能数据库,开启国产化升级新篇章

星环科技

数据增强(二)-SamplePairing

AIWeker

人工智能 深度学习 数据增强 5月月更

太极限了,JDK的这个BUG都能被我踩到

捉虫大师

jdk bug 5月月更

如何将你的 WordPress 网站置于维护模式

海拥(haiyong.site)

WordPress 5月月更

【LeetCode】移除指定数字得到的最大结果Java题解

Albert

算法 LeetCode 5月月更

Zadig v1.11.0 发布:不止于环境,与开发者一起交付全球业务

Zadig

DevOps 云原生 CI/CD 软件交付

netty系列之:给ThreadLocal插上梦想的翅膀,详解FastThreadLocal

程序那些事

Java Netty 程序那些事 5月月更

在Rainbond中一键部署高可用 EMQX 集群

北京好雨科技有限公司

web前端培训vue3响应式reactive源码分析

@零度

前端开发 Vue 3

星环科技数据安全与流通新产品+原创合规体系方法论,加速数据安全落地!

星环科技

CRM系统可以拯救您的初创企业

低代码小观

初创公司 CRM 中小企业 CRM系统 初创型企业

星环科技StellarDB4.0正式发布:性能数倍提升,万亿级图数据库挖掘海量数据互联价值

星环科技

星环科技TDH社区版:让大数据分析触手可及

星环科技

Rainbond结合NeuVector实践容器安全管理

北京好雨科技有限公司

ansible 模块:yum

ghostwritten

ansible yum

【刷题第四天】剑指 Offer II 076. 数组中的第 k 大的数字

白日梦

5月月更

开源项目丨 Taier 1.1 版本正式发布,新增功能一览为快

袋鼠云数栈

大数据

【ELT.ZIP】OpenHarmony啃论文俱乐部——计算机视觉数据压缩应用

ELT.ZIP

计算机视觉 OpenHarmony 数据压缩 ELT.ZIP

郑州商品交易所:数智一体化助力交易所数字化转型

星环科技

用金钱计算技术债务_研发效能_Vikas Hazrati_InfoQ精选文章