• 2010-08-09

    旁观茶餐会

    之前咨询过的一个团队,有一个叫茶餐会的活动,顾名思义,大家坐在一起喝茶、吃饭、聊天。实际上,就是让团队里面说得算的人聚到一起,讨论一下团队遇到的问题。在我们还在咨询的时候,这个活动让我们有机会和各位领导做近距离的沟通,解决了在敏捷实施过程中遇到的问题。

    出乎我意料的是,我们离开后,他们把这个活动坚持了下来。得知我在,他们邀请我一起参加。时隔几个月,我也想了解一下我们咨询的成果,于是,我参加了这次茶餐会。

    老朋友见面寒暄一番是无可避免的。我给大家介绍了自己这几个月四处云游的经历,而他们则向我展示了工作成果。让我印象颇深的一点是,遥想当初,为了搭建CI,负责人四处找机器,如今鸟枪换炮,新的数据中心建立起来了,数千个CPU可用于CI,并发性得到了大幅度提升。

    当然,这些人坐在一起不是为了自我表扬的,大家开始讨论起问题,因为我和他们曾经在一起很长时间,所以,他们也不见外,不避讳的把问题摆了出来。只是这次,我不再是咨询师,而是一个旁观者。

    大多数人已经认识到诸如单元测试这些实践的益处,当初我带的一个团队,因为坚持了做好基础,和整个代码合在一起之后,错误极少。不过,团队的压力依然巨大,在压力面前,很多人还是会倾向于走回老路。

    无论如何,代码的基础在提高,却把另外一个问题暴露出来:需求分析。对测试的回溯会发现,很多问题是由于几方理解不一致造成的。团队里总有人抱怨需求不清晰,做需求的人也冤,原来就是这么做的。大家在一起讨论发现,原来之所以可以这么做,是原来团队的成员经验丰富,经过一次搬迁,原有团队的很多成员离开了,现在团队的成员经验要浅得多,那些潜经验消失了。

    人,人,还是人,人总是不够,怎么算都不够,需求分析的缺人,开发的缺人,支持的缺人。他们饶有兴致的问我,你们怎么做估计呢?实事求是。我看见了一丝无奈闪过,我知道,他们总要“挑战一下”。

    还是人,在讨论的过程中,有人表现极强的防御心理。无论别人给出什么样建议,他都会列举出无数的理由,说这么做会有怎样怎样的问题,总而言之,就是我还按照原来的路来走。这种情形,我在咨询过程中,见过很多了。其实,这样的人本身都会很有想法,在团队里面也有很大的影响力,一旦能够改变,会是巨大的推动力。

    作为旁观者,我乐得欣赏这样的讨论,大家开诚布公的把问题摆在台面上讨论,一起讨论解决方案,这样的团队是有希望的。

  • 启动翻译《Programming Scala》
    翻译《Programming Scala》


    《Programming Scala》离开我的视线已经有很长一段时间了。在即将遗忘自己曾经翻译过一本书之际,它出版了。出版社给了它起了个中文名字,叫做《Scala程序设计》。

    无论如何,它是第一本正式出版的Scala中文书籍,希望对大家了解Scala有所帮助。顺便附上自己写的译者序,分享一些心得。

    写代码的层次

    初涉代码之时,我的关注点在于实现功能。初窥门径的我,不了解语言,不熟悉常见的编码技巧。那时,只要代码能够跑出想要的效果,我便欣喜若狂,无暇顾及其他。

    积累一定经验之后,对于编写代码,我越来越有感觉,实现一个功能不再高不可攀。我开始了解在工程中编写代码,如何在一个系统而不仅仅是一个局部处理问题,如何解决各种bug,更重要的是,从中汲取教训,在编码中避免这些问题。

    读一些软件开发的书,了解一下外面的世界,我知道了,除了自娱自乐外,代码应该是为明天而写。有个说法,对程序员最严厉的惩罚,就是让他维护自己编写的代码。于是,我开始尝试编写干净代码:短小的函数,清晰的结构……所做的一切无非就是让自己明天的日子好过一些。

    历经磨练,代码逐渐干净,窃喜之际,我见到了Ruby。孤陋寡闻的我第一次听到了代码的表现力。原来代码不仅仅可以写得让开发人员容易理解,也可以让业务人员看懂。事实上,更容易懂的代码常常也意味着更容易维护。许多人关注的DSL,背后就是对于表现力的追求。

    Scala就是Java平台上追求表现力的探索。

    我是通过Java开始真正理解软件开发的,所以,对Java这个平台有一种难以割舍的情结。初见Scala,我看到的是,一个几乎不舍弃任何Java的优点,又能拥有更好表现力的“Java”。当有机会系统地了解这门语言时,我欣然接受了。

    翻译向来是一件费力不讨好的事。认真准备的考试不见得能拿到满分,尽最大的努力,做最坏的打算。于我,只希望这个译本得到的评价不是太糟糕就好。

    感谢我的合作者,李剑,你给我这样的机会,让我知道,我居然还可以做翻译,你的认真让我受益良多。感谢本书的原作者Venkat Subramaniam,和你讨论让我们对Scala有了更深刻的理解。

    最后,感谢我的父母,你们教会我踏实做人,支持着我沿着软件开发这条路一直走下去。

    郑 晔
    2010年4月18日于成都