HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

用金钱计算技术债务

  • 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:001846
用户头像

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

关注

评论

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

2022前端二面必会vue面试题汇总

bb_xiaxia1998

Vue 前端

心血来潮,手绘一张Spring学习思维,内容详细全面,秋招面试必看!

收到请回复

Java 云计算 开源 架构 编程语言

MFC模拟消息发送,自定义以及系统消息

中国好公民st

c++ 消息分发 9月月更

“基础-中级-高级”Java程序员面试合集,看完献出我的膝盖!

收到请回复

Java 云计算 开源 架构 编程语言

住宅代理IP在网络攻击中的作用

郑州埃文科技

代理IP 安全检测 撞库攻击

[极致用户体验] 让你的网页,适配微信大字号模式!体验超好,快来收藏

HullQin

CSS JavaScript html 前端 9月月更

TCPIP协议栈的心跳、丢包重传、连接超时机制实例详解

Java快了!

Github星标90K!京东架构师一篇讲明白百亿级并发系统架构设计

了不起的程序猿

Java 程序员 高并发 java程序员 高并发系统设计

现代数据栈如何降低数据平台的复杂度?

Kyligence

数据分析 云原生 指标中台 指标自动化

【HTML-CSS】小游戏--渣灰哥的愿望之砍砍渣灰

Sam9029

JavaScript HTML5, CSS3 9月月更

前端经典面试题(有答案)

loveX001

JavaScript 前端

大数据ELK(二):Elasticsearch简单介绍

Lansonli

elasticsearch 9月月更

前端常见react面试题合集

beifeng1996

前端 React

为超级品牌打造「上瘾算法」|Whale 帷幄发布全新 DAM & VAP 内容数字化产品

科技热闻

数据、管理、分析和运营:大数据专家面临的四大挑战!

雨果

大数据

你知道数据资产管理的目标是什么?

雨果

数据中台 数据资产管理

20道高频react面试题(附答案)

beifeng1996

前端 React

怎样才能开一场高效的迭代评审会?

LigaAI

Scrum 迭代 LigaAI 敏捷实践 企业号九月金秋榜

JWT本无状态,为何却要存储在Redis破坏其无状态特性?

知识浅谈

JWT 9月月更

阿里云视觉智能开放平台2D视频转3D视频开启邀测啦

夏夜许游

人工智能 AI 3D

2022前端经典vue面试题(持续更新中)

bb_xiaxia1998

Vue 前端

Java进阶(二十一)java 空字符串与null区别

No Silver Bullet

Java null 9月月更 空字符串

一线架构师开发总结:剖析并发编程+JVM性能,深入Tomcat与MySQL!

收到请回复

Java 云计算 开源 架构 编程语言

3D打印机打印模型的10大技巧

Dylan

3D模型

华为云宣布全面建设全球初创生态,3年内赋能10000家高潜初创企业

华为云开发者联盟

云计算 创业 创新创业 企业号九月金秋榜

阿里云视觉智能开放平台商品图智能生成开启邀测啦

夏夜许游

人工智能 AI 电商 图像分割

PANews与NFTScan联合推出Top50 NFT Collection全球影响力榜单

NFT Research

Ethereum NFT

SAP ABAP 平台新的编程模型

汪子熙

SAP abap Netweaver 思爱普 9月月更

网易易盾 GameSentry 正式开源,做游戏安全保障的尖兵利刃

网易智企

安全 测试

Spring 框架使用了哪些设计模式?

Java快了!

spring框架

计算机网络——码元、波特

StackOverflow

编程 计算机网络 9月月更

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