treenode

在路上。

BlogJava 首页 新随笔 联系 聚合 管理
  5 Posts :: 1 Stories :: 53 Comments :: 0 Trackbacks


软件业总是充满了形形色色的隐喻。比如说,把程序中的问题称为bug;把互联网上传播的病毒叫做蠕虫;
把软件开发的过程比作造房子......这些都是我们这个行业中流行的隐喻,以至于它们已经成为软件开
发者文化中一个特有的组成部分。

在这里,我想要说的是一个特别具有“中国特色”的隐喻:我称之为武侠隐喻。

毋庸我多做解释,可能很多程序员看到这个词就足以勾起丰富的想象。我们中的很多人喜欢把自己所崇敬
和佩服的、软件界有影响力的人称之为大侠,并幻想自己有朝一日能够达到他们的境界。(跑题一下,
这个称谓现在似乎有了一个比较草根的、或者说比较Web2.0的版本——叫做牛人)上个世纪那个个人
英雄主义的年代,曾经涌现出一大批这样的人物,现在很多人仍然习惯称他们为“大侠”——这其
中包括求伯君、王志东、鲍岳桥、朱崇君...

除此之外,我们还喜欢将重量级的出版物称之为武林秘籍;把软件开发的组织团体比作江湖帮派;
要形容软件开发的理想境界,也常会搬出“飞花摘叶俱可伤人”或“无剑胜有剑”这样的句子。所有这些
都或多或少的表明:武侠深深影响了大量的程序员,他们非常喜欢用武侠中的理念来比喻软件开发过程中
的现象。或许,也是因为程序员0和1的生活太过枯燥,需要文化来加一点味道,而他们自觉不自觉的
选择了武侠。这就是所谓的中国特色吧。

我必须老实的承认:我自己就曾经深受武侠的影响,过去也一直没有感到有什么不妥。但是,
在前几天看过网上的某些回帖中一些充满武侠隐喻味道的文字,突然觉得有些不是滋味。
我开始思考:对于软件开发来说,武侠是不是一个好的隐喻?结论:不是不好,而是非常的
糟。武侠和软件开发根本没有什么共同点,甚至可以说是水火不容的。

为什么说武侠和软件开发没有共同点?武侠讲的是破坏的艺术。太史公说“侠以武犯禁”。
武侠的意义,在最好的情况下,也仅仅是杀富济贫、除暴安良,是对旧有秩序的破坏。
问题在于:破坏是痛快惬意的,但破而不立就是纯粹的破坏,没有任何积极意义。
破坏以后新的秩序如何建立呢?没有哪一个武侠故事为此做出答案,
也没有一个侠客操心这种事。他们在乎的是“十步杀一人,千里不留形”的高手形象,
至于走了以后烂摊子谁来收拾?那本大侠可就管不着了。

软件开发是建设,而不是
破坏。即使旧的系统非常糟糕,我们也没有理由将其付之一炬——这就是为什么现代的敏捷
开发者非常强调重构的原因。构造新的代码固然是极具创造快感的工作,但是软件开发过
程中还有成打的“肮脏”工作:需求分析,设计,文档,调试,维护......这些工作繁冗
而琐碎,但却是整个开发过程中必不可少的组成部分。想潇洒一下就拍拍屁股走人的
程序员没有什么职业素质可言。

武侠中的高手是什么形象?天马行空,独往独来,神出鬼没。这样的人看起来很有性格,
但在现代企业中恰恰是最忌讳的。而正正经经提倡Team Work的团队反倒在武侠中常常成为
讥刺的对象——你不妨看看少林或全真这样的大型团队在金庸小说中被丑化成了什么地步。

武侠所描绘的是农业社会的典型情况。一位高手通常只会把自己的技艺传授给至亲和少数几个
信得过的弟子;弟子亦然。这种结构非常脆弱:一旦出现任何问题,这门技艺很容易就失传了。

武侠中的秘籍是这样一种东西:你得到它以后,最好藏之名山,偷偷修炼。一旦泄漏,只会给你
带来杀身之祸。和师徒授受的问题相同,这样只会让最好的技艺在历史长河中渐渐湮灭。现代社会和开放
源代码运动则显示了相反的情况:知识可以由任何人获取与学习,而不分门派贵贱。与别人分享
知识也不会给你带来任何坏处。

武侠成为隐喻带来的恶果就是,程序员以成为“高手”为荣,以炫耀技巧为乐;无视风险
大量采用一些看上去比较炫的新技术;愤世嫉俗以为天下只有自己怀才未遇;不会与人
沟通,罔顾客户需求,把不懂技术的用户当白痴;不会开诚布公,总是自己偷偷留一手;
凡此种种,不能说都是因为武侠流毒。但是在程序员中造成了不好的风气,武侠的影响
是不可忽视的。

武侠是成年人的童话,但软件开发不是童话。软件开发要的是脚踏实地,而不是快意恩仇。
还在做侠客梦的程序员,愿你们早点醒来。

 

posted on 2006-12-01 15:33 TreeNode 阅读(1182) 评论(8)  编辑  收藏 所属分类: 软件随谈

Feedback

# re: 武侠隐喻反思 2006-12-01 15:43 海边沫沫
你对武侠的理解是片面的  回复  更多评论
  

# re: 武侠隐喻反思 2006-12-01 15:50 心内求法
武侠,重点还在一个“侠”字。那些没有责任感,没有正义感,没有“侠义心”的而仅仅武功高的人,是杀手,是大盗,是败类。
软件行业也是一样的,“大侠”应该帮助、教诲初学者,改变不合理的行业现状,维持正常的“江湖秩序”。
中国武侠,向来讲“武”以“德”为先。追求武功高没有错,但是如果“武”高于“德”,就难免要出问题了。技术本身也没有错,但是如果技高于德,难免让人不齿。

我想楼主说的也是这个意思,对吗?
  回复  更多评论
  

# re: 武侠隐喻反思 2006-12-01 17:27 TreeNode
@ 心内求法:

你所说的“大侠”所为正是我想要反对的东西。

至于德,我不太想提它,因为和我想说的关系不大,而且含义也太模糊。
在中国几千年历史上,道德礼教一直是统治者用来杀人的刀。
不如说公民素质,可操作性还强一些。
  回复  更多评论
  

# re: 武侠隐喻反思 2006-12-01 17:39 心内求法
@TreeNode
那么你希望开发人员"脚踏实地",是否可以理解为一种道德上的要求呢?或者说,素质上的要求。

再次思考了你的文章,我想你更强调的是团队的协作。但是团队协作也不排斥技术水平比较高的人啊,只是应该考虑让这样的人在团队中发挥什么样的作用。

http://www.blogjava.net/wanghaikuo/archive/2006/11/09/80054.html
这篇文章表达了我的一部分观点,我们可以探讨一下。  回复  更多评论
  

# re: 武侠隐喻反思 2006-12-01 17:55 TreeNode
脚踏实地是一种职业素养。这不是道德要求:我们要的是合格的软件工程师,不需要正义的使者。

我衡量一个人的标准,不是看技术水平高低,而是看他对开发的作用:是建设还是破坏。如果一个人水平很高,但是不能和其他人合作,那么水平再高也不能要。

你可以理解为团队协作,但我真正要表达的意思是:武侠观念影响下容易出现唯技术论的“高手”,而不是IT业真正需要的软件工匠。
  回复  更多评论
  

# re: 武侠隐喻反思 2006-12-01 18:07 心内求法
@TreeNode
嗯,这样说比较清楚了。谢谢!
但是技术水平低到一定程度时对项目也会起到破坏作用,呵呵
  回复  更多评论
  

# re: 武侠隐喻反思 2006-12-03 01:41 商业计划书
同意treenode。技术从来都是附属于业务的一个手段,把事情做成做好,发挥自己的建设性作用,是业务需要的。个人的英雄,除了少数情况,都带有某种破坏作用  回复  更多评论
  

# re: 武侠隐喻反思 2006-12-03 11:46 ddd
楼主这样想法所以说中国从来都只有平用的软件  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: