写点什么

软件债务的累积会消耗巨大成本

  • 2009-08-11
  • 本文字数:887 字

    阅读完需:约 3 分钟

最近有一篇名为《系统变老,仍可交付更多价值》的文章,作者 Chris Sterling 在其中讨论了“软件债务”的概念——“如果只想着编译马上通过,而忽略系统随时间推移本应具有的可变性,软件债务就会不断积累。”在他看来,软件债务要比技术债务影响更为恶劣。

他认为软件债务由以下 5 个部分构成:

  • 技术债务:现在不去做、没有完成的事情,将会在未来对开发工作产生负面影响。
  • 质量债务:难以验证整个系统的功能和技术质量。
  • 配置管理债务:集成和版本发布管理变得更具风险、复杂,而且更易于出错。
  • 设计债务:要想加入一般复杂度的功能,其成本不断增加,并超出如果从头开发要付出的成本。
  • 平台经验债务:能够开发系统功能的人力资源受限。

他还说到软件债务如何在项目中潜伏下来,还提到项目中如何随时间推移积累软件债务,他指出:债务发生之时,项目经常面临复杂度的不断增加,在这种情况下仍希望产生最好的激励,并维护交付的正常节奏,就会积累债务。

Bill Curtis 以同样的基调讨论了 Muda (即日语中的“浪费”)对软件项目的影响:软件项目中最常见的浪费来源就是返工,这往往是软件债务的结果:

少数对返工的研究指出:在大多数未能成功推行流程改进的组织中,返工所占的项目工作量介入 30% 到 50%。这个数字令人痛苦不堪,不仅在收集数字时如此,而且想让人们承认也是难上加难。没有几个公司高层愿意承认他们在应用开发上浪费了 40% 的投入。

Sterling 提出几种管理和减少软件债务的方法:

  • 整理一个工作列表
  • 强调质量的重要性
  • 不断改善工具和基础架构
  • 持续提升系统设计
  • 在组织中共享知识
  • 最重要的一点:雇佣正确的人来开发你的软件!

他在这篇文章中给出了如何做到上述措施的建议。

在文章的结尾,他说道:

系统使用时间越长,就越难做出调整。当软件债务以技术债务、质量债务、配置管理债务、设计债务和平台经验债务的形式潜入系统之中,软件资产就变成负债了。 应用本文中的 6 原则,就能带来小的改变,随时间推移,这些细微改变就会为团队和组织带来显著的正面影响。管理软件债务的目标是要优化我们行业中软件资产的价值,从而增加客户使用软件时的满意度。

您的组织如何做到降低软件债务、保护他们在软件系统中的投资?

2009-08-11 21:442305
用户头像

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

关注

评论

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

平常心平常心

zhoo299

随笔杂谈

Apache Spark有哪些局限性

古月木易

spark

SignalR Core之Hubs基本概念

猫定谔的靴

.net core SignalR realtime Hubs

浅谈互联网思维和区块链思维

CECBC

区块链思维

「编程模型」C++封装资源

顿晓

c++ 封装 资源封装 自动化管理 简化代码

食堂就餐卡系统设计

终于有一个 Java 可以用的微信机器人了

犀利豆

Java

【总结】优秀架构师的职责及综合能力

架构师训练营第一周学习总结

全力以赴@

IP 基础知识全家桶,45 张图一套带走

小林coding

计算机网络 计算机基础 IP

读懂才会用:Redis ZSet 的几种使用场景

小眼睛聊技术

Java redis 学习 架构 后端

徒手撸框架--实现IoC

犀利豆

Java spring

Solidity的Bytecode和Opcode简介

程序那些事

区块链 智能合约 以太坊 Ethereum eth

小师妹学JavaIO之:MappedByteBuffer多大的文件我都装得下

程序那些事

Java io nio 小师妹 buffer

五分钟学会Elasticsearch查询代理设计

奈学教育

elasticsearch ES

ARTS打卡第二周6.1-6.7

我笔盒呢

iPad配置OpenVPN客户端

wong

ipad OpenVPN

徒手撸框架--实现Aop

犀利豆

Java spring

五分钟学会Elasticsearch查询代理设计

古月木易

ERC20 Short Address Attack

程序那些事

区块链 以太坊 Token ERC20 代币

架构师训练营第二周

Melo

编程的未来 Java, C, Go, Swift, Dart? Uncle Bob Martin - The Future of Programming

John(易筋)

Java 敏捷开发 编程的未来 编程简史 Bob大叔

第一周作业一:食堂就餐卡系统设计

DZ

Java15都快出来了,你还不会Java8中的Lambda?

Java全栈封神

Java Lambda java8

面向对象五大基本原则

彭阿三

面向对象设计 面向对象五个基本原则 基本原则

Apache Spark有哪些局限性

奈学教育

Apache Spark

架构师训练营第一次课程感想小记1

tuuezzy

软件工程 求职 架构师 UML

【JS】给console来的样式

德育处主任

Java html5 大前端 Web console

大家都知道递归,尾递归呢?什么又是尾递归优化?

程序猿石头

Assignment 01

高冰洁

回忆杀:我的编程能力是如何突飞猛进起来的

程序员小跃

Java android 编程 面向对象思想

软件债务的累积会消耗巨大成本_研发效能_Shane Hastie_InfoQ精选文章