NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

质量是可以谈判的吗?

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

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

关注

评论

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

Qt 实现解压压缩包

小肉球

qt 7月月更

双目立体匹配之代价聚合

秃头小苏

7月月更

阿里云机器学习平台PAI与华东师范大学论文入选SIGIR 2022

阿里云大数据AI技术

Transformer 机器学习/深度学习

Kafka面试22连问,看完直接跟面试官聊骚都没问题

程序知音

Java kafka 程序员 后端 程序员面试

LED显示器好用吗?

Dylan

Kubernetes核心技术剖析和DevOps落地经验|研发效能

laofo

DevOps k8s 研发效能 工程效率

Python 入门指南之类

海拥(haiyong.site)

7月月更

【Docker 那些事儿】如何安全地停止、删除容器

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

活动报名|聚焦案例实践,Apache Pulsar 在线 Meetup 火热来袭

腾源会

开源 腾源会 Apache Pulsar 社区

“Shift”键——一直被人低估的功能键

Geek_2d6073

2022年7月中国数据库排行榜:墨天轮榜单榜眼易主,PolarDB得分涨幅最大

墨天轮

数据库 TcaplusDB TiDB 国产数据库 polarDB

WWDC22 - Apple 隐私技术探索

37手游iOS技术运营团队

ios macos apple appstore WWDC22

如何提交一个PR?完成这 6 点就可以了

OpenAnolis小助手

开发者 pull request 龙蜥社区 【人人都可以参与开源】 社区建设

动态化UI在Qunar客户端首页的应用

Qunar技术沙龙

内部排序——基数排序and总结

乔乔

7月月更

大厂都在玩的容器技术到底是什么?

慕枫技术笔记

容器 云原生 7月月更

WWDC22 - In App Purchase 更新总结

37手游iOS技术运营团队

ios iap appstore WWDC22 In App Purchase

从虚拟中发展电网现实:数字孪生承载的能源变革

脑极体

【LeetCode】实现一个魔法字典Java题解

Albert

LeetCode 7月月更

web技术分享| 基于vue3实现自己的组件库第二章:Pagination组件

anyRTC开发者

前端 Web 音视频 Vue3 Pagination

机器学习-聚类算法

AIWeker

机器学习 聚类算法 7月月更

Snappy你脱了马甲我照样认识你

怀瑾握瑜的嘉与嘉

spark hive 7月月更

SAP ABAP 系统同微软 Office 套件进行 Desktop Integration 的工作原理

Jerry Wang

Office SAP abap Netweaver 7月月更

👨‍💻Mybatis源码我搞透了,面试来问吧!写了134个源码类,1.03万行代码!

小傅哥

源码分析 小傅哥 mybatis 大厂面试 面试经验

开源协议详解

源字节1号

开源 软件开发 前端开发 后端开发

长安链研究笔记 - win10(goland)源码启动长安链,可调试源码

长安链

2022年数据库审计厂家排名看这里!

行云管家

数据库 行云管家 数据库审计

现在云堡垒机价格是多少?贵吗?可以先免费试用吗?

行云管家

云计算 堡垒机 云堡垒机 IT资产安全

打造“拉动式”企业培训管理方案,释放人才潜能

明道云

Git .ignore 文件规则不生效

攻城狮杰森

git IDEA 协同开发 7月月更

Wallys/Qualcomm IPQ8072A networking SBC supports dual 10GbE, WiFi 6

wallys-wifi6

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