大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

质量是可以谈判的吗?

  • 2007-12-03
  • 本文字数:1329 字

    阅读完需:约 4 分钟

如果客户对你说,他们对软件的质量不感兴趣,他们只要求在规定的日期必须完成所有规定的事情——你会怎么做?你会听从客户的话在质量上妥协吗?(顺便一问,什么质量?)

Simon Baker 问道,你是否应该总是做客户希望的事情?

如果客户说他不想要“完美的代码”,只要能完成他想要的功能,质量低劣的代码他也无所谓,你会怎么办?我们的任务是交付客户想要的东西,对吧。那么,你会在质量上抄近道吗?我不会。我会去理解客户的思维,看看是否其实只是短线的想法(“我只想要最便宜的,质量无所谓”),如果他是无知,或者纯粹是糊涂,那我就撒手走人算了。我的良心不允许我在作品的质量上做出妥协。

ScrumDevelopment Yahoo! 讨论组上也发生了一起相关的讨论,议题是“质量”是否不可谈判的。讨论从 Pierre Mengal 的提问开始:

我正面对一个情况,客户不关心质量,因为对他来说,那属于浪费时间。他们立了一个不可动摇的限期,不允许增加资源,不允许缩减项目的目标范围。如果有必要,他们可以在项目完成之后几个月内把整个应用完全重写一遍。这个绝对不是开发费用的问题(如果到了限期没法发布,他们的损失会以百万计)。

Esther Derby 回以一个疑问:

我对“质量是不可谈判的”这句话很很好奇。
质量并不是一个绝对的词,因此 * 必须 * 经过谈判才能达到一个共同认可的特定含义。就我来说,“我不会牺牲协商好的质量水平”这样的说法更有意义。
Jerry Weinberg 说过“质量是对某人的价值。”我们的任务是找出价值所处的位置。
你可以看看 Jerry 的《Quality Software Management》系列。
Also Kathy Iberle 有一篇漂亮的论文《They Don’t Care about Quality》,里面谈了在不同业务背景中的“价值”: http://www.kiberle.com/2003/STAREast2003.pdf

Lance Walton 揪住价值不存在明确定义的暗示不放。

这里有个很明显的问题,“质量”是个缺乏定义的词。比如,假设“发布某物,即使质量很差”指的是每次用户保存工作的时候软件都会崩溃(如果在崩溃前还真的保存好了,那情况又不一样)。或者假设质量很差的意思是每次按键都要花 10 秒钟去处理。这些情况包括在“发布某物,即使质量很差”的可接受范围内吗?

Alistair Cockburn 举了一个详细的例子:

我刚刚访问过 A 公司,他们的软件比竞争对手 B 公司卖得好很多,让 B 都倒闭了。和我交谈的人说,B 的产品比 A 功能更多,速度更快,Bug 更少,但 B 没有建立现场专家支持部门,而 A 建立了。
从他们客户的角度来看,A 产品比 B 产品“质量更高”。因此客户购买 A 产品而不是 B 产品。
仅仅避免 Bug 和编写可维护的代码还不算交付了质量,还得有人买它。购买的决定指出了“什么才算是质量”。
“质量”的因素多不可数,大多数谈判中谈的是各项因素的重要性排列,每项因素需要达到什么程度。如果你生意不好,“没有 Bug 和可维护”可帮不上什么忙。

Ken Schwaber 在《 Agile Quality: A Canary in a Coal Mine 》演讲中讨论了另一种看待质量的方式,他认为代码质量应被视作公司的资产。

那么,当客户说他们不关心质量的时候,我们应该听从吗?我们应该盲目地做客户要求的事,还是说忽略他们,因为我们懂得更多?又或者有没有别的途径?我们应该如何与客户交流,才能建造出最好的软件呢?

查看英文原文: Is Quality Negotiable?

2007-12-03 19:471613
用户头像

发布了 225 篇内容, 共 70.8 次阅读, 收获喜欢 52 次。

关注

评论

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

【案例】基于星环科技数据云平台TDC为富国基金建设万能的数据湖

星环科技

数据库

Web 键盘输入法应用开发指南 (2) —— 键盘事件

天择

JavaScript 键盘 输入法 3月月更

跨团队协作:提高团队生产力的 7 种策略

小炮

团队管理 知识管理 团队协作 办公效率

数据系统提供商极道科技加入龙蜥社区

OpenAnolis小助手

Linux 开源 数据系统

用好这28个工具,开发效率爆涨|云效工程师指北

阿里云云效

云计算 阿里云 云原生 研发工具 研发

活动预告 | DataOps + MLOps Meetup

第四范式开发者社区

人工智能 机器学习 开源 DevOps MLOps

组件简介 - 大屏云极简使用手册

shulinwu

数据可视化 大屏可视化 智慧大屏可视化 大屏

星环 KunDB 2.2 发布,为高并发事务与查询混合的业务系统提供一个新选择

星环科技

数据库

“碳中和”背后的创新科技!

青云技术社区

云计算 碳中和

一文带你看懂HarmonyOS应用上架

HarmonyOS开发者

HarmonyOS 应用开发

BFS/DFS/DP 算法案例 LeetCode题目:传递信息

OpenHacker

LeetCode 动态规划 深度优先搜索 算法解析 广度优先搜素

阿里云智能编码插件,更Cosy的开发体验

阿里云云效

Java 阿里云 程序员 开发 研发

C++学习网站

C语言与CPP编程

c++

数据可视化大屏 - 大屏云极简使用手册

shulinwu

可视化 数据可视化 大屏可视化 智慧大屏可视化 大屏

Android包体积优化上篇- 资源混淆优化

百度Geek说

百度 前端 后端 优化 包体积

易观分析对《关于银行业保险业数字化转型的指导意见》的解读

易观分析

银行 数字化

徐徐春风迎3月,月度更文活动准点发车啦!

InfoQ写作社区官方

3月程序媛福利 3月月更 热门活动

虎符研究院关于 Manta Network平行链解决方案的分享

区块链前沿News

虎符交易所 币圈后浪

新思科技最新报告显示97%的应用存在漏洞

InfoQ_434670063458

新思科技 应用安全

Nebula Graph 的 KV 存储分离原理和性能测评

NebulaGraph

图数据库 分布式图数据库

实践GoF的23种设计模式:SOLID原则(上)

华为云开发者联盟

设计模式 GoF SOLID SOLID原则 分布式应用系统

Python 中 base64 编码与解码

AlwaysBeta

Python 程序员 编程语言 base64

用 python selenium 爬简书,Python自动化领域之 Selenium WebDriver 学习第2篇

梦想橡皮擦

Python 3月月更

赋能金融领域,国密改造让安全合规更加牢固

电子信息发烧客

安全

星环科技ArgoDB 3.2正式发布,全面升级易用性、性能和安全

星环科技

数据库

布局说明 - 大屏云极简使用手册

shulinwu

可视化 数据可视化 大屏可视化 智慧大屏可视化 大屏

应用数仓ODBC前,这些问题你需要先了解一下

华为云开发者联盟

数据库 GaussDB(DWS) 驱动 ODBC 驱动管理器

教你如何使用flask实现ajax数据入库

华为云开发者联盟

Python 数据库 flask 文件上传 ajax数据

融云 IM 在 Electron 平台上的设计实践

融云 RongCloud

低代码平台设计探索,如何更好赋能开发者

雯雯写代码

低代码 开发平台 开发者,

ironSource 新功能发布,开发者可在同一会话中实时调整广告策略

极客天地

质量是可以谈判的吗?_研发效能_Amr Elssamadisy_InfoQ精选文章