`
javasee
  • 浏览: 949995 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

总把新桃换旧符

阅读更多

总把新桃换旧符

——写在《最后期限》出版之前

上个星期,《最后期限》的编辑给我一个电话,告诉我这本书在本周内就会生产出来了,让我颇感欣慰。从8月以来,心情一直不好,在上海与CSDN网友见面之后也没有什么特别值得高兴的事情,几个月火气都很大,常常在网上网下跟人吵架。最近北京的雪很漂亮,Adams的《人月神话》读得心旷神怡,我的书终于快要出版。在圣诞节之前,心情有了一点亮起来的理由。这篇文章是早就酝酿要写的,直到今天,终于有了一点感觉要写出来。

既然《最后期限》很快就要出版,就先从这本书开始说起吧。总体来说,《最后期限》是一个有趣的故事。因为有趣,所以它可以帮助读者杀时间。但是,除了杀时间之外,能不能对读者的工作有所帮助,我就不敢断定了。对于一本小说,本来也不应该对它有太多的期望;但抱着“没有期望”的心态去读一本小说,或许就有了收获也未可知。

是的,作为读者,你不能(也不该)希望一本小说能对你的工作有多大帮助。你很有可能遇到像卡布福斯那样不知天高地厚的培训讲师,也很可能遇到像贝洛克这样可恶的上司,如果运气好的话还能遇到像“元首”这样英明的老板。不过,当你的项目面临最后期限的挑战时,你无法希望会有那么多优秀的顾问来帮你——这种事情只会发生在小说里。

总之,整本《最后期限》透着一种令人愉悦的快乐氛围。问题尽管很麻烦,总能一个一个地被解决;坏人尽管很嚣张,终于还是被赶走了;最后期限实在太紧迫,但和汤姆·克鲁斯一样,“不可能的任务”最后还是顺利完成了。还有,尽管被工作累得晕头转向,男主角最后还是能抱得美人归。但是,这种快乐的气氛往往会给读者一种不切实际的幻想,让他们以为小说中的故事也能发生在自己身上。如果半年后有读者来骂这本书的话,我猜他一定是因为南柯一梦醒来之后觉得落寞。

Tom DeMarco似乎总有一脸和蔼的笑容,配上银白的头发,形象很不错,就像《最后期限》一样能令人心情舒畅。但是,作为第一代的软件科学家,他写作的态度难免让不明就里的人心里犯嘀咕。《最后期限》这样似是而非的作品不用说,还有那本被称为“无产者的呓语”的Slack,就连最著名的《人件》也透着一种过度乐观和“加料过火的呆伯特式的幽默”。Jacques Lebrun的批评一针见血:

如果你恰好处于作者们设想的位置,并也走在相应的方向上,作为一个殷勤的侍者,它(指《人件》这本书)会为你打开一扇特定的门。但似乎不应指望,它能领你一路回家。[1]<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

如果有可能的话,在一个星期之内读《人月神话》和《最后期限》这两本书,绝对是一个绝妙的阅读体验。你能看到BrooksDeMarco在几乎相同的知识背景下得到的两种截然不同的态度:“人月是神话、银弹无处求”的悲观,和“逢山开路、遇水架桥”的乐观。如果读者再带着项目的紧迫压力希望在这些武林秘籍中找到一些灵丹妙药,被这一阴一阳的两股内力搅和搅和,怕是脑子会被弄晕掉。

或者,你可以把这两本书看成是对“软件的科学”的两种哲学思辩——假如软件工程中的确有科学成分的话。1978年,Tom DeMarco那本名字大得吓死人的书——Structured Analysis and System Specification——出版,看得出当时他对结构化方法和软件工程是很有信心的。但是,当软件从军队、政府广泛地转向民用之后,情况越来越多地转向了《人月神话》所指的方向:软件工程可以解决(很少的)一些问题;某些问题似乎永远都无法解决。于是,Brooks更加坚定了自己的观点,并相继推出了《没有银弹》和《再论没有银弹》两篇文章,确立了自己的主张:在一个相当小的范围内,软件工程有效;对于相当大的其他范围,软件工程是否有效尚属未知;并且总有些问题无法用软件工程的方法解决,即“没有银弹”。Brooks的论述,可算是第一次明确地为软件工程科学(假如软件工程的确是科学的话)划界,而不再期望软件工程能够解决一切问题。所以,这种态度可以被称为“科学的悲观”。

而在划界完成之后,DeMarco似乎变得更加乐观了。1995年,他推出了Why Does Software Cost So Much这本书;1997年,《最后期限》;1999年,《人件》;2002年,Slack。从这几本书中,可以看到他的思维已经完全转到了软件工程科学之外的范畴。用他自己的话来概括就是:

优质管理的四大要素:

l 选择正确的人。

l 为他们分配正确的工作。

l 保持他们得到激励。

l 帮助团队凝聚起来并保持凝聚力。[2]

很明显,DeMarco此时所关注的问题是:在系统的、可重复的过程之外,重视对人的关怀,并期望这类“自由”的管理方式能够解决一些问题,从而发现其中的科学原理。对于无法用软件工程的方法解决的问题,他回归到软件开发的最初形态——依靠个人的才华获得成功。这种探索,即使有一定的成果,也无法形成对别人的指导,但毕竟是一种有益的、对于软件哲学的探索。

从事这方面探索的,不仅仅是Tom DeMarcoPete McBreen在他的Software Craftsmanship中也回归到工业革命之前的手工业时代,一改沿用多年的“工程”的比喻,而改用“工艺”来比喻软件开发,并提出了一整套发展软件工艺的办法。承认科学的范畴狭窄、承认科学并非万能之后,人们开始向科学之外的领域做大胆而谨慎的探索,并且保持冷静的乐观态度,不再把哲学的领悟妄自纳入科学范畴。这是对于科学和哲学的发展都有利的态度。自然科学的大发展,是从消除了“科学”二字头顶的光环之后开始的。软件科学如果能够有发展,必定是在消除了“软件工程能够解决一切问题”的幻想之后。

所以,当你捧起《最后期限》、《人件》、Slack或者Software Craftsmanship这样一本书的时候,实在不应该期望它能够对你的项目有所帮助。达尔文的进化论作为一种形而上学指导时,能够让人对自然产生一种敬畏;但若把它当作一种科学理论抄起来随手乱舞,祸害也是无穷。对于形而上学的探索,读者只能期望它能够激起自己心灵的共鸣,而无法对它有现实的要求。或者可以换个角度来说:当你抛开现实的问题,忘记世俗的压力,用快乐的欣赏眼光去阅读它们时,它们或许能给你一些意想不到的收获。

到此,我想你也应该能对出版社的一些“不实宣传”表示谅解了。没有人能告诉你“这本书不好”或者别的什么东西,因为好与不好本来只是一个唯心的评判。而且,不能分清科学和非科学的人总是那么多,所以至今还有人认为熟读《射雕》就能学会降龙十八掌。作为腰包里钞票的主人,在希望别人帮助你之前,先给自己一双明亮的眼睛,然后给那些理智的乐观者和并不那么理智的乐观者一个宽容的微笑吧。

很快就要过年了。明年的软件工程该换上哪张符,我也不敢妄言。对于那些披上科学外衣的伪科学和那些戴上真理光环的废话,我仍然将给它最严厉的批驳。与此同时,也许我也会去看看那些“软件的哲学”。不过,在此之前,仍然保持着冷静的乐观态度,祝所有人新年快乐吧。

(抱着这样“无所求”的心情和快乐的欣赏眼光,圣诞夜去看了《英雄》,倒也觉得满愉快。虽然张艺谋仍然不懂如何拍出一部让人想看第二遍的电影,但在圣诞夜和三五好友一起花三个小时吃饭看电影,本身就是一件让我开心的事情了。)

透明

2002年12月26日

北京



[1] Jacques Lebrun,《人的问题:关于Peopleware》,《程序员》杂志200212期。

[2] Tom DeMarco,《最后期限》,清华大学出版社200212月。

分享到:
评论

相关推荐

    古诗两首元日PPT课件.pptx

    接下来的“千门万户曈曈日,总把新桃换旧符”,描绘了旭日东升,阳光普照的场景,象征着新的一年充满希望和生机。家家户户都会更换桃符,这是古代的一种习俗,用以祈求平安,这里的新桃换旧符不仅是节日仪式,也寓意...

    元日练习题及答案北师大版精选.doc

    "总把新桃换旧符",桃符(即春联)的更换,意味着去除旧事物,迎接新气象。 四、根据课文内容,我们可以知道《元日》是宋代(960年-1279年)著名政治家、文学家王安石所创作,他通过诗歌描绘了春节时的热闹场景,...

    三年级语文下册《元日》课文知识点复习.docx

    "总把新桃换旧符","桃符"是古代的一种风俗,用桃木板写上神荼、郁垒两位神灵的名字,悬挂于门旁以避邪。"新桃换旧符"表示新年之际,人们会更换门上的桃符,寓意去除旧的不祥,迎接新的吉祥。 这首诗的创作背景是...

    四年级语文上册 10《过年》元日学案(无答案) 北师大版 学案.doc

    这是深化学习的重要环节,通过理解诗句“爆竹声中一岁除,春风送暖入屠苏”和“千门万户曈曈日,总把新桃换旧符”,学生可以了解春节的传统习俗,如放鞭炮、喝屠苏酒、更换门神等,同时也能感受到诗人对新年到来的...

    描写春节的古诗句_关于春节的经典诗词.docx

    5. "千门万户曈曈日,总把新桃换旧符" —— 这是王安石的诗句,"曈曈日"象征着旭日东升,"新桃换旧符"指的是贴春联的习俗,寓意驱邪避祸,迎接新气象。 6. "旅馆寒灯独不眠,客心何事转凄然" —— 诗人表达了在外...

    新人教统编版三年级下册语文 9课 古诗三首 课件.pptx

    "千门万户曈曈日,总把新桃换旧符","曈曈"形容日出时的明亮,"新桃换旧符"则指的是更换门上的桃符,这是古代的一种避邪风俗,后来演变为贴春联的习俗。这首诗生动地展现了春节热闹、欢乐的气氛,同时也反映了人们对...

    元日教学PPT学习教案.pptx

    后两句“千门万户曈曈日,总把新桃换旧符”,描绘了家家户户在阳光照耀下更换门神画的情景,这里的“新桃换旧符”就是指更新门神,祈求一年的平安与福祉。 通过这样的教学设计,学生可以更深入地理解《元日》诗中的...

    《元日》公开课课件PPT.ppt

    诗的后两句“千门万户曈曈日,总把新桃换旧符”,描绘了家家户户在新年第一天悬挂新桃符,替换掉旧的桃符的场景。桃符是一种用于驱邪的象征物,后来逐渐演变为春联,人们在门上贴上对联,表达对新年的祝福和期盼。 ...

    三年级语文上册元日北师大PPT学习教案.pptx

    "千门万户曈曈日,总把新桃换旧符",则提到了贴春联的习俗,最初的春联来源于古代的桃符,寓意祈福和辟邪。随着历史的发展,桃符演变成现在我们熟悉的对联,用以表达人们对新的一年的美好期盼。 此外,PPT中还提到...

    部编版三年级语文下册知识点总结课堂笔9.古诗三首.docx

    - “千门万户瞳瞳日,总把新桃换旧符。”“瞳瞳日”表示日出时的明亮,新桃换旧符象征着万象更新。 - “昏暗季节雨纷繁,路下行人欲销魂。”描述清明时节的阴雨和行人内心的忧郁。 - “借咨询酒家那儿有,牧童...

    春节习俗:春联的起源.doc

    王安石在《元日》诗中描绘的“千门万户瞳瞳日,总把新桃换旧符”,正是对当时家家户户贴春联盛况的生动写照。此时,春联也被称为“桃符”。 明代,朱元璋大力推广对联文化,他要求朝廷官员及百姓在除夕前必须在门上...

    小学语文教师素养大赛知识素养试题.doc

    所以后两句是"千门万户曈曈日,总把新桃换旧符"。 4. 填空题:考查汉字笔顺。孝字的笔顺是:横、竖、横折、横、竖钩、撇、点,所以第五笔是竖钩,第六笔是撇。 5. 选择题:考察汉字字形的正确性。"宣纸"是正确的,...

    小学一年级元旦主题班会PPT课件.pptx

    4. 古诗词中的元旦:宋代诗人王安石的《元日》描绘了春节的景象,诗中的“爆竹声中一岁除”和“总把新桃换旧符”反映了古代中国新年时放鞭炮和更换桃符(春联)的习俗。 5. 春联的历史与文化:春联起源于古代的桃符...

    外研版(一起)英语二年级上册 Module 10 Unit 1 Happy New Year!(课件).ppt

    首先,课件提到了古诗《元日》,这首诗描绘了春节时春风吹拂,家家户户欢庆新年的景象,"春风送暖入屠苏,千门万户曈曈日,总把新桃换旧符",这句诗反映了中国古代过春节时的风俗,即饮用屠苏酒、挂新桃符以祈求新的...

    小学四年级元旦主题班会新的一年新的开始PPT学习教案.pptx

    3. **王安石的《元日》**:这是一首描绘春节景象的古诗,诗中的“爆竹声中一岁除,春风送暖入屠苏”描绘了新旧交替的欢乐氛围,而“总把新桃换旧符”则指的是更换春联,寓意辞旧迎新。 4. **春联的含义**:春联,...

    二年级语文上册 8 过年 元日同步训练 长春版-长春版小学二年级上册语文试题.doc

    总把新桃换旧符。” 最后一部分是列出与过春节相关的成语,旨在扩展学生的词汇量,加深他们对春节文化的理解。例如“恭贺新禧”表示祝贺新年快乐,“吉星高照”寓意好运降临,“恭喜发财”祈愿财富增长,“多福多寿...

    人教六年级语文下册日积月累PPT学习教案.pptx

    “总把新桃换旧符”则是描述更换门神像和春联的习俗,象征着去除旧事物,迎接新气象。 这首诗不仅是写景之作,更是诗人情感的载体。通过对春节习俗的描绘,王安石寄托了自己的政治抱负,即希望通过变法改革,...

    人教六年级语文下册日积月累模板PPT学习教案.pptx

    "千门万户曈曈日,总把新桃换旧符"意味着家家户户都在阳光下换上新的春联,寓意着去除旧事物,迎接新气象,这与王安石推行变法、革新国家的理念相吻合。 这首诗的教学过程中,教师会引导学生理解古代习俗,比如...

    【少儿综合素质训练】描写春节的经典诗句大全.doc

    2. "千门万户曈曈日,总把新桃换旧符。"——王安石《元日》 “曈曈日”象征着新年的曙光,家家户户挂上新的桃符,象征祛除旧的不吉利,迎接新一年的吉祥。 【篇二】经典诗句解析 1. "翠柏红梅围小坐,岁筵未是全贫...

    中国传统文化节日的古诗词赏析.doc

    "千门万户曈曈日,总把新桃换旧符",日出的光芒照亮每家每户,人们更换门神,寓意着除去旧的不祥,迎接新的吉祥。这首诗展示了王安石的改革精神,希望通过新年的庆祝活动,寓意国家的变革与进步。 接下来是辛弃疾的...

Global site tag (gtag.js) - Google Analytics