前两天与同学交流时,同学让我谈谈软件开发与测试的区别,我说撇开技术和工作细节不谈(除了时常辅助地写些Unit Test外,实在对测试不甚了解),二者对待同一问题的心态上本该不同——测试人员大抵悲观而怀疑,开发人员往往乐观而执着。作出这样的推断,一方面作为一名开发者,我既品尝过编写代码的巨大乐趣(源自创造和控制的本能自豪与成就),也都经历过面对蜂拥而至的缺陷与复杂决策的困惑,因此窃以为若非迫于生计,一个没有万丈雄心与执着信念的人很难把编程作为一项长久事业的。反观一个出色的测试者,他必然疑心重重,极力对项目作出种种悲观预期并证明之,也往往只有这样才能挖出隐藏在程序深处的缺陷。
当然,这里无意深入探讨开发与测试的异同,感兴趣的话dreamhead最近恰好有篇blog(http://dreamhead.blogbus.com/logs/24621087.html) 对此做了引申。然而无论认可与否,开发与测试种种看似矛盾的观念恰恰为软件项目的复杂与艰辛做了很好的诠释。在项目漫长而未知的周期中,总是充满太多的偶然与选择,站在不同维度的思考与权衡也很容易推出截然相反的判断,最终除了依赖时间的检验,在决策之初,无论是局内人还是旁观者都很难总揽全局、明辨是非。《梦断代码》就是这样一部记述了OSAF团队(http://chandlerproject.org/Projects/OSAFPeople) 心路历程与IT行业兴衰史的奇书。作者Scott Rosenberg凭借自己对OSAF团队那个野心勃勃曾立志超越Outlook的项目Chandler的三年潜心追随,与作为业内久负盛名的技术编辑对 IT行业数十年的洞察与积淀,用优美的文本及独到的视角向我们揭示了做软件为什么会那么难。
Chandler的产生始于一个简单而美好的愿景——让人们能随心所欲地切合数据,更灵活友善地管理纷繁而琐碎的个人信息。然而诚如译者后记,众多程序员以心血养育它,惜乎全不见成效,六年半时间,上百万美元,几十号顶尖高手,换来梦幻一场,时至今日Chandler仍无定型......
厌倦长叹,造化弄人!即便如OSAF团队这般衣食无忧、高手云集,在实现其“改变世界的梦想”时仍然受到现实的无情嘲弄,作为新来者,我们凭什么会认为自己与众不同?最让人难以接受的是OSAF团队从始至终一直在努力着,你很难断言究竟是什么过失使项目深陷其中,一切的发生既自然又出乎意外——就像一辆平稳行驶的火车,虽不曾出轨,但从上路的那一刻就已然驶上了一条不归路。资源不够?Mitchell Kapor可不是自私小气的人,6年半时间数百万美元的投资无不显示了其耐心。能力不足?能加入OSAF的队员就算不是功成名就的大师,在业内也算早已扬威立万的高手,何况开发Chandler项目的过程中他们还创建了诸如CVS,pyLucene等一批优秀的开源框架或工具,证明了自己的价值。决策错误?也许您会说Chandler不应该使用python,与其构建基于vxPython的桌面应用还不如构建基于浏览器的应用。但是OSAF团队的每项重要技术决策都是业内专家经过深思熟虑后的选择,当时谁又能料知数年后Ajax技术的风行会带动Web应用的普及?同样的关于项目延误、偏差的设问还能提出许多,但是每一项都没有足够的证据证明其是失败的根源,甚至有些因素在某种情形下对推进项目进展还起了积极作用。
这真是一种莫大的讽刺——在软件项目中,程序员与管理者都力求以一种理性的方式精确、缜密地安排任务并估量进度,然而现实中本就不存在这种凭空的假设,任何计划都会被意外变化无情地打乱,最后整个项目沦为令人沮丧的一拖再拖,不可收拾。所以对于软件项目而言,没有绝对正确的规范或一成不变的流程,有的只是失败的教训与从中汲取的经验。在我看来,一个成功的管理者一定是经验丰富的(反之不成立),因为他切身经历了众多不同类型亡羊补牢的改进过程,对相似项目的把握至少在方向上不会轻易地重蹈覆辙。
谈这些,主要源自我在大学时也曾组建并带领过学生开发团队,其间可以说既取得了出人意料的成功又经历了刻骨铭心的失败,就连毕设论文也专门针对软件工程专业四年的学习与团队管理方面的东西进行了反思,虽然多数观点不很被老师们认可,但至少个人以为这样的反思算得上对自己过去经历总结与理念的提升,比较有意义。《梦断代码》这本书是在4月份构思论文时从韩磊老师博客中获悉的,韩老师的翻译没有辜负我几个月的期盼,当然也不得不佩服作者Scott的巧妙构思与妙笔生花,在此一并感谢并极力推荐。
梦幻一场?
对“梦幻一场?”的回应
《梦断代码》热门书评
-
Dreaming In Code
66有用 0无用 g9 2007-02-14
当年Lotus Development的创始银,Lotus 1-2-3的设计者Mitchell Kapor,离开Lotus后拉开单干,成立了开源应用基金会(OSAF)。他招募了一堆牛程,开发号称革命性的下一代个人信息管理系统--Chandler。我还记得Mitchell Kapor宣布要开发Chan...
-
外国大牛也不过如此
37有用 7无用 庄表伟 2008-09-18
花了一周的时间,看完了《Dreaming in Code》(梦断代码),看得我心潮起伏。对里面那帮家伙的评价也起起落落。最终的结论是:外国大牛也不过如此。别看他们名头那么响,做了那么多超有名的项目,实际的能力(软件开发能力与项目管理能力)看来相当有限。感想很多,想到一点说一点吧。1、以前有一篇文章叫...
-
开源的路在何方?
25有用 1无用 kimi 2008-12-26
在图书馆的阅览室看了这本书,花了我两个小时的时间,午后的阳光透过图书馆的玻璃照进来,很温暖,可是我的心却一点点的凉了下来。 再过半年我,一个计算机系的学生,就要投身到软件开发这个行业中去了,可没有任何经验,仅凭着那些薄弱的理论知识。边看书边记下自己的想法...
-
有关软件工程的焦油坑
16有用 0无用 大徐 2008-09-25
结婚前夕我请假一天,躺在床上看了大半的《梦断代码》,Chandler项目时间从2002年转眼到了2004年,10月26日OSAF发布了 Chandler0.4版。2年时间里,整个项目组的人员从几人上升到了20多人,有人离开,更多的是新人加入。做为一款致力于“无地窖式数据处理”的开源PIM软件,项目组...
-
一身一身的冷汗啊
13有用 1无用 铁观音加枸杞 2008-09-30
这本书看了已经一半多了,就看完的这些部分说点自己想说的。开始看的时候,还是很轻松很调侃的在看老外大牛们的囧事。可是越看越发现这个项目里的很多扯淡的事情其实每天都发生在自己的身边。冷汗啊,一身一身的出,想想以前的很多事情,那真是不停的后怕。 &...
书名: 梦断代码
作者: Scott Rosenberg
出版社: 电子工业出版社
原作名: Dreaming in Code
译者: 韩磊
出版年: 2008.06
页数: 336
定价: 49.00元
ISBN: 9787121066795