10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

信仰驱动的产业?热门词和指南 vs. 思考和审视

  • 2007-10-13
  • 本文字数:1415 字

    阅读完需:约 5 分钟

“由于某种原因,我们创造并追随信仰……。”James O. Coplien 就是这样描述当今的产业。他认为,这个行业如今是建立在热门词(buzzwords)和指南(checklists)的基础上,而不是建基于思考,审视和努力去找寻最合适且最节约成本的解决方案。

你引入到公司里的最新技术,你仔细考虑过它们的代价吗:Ajax、TDD、现场客户,或者其他热门词?你研究过它的发展轨迹吗?亦或你只是看过它的广告?

James 引用了一个例子,那就是在 JAOO 2007 Conference 的尾声时,一个 blog 上发生的关于 TDD 的争论。当争论焦点集中在“什么测试方法最好,是 TDD,亦或是验收测试”时,实际上这个问题本身就是一个错误。它掩盖了我们的真正目标。我们的目标是“交付用户想要的且最高质量的软件,为客户创造价值”。测试的确是在我们为提高质量而写到指南上的,但它远远不能涵盖真正影响质量的所有问题:

如果你没有正确理解客户想要的是什么,或者代码里有很难预计到的内部干扰,或者局部代码超过了数组边界,用了未定义的指针,都会出现质量问题;假如设计出来的交互界面允许用户提交非法数据,或者输入常规信息需要太多次按键,也同样是质量问题。

对于质量问题需要考虑我们“兵工厂”中的所有“武器”:

意思是:使用 UseCases(它是使客户融入项目的一个敏捷方法) 代替 XP 风格的用户故事(这样你可以提前理解特性间的相互作用),进行结对编程或频繁的代码走查,实行契约式设计,流程由可用性专家推进并做有效的可用性测试,以及其它一些事情。

Coplien 强调:什么事都做是不可能的,一定要考虑成本效率。但是一味地强调技术或者一味受到热门词的驱动,我们可能会局限于并非最有效的实践。某些技术或方法论的使用(例如 TDD)已经成了“一个信仰问题”,James 提到:

我们被告知“只有做 TDD 你才是一个专家”……,却不告诉我们为什么要相信这一点,没有证明,也没有证据。只是说“你就相信这一点吧,没错儿!”。

例如,Coplien 认为:集成与系统测试早就已经被证明是找 bug 最没有效率的方法;TDD 只会使架构恶化;而与传统的代码走查相比,验收测试的效率要低几个数量级,而且极其昂贵,由于是在最后阶段,对设计没有一点帮助。同时他也说,很难通过讨论来挑战这样的“信仰”问题,因为任何批评都是带有情绪的。

人们把敏捷的成功归于他们将 TDD 引入到工作中。TDD 是他们作为个体,不依赖于企业,所仅能做的事情。

Coplien 提倡关注质量而不是测试。更通俗一点说就是“关注思考而不是对指南亦步亦趋”。不管怎样,他都强调“理清这些东西需要从一个系统的角度”,而在当今的行业中是极其缺乏的。他认为“新时代的敏捷运动总是脱离”系统工程上的考虑。Coplien 还说到,“问题的根源在于现代教育,因为现代教育更注重技术而不是思考”。现在的学生“越来越不了解软件历史,而且只知道什么时候用–v,什么时候用 v–”,却“不知道做一些逻辑设计”。

学术界与产业之间的紧密关系也是该问题的一部分。大学更倾向于教授那些产业中所需要的课程,以便帮助学生就业。因此,对于学术界来说,向这种主流观点挑战就更难啦,可能和牛顿说服人们相信他“发现了宇宙运行的原理”有得一拼。

产业已经选择采纳那些 Agile、SOA 和编程语言热门词的既定解释,为了与这种普遍的误解作斗争,我们跟牛顿一样,面对的不仅仅是一种信仰,而且我们由产业资助的安逸的学术职位也同样受到威胁。

查看英文原文: Religion driven industry? Buzzwords and checklists vs. thinking and inspection

2007-10-13 12:341063
用户头像

发布了 100 篇内容, 共 25.0 次阅读, 收获喜欢 5 次。

关注

评论

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

手把手教学基于深度学习的遥感影像倾斜框算法训练与分析

cv君

人工智能 深度学习 AI 智能 视觉

【实战问题】-- 缓存穿透,缓存击穿和缓存雪崩的区别以及解决方案

秦怀杂货店

Java redis 缓存 架构 分布式

【活动回顾】5G时代的直播,将带来哪些低延迟体验

ZEGO即构

python 爬虫之selenium可视化爬虫

诡途

Python 爬虫 selenium

飞桨刷新分子性质预测榜单,助力AI药物研发

百度大脑

AI 药物研发 百度飞桨

2021年ONNX开发者大会即将召开

百度大脑

百度飞桨 ONNX

数据分析实战项目-蛋壳公寓投诉分析

诡途

Python 数据分析 蛋壳公寓

如何优化管理,打造高效的技术团队?

有只小耳朵

团队管理 技术管理 数字化转型

一套亿级用户的IM架构技术干货(下篇):可靠性、有序性、弱网优化等

JackJiang

启动延时缩短 50%-80%,函数计算发布镜像加速功能

阿里巴巴云原生

Docker 容器 开发者 云原生 存储

致远互联低代码平台让项目管理“秒变”数字化

爱极客侠

【疑难杂症】关于Github私有库问题

Sher10ck

GitHub pycharm

C 语言性能优化:循环展开

1

编程 程序员 性能优化 C语言 循环展开

寻找被遗忘的勇气(二十二)

Changing Lin

3月日更

首席AI架构师进阶之旅开启!第4期60位AICA学员硬核开学

百度大脑

AI 百度飞桨

【遇见Doris】基于Apache Doris的小米增长分析平台实践

ApacheDoris

最全模型效果评估报告上线,百度EasyDL助力模型效果快速优化

百度大脑

飞桨 EasyDL

一气之下开发了个群聊机器人

诡途

Python 办公自动化 群聊机器人

智能家居操作系统谁最强?海尔智家独有“智家大脑”行业最领先

DT极客

实时 摔倒识别 /运动分析/打架等异常行为识别/控制手势识别等所有行为识别全家桶 原理 + 代码 + 数据+ 模型 开源!

cv君

AI 目标检测 视频理解 引航计划

在这里,每一行代码都需要被认真对待

DT极客

飞桨中国行首站重庆 解读产业 智造

百度大脑

百度 飞桨 中关村智酷

Flink架构体系

大数据技术指南

大数据 flink 28天写作 3月日更

问题排查 | 客户端突如其来的“白屏”等待

蚂蚁集团移动开发平台 mPaaS

html5 移动开发 mPaaS 离线包

最全面试考点与面试技巧,面试必问

欢喜学安卓

android 程序员 面试 移动开发

安卓最全面试考点与面试技巧,大厂直通车!

欢喜学安卓

android 程序员 面试 移动开发

Fluid 0.5 版本发布:开启数据集缓存在线弹性扩缩容之路

阿里巴巴云原生

容器 云原生 k8s 分布式数据库 调度

加入即可服务1.83亿个家!海尔智家让开发者面向亿万家庭

DT极客

Spark常见的故障排除

五分钟学大数据

大数据 spark 28天写作 3月日更

数据产品经理实战-由BI到业务洞察

第519区

大数据 数据产品 数据分析体系

入选Gartner全球AI报告,阿里云解读AI工程化的三大基础能力

阿里云大数据AI技术

机器学习 AI Gartner

信仰驱动的产业?热门词和指南 vs.思考和审视_研发效能_Sadek Drobi_InfoQ精选文章