产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

质量是可以谈判的吗?

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

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

关注

评论

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

九联科技开发板正式合入OpenHarmony主干

科技汇

JSON 和JavaScript 介绍与区别

devpoint

JavaScript json 7月月更

SQL也能做AI ?没错!MLOps Meetup V3 回顾|OpenMLBD+SQLFlow+Byzer

星策开源社区

人工智能 机器学习 sql 特征平台

包装类型

7月月更

计算机组成原理之计算机最基本的工作原理

未见花闻

7月月更

jQuery 的事件绑定

Jason199

jquery js 7月月更

长安链中的加密算法

长安链

Allure测试报告怎么设置

和牛

测试

在线SQL转YAML工具

入门小站

工具

自动化生成Javascript调用后台代码v0.5.3版本

百家饭隐私计算平台创业者

JavaScript API

17张图带你深度剖析 ArrayDeque(JDK双端队列)源码

程序员小毕

Java 源码 程序员 jdk 队列

Docker(二)Docker-Compose、网络、数据卷

神农写代码

手动上传表单数据+图片文件功能

猪痞恶霸

前端 7月月更

异步 API 设计之扇入扇出模式

宇宙之一粟

API 7月月更

金融行业开放平台

穿过生命散发芬芳

7月月更 开放平台

Istio组件Mixer介绍

阿泽🧸

istio 7月月更

渲染与云渲染:一部电影的制作25%的时间是在“等”

Finovy Cloud

GPU服务器

Flutter 模拟火箭发射动画

岛上码农

flutter ios 移动端开发 安卓开发 7月月更

AWS Config

冯亮

云计算 DevOps 架构师 AWS 产品解决方案

小程序媒体组件-1

小恺

7月月更

电商平台数据可视化监控系统-Echarts-vue项目综合练习

武师叔

7月月更

【刷题记录】11. 盛最多水的容器

WangNing

7月月更

谈Java Record类

ES_her0

7月月更

项目管理系统选择有哪些需要注意的点?

爱吃小舅的鱼

项目管理

Codeforces Round #787 (Div. 3)

KEY.L

7月月更

国内外知名的待办事项app有哪些

爱吃小舅的鱼

待办事项 todolist

行业首个「视频直播技术最佳实践图」发布!

阿里云视频云

阿里云 音视频 直播

新书上市 | 图解、幽默、有趣、简单的 Java 书

图灵教育

Java 程序员 计算机

鸿湖万联致远开发板正式合入OpenHarmony主干

科技汇

Python已有列表和字典,为什么还需要元组?

迷彩

Python Python基础知识 元组 7月月更

【Docker 那些事儿】容器数据卷的妙手

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

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