★ 梦断,魂殇——《梦断代码》阅后有感

引子

昨天晚上,我终于把《梦断代码》这本书看完了。之前,我开展”Chandler中文化”这个项目,在内心深处的原因是

“我啟動這個項目,并不是從所謂的用戶角度,或者是為了推廣
只是覺得這樣一個優秀的、能與GTD這么緊密結合的軟件
實在罕見,也難以找到
雖然,流行很多軟件,都可以用于GTD
但是,能以GTD本身的方式來設計的軟件
少之又少

我是為了不讓這個優秀的GTD軟體從此湮滅在歷史的塵埃中
因此決定做出這樣的舉動
希望GTD的思想在國內不斷興盛的同時
也能保持住這個軟件的活力”

是吧,觉得我很理想主义吗?没错,这就是一个十分具有理想主义的目的,没有任何的功利,也不为推广。如果我再深入一点,其实最最内心的一个想法就是:”这么一个好软件,如果没有一个中文版,真是太可惜了。”当初召集人手,也没有想过要自己参与中文化,而是想用”钱”这个万恶之源来诱惑一下别人,希望有人能帮忙把这个软件给汉化了,不过”事情的发展往往出乎意料”这句话是永远的真理,我没有想到我也陷入Chandler中文化这个项目里面来,不但参与汉化,还了解了一下项目的管理与组织的事情,受益良多,超出意料之外。

也因此对Chandler这个软件更有感情,恰逢《梦断代码》这本书已经面市,因此在寒假的时候趁机看完。

读完这本书,久久无语,只能沉重的叹一口气,幽幽的历史阴影悄立在背后。

前言

韩磊这位《梦断代码》的译者,给《梦断代码》这本写Chandler故事的书做了一个评论:本书是讲一事,也是讲千万事;是写一软件,也是写百千软件;是写一群人,也是写千万人。

没错,一个故事,往往能带给我们一些启迪,何况是一个这么具有探讨意义的故事。

在这本书里面,最最重要的一句就是:软件难做。

为什么难?难在哪里?

拖而未决、超出预期的情况、改弦易辙、拦路虎、大量要修复的缺陷……

尤其这个软件,不是一个简单的小软件,而是一个大型的多功能集合的软件,所遇到的困难会比想象中要多得多,也困难得多。Chandler的难产,是必然。

软件

本书的作者一直在不断的重复着一个问题:为什么我们不能像造桥一样造软件?

在书中,描写了一个造桥的景象,以及造桥活动本身给作者带来的想象。在他看来,造桥,这个活动是多么的完美,从开始建造,一步一步的打地基,架好钢架,逐步逐步的添砖加瓦,然后成就了一个完美的大桥,一切都精确、可控、不必重蹈覆辙。

然而,做软件,不能做到像造桥一样,能够按照既定的图纸,既定的目标,来一步步实施,虽然每个做软件的人都希望如此。然而,”事情的发展往往出乎意料之外”这句老话不断又不断的在创造软件这种活动中应验。

也许是因为写软件,就是要求极高的事情,写代码的要求就是完美。计算机语言,其实就是将人的语言翻译给计算机,让计算机听懂人要让它去做什么。没错,计算机本身是不知道如何去写代码,它不懂,它要别人说给它听它才会有反应,还是十分精确,实事求是的反应。

一切的问题就是出在人身上,人是不可能不犯错的。一个小小的制表符,就能把一个软件搞得乱七八糟。

计算机那种无法容错的特性,犹如是给自满的人类泼冷水,我们在面对着我们创造出来最伟大的发明的时候,懦弱的发现,我们无法完全的去操控它,它就像是一个来自外星的生物,我们之间的沟通是如此的困难。

项目

Chandler的当初的愿景看起来十分简单,”让Agenda之魂在当代程序中复生,消除地窖、让用户能随己所愿任意切合数据”,只有三句话。

然而,为了这个愿景,一帮顶级的程序员,头脑洋溢着才华的家伙们在现实中不断耗费他们的精力,直到最后感觉陷入一片黑暗,茫然不知出路何方。

看来三句话的愿景还是太长,也许压缩为一句话,这样他们所遭遇的困难会不会小很多?

不管怎样,Chandler还是在太阳初升的朝气中启动,没有方法,不知道是一个怎样的作品,只有三句模糊的描述。

激励着程序员不断推动这个项目的动力是We Can Change The World这种充满梦想的口号,他们自信自己能够打造出这样一个能够改变世界的作品。没错,梦想总是激动人心的,但是梦想与现实中狠狠的相碰的时候,受伤的总是梦想,为什么?

当他们谈及梦想的时候,他们毫不知道要如何达到梦想,他们是想做出这么一个东西出来,但是,对于如何做出这个东西,却没有明确的认知。

他们开了一次又一次的会议,希冀每次开会都能消除一个到两个问题,确定一些事情,好让项目本身能够向前迈进。但是,讨论的东西太多了,一个又一个问题的提出,无穷无尽。

他们犹如困在玻璃瓶里的苍蝇,为了飞出牢笼不断的乱撞,直到筋疲力尽。

Chandler这个项目不是因为没有规划,可能最大的失败是因为规划太多,计划总是变得太快,令人无所适从,没有既定的路子,没有既定的方法,没有既定的结论。

就像在书中所说,”Chandler在地基未稳的情况下起步”。

所谓的事前计划,到了最后,也是变成了废纸一堆。

意料之外

在软件行业,总是充满着”意料之外”,一个有着好愿景,好团队,好计划的项目,到了最后也许只能产出一个半成品或是缺陷品,离项目的目标还有很长的一段路要走。

但是,同样有些软件或是产品,在当初的时候,没有考虑太多,只是一个简单的想法,只是为了实现一个简单的功能,但是不断发展,到了最后获得了极大的成功。

书中以IBM的OS/360为前者的例子,以blogger为后者的例子(大家可以回去查证一下,对比两者的发展历程)。

为什么会这样?书中做出了一个解释:

计划必须符合现实情况–‘从底至上’,依据那些负责按计划执行的程序员的经验和知识而来,而不是’从顶而下’,靠管理者拍脑袋或对市场的期望而来。”

后记

如果把Chandler的故事引用在一些团队项目上,我们是否也会冒出一身的冷汗?

项目的管理,项目的推动,项目的……

为什么做成一个东西,做成一件事会那么难?

面对这个问题,让我想起我之前看过李笑来的一篇文章,具体不记得了,但是大意是这样的:如果你想做好一件事,你要同时做好很多件事,只有这些配套的事情都做好了,你才能把这件事给做好。

但是,如何才能把一件事做好,配套的事情怎样才能一个个的全部做好?让我用一句双关语来做出解答吧。

从下至上,通天之路;由上而下,地狱之途。

————–
附上移山之道的读后感,十分精辟

梦断代码 读后感 (I) 驱动和责任

梦断代码 读后感(II) 交流和时间

梦断代码 读后感(III)远虑和近忧

★ “Chandler中文化”项目近况

Chandler_128.png

在我决心汉化 Chandler 这个与 GTD 思想紧密结合的优秀的软件之后,已经过了一个多星期。

很荣幸的是,这个想法得到很多人的响应,非常感谢对此关心的人。目前参与这个项目的人有:est、老杨、童年、coolcfan、x、蓝林、cookie还有我(排名不分先后)。

目前,已经确定好汉化的方法,这个要感谢est不辞劳苦的爬上官方然后把官方的教程给翻译了。在这个基础上,汉化就变得可行了。于是大家都认领了自己的汉化任务。而且,有的人已经将自己的汉化任务完成了,还要求”加码”~XD

启动一个项目,并不断地推动它,很自然的就会有些磕磕碰碰,比如有的人翻译太快了,统一的术语都还没出来呢,还得返工;有的人,一直说google连不上,还得间接地通过其他人才能认领自己的任务;最困难的是,一些词语应该怎么翻译,大家都各有各的观点,还各有各的道理,一讨论起来就十分热烈。所以,在推动这个项目的时候,也会觉得十分有趣,虽然汉化有时候觉得挺辛苦,至少对于我来说(囧)。不过,最重要的是,大家的动力都很充沛,遇上困难了也觉不抱怨,而是很积极地去解决它,无形间,团队的气氛就变得很好~哈哈!

我还要感谢一些关注这个项目的人:

善用佳软:感谢他抽出时间来给我们讲他的看法,确实很有价值。

twhsi:感谢他对这个项目的关注,并答应我帮忙校对测试的请求,他还强烈要求这个软件应该退出繁文版,这个我当然是要做的拉,不然这个项目就不会命名为”Chandler中文化”了。

DavidZou:同样是感谢他答应帮忙校对与测试,虽然他自己本来就很忙,才刚结婚,手头的事情就是多阿。

非常感谢参加这个项目的人,我发现有的人是专门跑出来到来上网,也有的人本来时间就不多也要抽出时间来,大家对这个项目的热情,实在是令我感动。

我们的google group地址: https://groups.google.com/group/ChandlerCn

我们的QQ群群号:49047803

如果你关注这个项目,欢迎加入!

也许你只是在那里潜水,但是当我们知道有你们在关注,我们的动力会更加充足!当然,很欢迎你提出建议,或者你有什么更好的想法,也欢迎提出来~来者不拒~~