软件的高质量意味着高成本?

文:Martin Fowler
译:王薇
审校:刘申


软件开发项目中,一个常见的争论是花时间提高软件质量还是专注于发布更有价值的功能。通常,功能的交付压力会主导着讨论,导致许多开发人员抱怨他们没有时间提升架构和代码质量。

“Betteridge’s Law of headlines”这句谚语说的是任何以问号结尾的文章标题都可以用“否”来概括。了解我的人知道我会颠覆这样的规律,但是这篇文章讨论的更进一步:它颠覆了问题本身。这个问题假定了质量和成本之间的权衡,通过本文,我将解释这种权衡并不适用于软件,高质量的软件实际上更便宜。

虽然我大部分的文章都是针对专业软件开发人员的,但本文并不需要具有软件开发的专业知识。我希望这篇文章对任何关注软件工作的人都有价值,特别是那些软件开发团队客户的商业领袖。

我们习惯于在质量和成本之间进行权衡

正如本文开篇所讲,我们习惯于在质量和成本之间进行权衡。当我更换智能手机时,可以选处理器更快、屏幕更好、内存更大但同时也更昂贵的机型,或者可以放弃一些质量换取更低的价格。但事无绝对,有时候我们也可以花更少的钱买到高质量的东西。我们往往对质量有不同的定义:有些人并没有真正注意到一个屏幕比另一个更好。但多数情况下,更高的质量意味着更多的花费。

软件质量意味着很多事

在谈软件质量之前,需要先来解释下什么是软件质量。这是第一个复杂问题,很多东西可以算作软件的质量。从用户界面的角度来看:它是否能便捷的引导我完成某项任务,使我更有效率且不会遇到阻碍?从可靠性的角度来看:它是否包含导致错误和崩溃的缺陷?从架构的角度来看:源代码是否分为明确的模块,以便程序员可以轻松找到并理解本周需要处理的代码?

这三个质量的例子并不是一个详尽的列表,但它们足以说明一个重要的观点。如果我是软件的客户或用户,我并不理解我们称之为“质量”的一些东西。用户可以判断用户界面是否良好,一位管理者可以判断该软件是否使他的员工工作更有效率,用户和客户会注意到缺陷,特别是损坏数据或使系统暂时无法运行的缺陷,但是客户和用户无法理解软件的架构。

因此,我将软件质量属性划分为外部(例如UI和缺陷)和内部(架构)。区别在于,用户和客户可以理解什么样的软件产品具有高外部质量,但无法区分内部质量的高低。

乍一看,内部质量和客户没有

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值