频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

1A.4.2 我们从哪里走错了

作者: Alistair Cockburn著,苏敬凯译 出处:机械工业出版社华章公司  2008-02-21 16:36    砖    好    评论   进入论坛
阅读提示:《敏捷软件开发》以“软件是创造和沟通的合作博弈”为中心向读者展示一个看待软件开发的崭新视角。第一章内容写了创造和沟通的合作博弈,本文讲了一错误的比较。

1A.4.2   我们从哪里走错了

在这些论文集中,需要注意的第二件有趣的事是:在他们所宣称工程学由什么组成以及他们如何描述自己对于软件开发的方法和建议之间的错配。例如,他们作出了下面这个错误的比较(Naur 1968,第12页):

“我们构建系统就像莱特兄弟制造飞机一样:制造出整架飞机,把它从悬崖上推下去,让它坠毁,然后再重新开始。”

实际上,莱特兄弟以最好的可能的感觉来实践工程学:他们使用理论、实验法、猜测和反馈。莱特兄弟的解释(Wright 1953,第15~18页)是这样的:

“根据我们的计算,1900机器的升空失败,要么是因为机翼的形状,要么是因为Lilienthal表中的错误。为了满足我们对此的思考,我们进行了很多次实验,目的是确定飞机的相对起飞质量与曲面的关系,及有不同曲率深度的曲面相对值……9月,我们建立了一个小风洞,在风洞中我们进行了很多测量……但它们还不完全令人满意。我们立即着手设计和建造另一个工具,并希望用它能够保证得到更精确的测量……我们使用这两种工具对于起飞和起飞与漂移比率进行了几千次的测量。”

但工程学不只是计算表。它包括与材料的交互(在莱特兄弟这个例子中,是空气)。“进行工程化”这一活动就是学习材料的质量,并创造一种方法能够完成人们想用材料来完成的任务。几乎总是存在冲突,因此很少能够得到一个完美的解决方案。要找到一个能在某一特定情形下适当工作的解决方案需要:随着对于材料、问题和可能的解决方案集合了解得越来越多,一次次地重新框定问题。

麻省理工学院的Donald Sch歯教授把这种持续的重新框定称为“与情形的反思性会话”。在《The Reflective Practitioner》(Sch歯 1983)一书的很多案例中,他讲述了一个化学工程师处理新问题的案例。这些化学专业的研究生被要求创立一个制造方面的加工过程,即能够复制出使用牛骨在瓷器上产生的特殊光泽,但这一光泽会很快消失。这些学生在工作中经历了三个阶段:

•他们试图使用化学原理来研制出用骨头能产生的反应,这样他们就能复制出光泽了。使用这种方法,他们完全陷入了困境。
•放弃理论太困难了,他们接着实验那些自己能够想到的任何加工方法。这也不能使他们进步。
•最后,他们的教授指导他们不要复制骨头的加工过程,而是创造一种能够产生类似效果的过程。他们通过理论结合实验取得了一些进步,每次获得了一类的进步都为将来的工作缩小了搜索空间。

他们的第三个阶段显示了他们的与情形的反思性会话。随着他们对问题和解决方案了解得越来越多,他们就能够在博弈中采取更好的步骤。

Schon的解释完美地吻合了Pelle Ehn关于软件设计就是一个语言博弈的描述(参见附录B):

“在与材料的情形对话中,设计师永远不能采取一个只有有意的暗示的步骤。设计材料会不断地和他谈话。这导致他领悟到了未预料到的问题和潜在性,这些都成为了未来步骤的基础。”

然后,工程学作为一场创造和沟通的合作博弈而继续进行,其中的步骤来自于理论或者灵感,并使用更能揭示这一情形的实验来对这些步骤进行检查。

那么,工程学如何变得如此被人误解呢?Schon说:

“哈佛工程学计划的教务长Harvey Brooks是首先指出“排他式的以工程学科学为基础来想象工程学”的缺点的人之一。在他1967写的《Dilemmas of Engineering Education》一文中,描述了这样一个窘境:参与的工程师希望能在迅速变化的知识体和迅速变化的社会预期之间的鸿沟上建立起桥梁。Brooks认为,这一结果需要适应性,而适应性要求一门工程学的艺术。工程学学派的科学化已经趋于将工程学由一门艺术变为了一种科学。

在1953年至1967年之间,借助于公众对科学的巨大支持,工程学学派将他们的赌注押在了一门以“新东西的可能性”为导向的工程学科学之上,而不是以制作一些有用的东西的“设计能力”为导向……当最高级的教授成为了工程学科学家的时候,参与的工程师也不再是强有力的角色模型……到1967年为止,工程学设计事实上已经从全部课程中消失了,而科学和艺术之间的关系问题也就不再存在……(Schon 1983,第171~172页)

人们错误地认为:由于在工程师的技艺中使用了数学,所以他们关于一个项目要花多长时间(或项目要花多少成本)的预测就会相对精确。然而,当把建筑工程师放入类似的情景中,他们也会以与大多数软件开发人员一样的方式失败。例如波士顿的一个建造高速公路的计划,在1983年估计造价为22亿美元,并且预计1995年完工。但到了2003年,它依旧没有完工,成本估计已变成了146亿美元(Cerasoli 2001,Chase,地址为http://www. revelation13.net/bigdig.html)。600%的成本超出被归咎于项目比之前的同类项目更大,并且使用了新的未尝试过的技术。

在研究了这一项目及其他建筑工程项目之后,Martin Fowler在一个公开谈话中讽刺说:“与建筑工程师相比,软件开发人员在超出成本方面只能算是外行”。

关于工程学的普遍预期是错误的,因为把工程学作为一种活动的普遍理解是错误的。一旦我们把工程学理解成一种经济学的合作博弈,在精确预测一个工程项目的轨迹方面的难度就变得可以理解了。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
专题
敏捷软件开发(原书第2版)
程序员面试攻略 第2版
微软出价446亿美元收购雅虎
Use Case入门与实例
UML嵌入式设计
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本