《软件工艺》——译者序

原创 2003年12月25日 10:26:00

(《软件工艺》一书即将由人民邮电出版社出版,详情参见http://www.china-pub.com/computers/subject/huodong/ry12.23/tyzt.htm。本文是我作为译者为本书所作的序言。)

译序

时隔一年之后,当我再次到AMAZON寻找这本《软件工艺》时,它的评价不知何时已经悄悄地变成了四星半,销售排行也已经到了5,000多名——熟悉AMAZON的读者应该知道,在AMAZON能得到四星半评价的已经是精品好书,四位数的销售排行就更能证明它的品质。可是,一年前看到的批评仍然历历在目:“过时的例子”、“混乱的逻辑”、“东拉西扯不知所云”……当这些尖锐的言辞与“所有软件管理者的必读书目”一类溢美之词并列时,我不得不再次认真地思索:这究竟是一本怎样的书?

Pete McBreen说,这本《软件工艺》是一本“极具煽动性”的著作。而在我看来,用“煽动性”来评价它只嫌太客气,或许“颠覆性”会是一个更贴切的词。自1968NATO会议以降,软件工程的话语就始终把持着软件业(以及软件学科)的言路。一切的软件问题都不由自主地被归咎于“软件危机”,同样自然地,一切的解决方案都不由自主地被划入“软件工程”的范畴。从记事以来……呃,我是说,从上大学以来,我们的一切讨论都围绕着软件工程展开:这样做是否符合软件工程?如何对软件工程加以改进?企业应该如何开展软件工程?凡此种种。在语词的不断重复与变调之间,“软件工程”逐渐被捧上了神坛,成为一种信仰,并因此失去了它旧有的价值与意义。君不见,即令是软件工程的反对者,也只能说出“我们不要软件工程”这样的话——仍然未脱软件工程的话语霸权。

Pete McBreen是一个极其敏锐的人,并且对语词背后的意蕴有着深刻的体认,这或许与他年少时在英国所受的教育有关吧。他一针见血地指出:软件并不是工程,“软件工程”仅仅是一个多少有些不够贴切的隐喻而已。是的,一个隐喻,正如我们常说的“桌子腿”、“针眼”一样,这是一个深入人心、渗透极广的隐喻。但是,尽管每个人都知道绣花针并没有长眼睛,我们却常常忘记了软件工程作为隐喻的本来身份,真心诚意地把软件作为一种工程来对待了。软件工程的困境与读到这本《软件工艺》时本能的拒斥,殆出于此。

钱钟书曾说,反其道以行也是一种模仿。而对于目前软件工程的反对者们,另一个更恰当的比喻是“反转的胶片”——胶片的颜色与照片完全相反,但两者记载的信息却是毫无二致。作为一个真正意义上的颠覆者,Pete McBreen为软件开发找到了另一个隐喻(以及随之而来的另一套语词),那就是本书的标题——软件工艺(software craftsmanship)。

对于这套工艺学的语词,我一直有着淡淡的隐忧。在西方,工艺学传统多半与文艺复兴的人本主义联系在一起,而在对现代性的反动中,文艺复兴一直是吸引大众的旗帜。因此,可以想象,“软件工艺”这样一个隐喻对于欧美程序员有着不可抵挡的诱惑。而在中国,“学而优则仕”的传统价值观固有地鄙薄工艺学的实践者,“五四”以降现代性的话语又早已根深蒂固,所以我实在不敢乐观地期望这个译本的读者能够让“软件工艺”的思想畅行无阻。好在Pete McBreen并不是一个太喜欢夸夸其谈的作者,书中的论述虽然大胆,却是有理有据。既然Fred Brooks的“没有银弹”已经深入人心,相信以逻辑思维见长的软件开发者们能够抛开对软件工程的迷信,随作者一道认识软件工程的局限,并由此生发对软件工艺的思索。倘如此,这本书也就算不辱使命了。

在你开始正式阅读本书之前,请允许我给你打一针预防针:这本书可能颠覆你浸淫其中数年甚至十年的软件观,所以书中的很多观点可能让你感到出离惊奇甚至出离愤怒。请你不要马上把它扔到墙角去,阅读的过程也就是习惯一种话语方式的过程。当你逐渐习惯软件工艺的话语方式之后,或许能从中找到一些自己需要的东西。

为这个译本,我要感谢UMLChina的站长潘加宇,是他把这本书硬塞到我的手上,让我没有与这本精彩的著作失之交臂。我还要感谢我的女友、本书的合译者马姗姗,她优雅的文笔弥补了我言辞的生涩,她的支持与鼓励让我能够在工作之余顺利完成此书的翻译。谢谢你,亲爱的姗姗。

最后,希望你能从这本《软件工艺》中找到别样的触动和欣喜——就像我曾经的阅读体验。

熊节

200389日星期六 凌晨

杭州

 

通达 生产过程管理软件 生产进度管理软件 生产流程管理软件 车间现场管理软件

生产过程管理软件又可称制造执行系统、生产进度管理软件、生产流程管理软件、生产信息管理软件,车间现场管理软件,俗称MES系统。它帮助制造型企业优化生产管理,实时监控生产、质量情况,对产品全生产周期进行全...
  • u010633729
  • u010633729
  • 2014年02月28日 15:41
  • 1266

2014年IT互联网行业薪酬待遇

2014IT公司校招应届生待遇大揭秘(转) 本帖最后由 jszxge 于 2013-12-13 19:24 编辑 置顶版已经有tgkx1054版主原创的一个帖子了,这里再做一些补充,正确...
  • likika2012
  • likika2012
  • 2014年08月10日 10:06
  • 58678

深入理解软件包的配置、编译与安装【转】

从源代码安装过软件的朋友一定对 ./configure && make && make install 安装三步曲非常熟悉了。然而究竟这个过程中的每一步幕后都发生了些什么呢?本文将带领你一探究竟。深入...
  • l_nan
  • l_nan
  • 2016年03月03日 11:38
  • 1465

软件测试的艺术 - 作者:GLenford J. Myers 译者:王峰 陈杰

  • 2008年12月09日 13:04
  • 5.08MB
  • 下载

Backbone.js教程(初级篇) 这是菜鸟与老油条,屌丝与高富帅的战争 —— 译者:茶几 @chajn 原作者:脱袜子·戴蕾丝 原文:http://backbonetutorials.com/

Backbone.js教程(初级篇) 这是菜鸟与老油条,屌丝与高富帅的战争 —— 译者:茶几 @chajn 原作者:脱袜子·戴蕾丝  原文:http://backbonetutor...
  • robertzhouxh
  • robertzhouxh
  • 2013年10月24日 14:08
  • 9381

【读书笔记】代码大全34章:软件工艺主题

这本书大部分讲的都是软件开发的细节,本章节讲的主要是从宏观角度讲解软件工艺。 控制复杂度 软件开发的精髓就是控制复杂度降低复杂度的方法 将系统拆分成子系统精心设计接口...
  • caipeichao2
  • caipeichao2
  • 2014年05月04日 21:32
  • 619

《高效能程序员的修炼》之译者序

出版社的冀康一开始来找我谈翻译这本书的时候,我的第一反应是:这兄弟真是不知道我现在有多忙!我每天要处理200多封邮件;在资源有限的情况下经常要同时带6~7个项目,而且每个项目的交付计划都很紧,压力很大...
  • happydeer
  • happydeer
  • 2013年06月22日 21:50
  • 4207

游戏编程中的人工智能技术:译者序

游戏编程中的人工智能技术 译者序
  • zzwu
  • zzwu
  • 2017年04月05日 08:35
  • 914

《21世纪机器人》译者序

【去年五月,与几位格友到秀峰松雪楼小聚,开始一起翻译《21世纪机器人》,并探讨机器人方面的创业机会。转眼一年多过去了,书出版了,今日收到样书,把译者序发出来纪念一下大家的这次合作吧,小小遗憾是,本想在...
  • PCb4jR
  • PCb4jR
  • 2017年08月21日 00:00
  • 73

<谷歌如何测试> 译者序

吴军的中有这么一章,他在里面历数了二十世纪五十年代以后的伟大的科技公司,无一例外,这些公司背后的驱动力都是技术,而技术的根本就是人。无论是基因科技还是蓝色巨人,里面都有一批做技术的人,可能是在这个行业...
  • liubofengpython
  • liubofengpython
  • 2012年07月10日 22:37
  • 4717
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《软件工艺》——译者序
举报原因:
原因补充:

(最多只允许输入30个字)