透明思考


Transparent Thoughts


回忆:2008年的Code Jam

经常有人说,编程语言啦框架啦无非就是个工具,这工具那工具对开发软件本身影响不大,就好像厨师不挑剔厨刀一样。但是作为一个从J2EE起步然后又做了很多Rails应用的程序员,我知道这说法是不对的,起码这两个社区的人群就很不一样。Java社区相对保守一点、老派一点,偶尔有个聚会什么的也是传统的一个人在台上讲若干人在台下听的模式;而Rails社区就更新潮、更有互联网范儿,比如说聚会这事儿吧,人家搞的叫“unconference”,一大堆人走进一个空间,也不预设主题,每人三句话介绍自己,然后就说今天我带来了什么可以分享的,然后感兴趣的人就自动聚集起来,或是演讲、或是讨论、或是玩游戏,很是热闹。2007年秋天,我去参加了一次在北京的BarCamp,觉得这种形式真是好玩。

还有更好玩的,就是CodeJam:一帮人带上笔记本电脑,找个地方,可能是某公司、某酒店、某青年旅社甚至某咖啡馆,短则十二小时长则两天,把一个点子变成一个真实的软件。如果说像BarCamp这样的unconference与RubyonRails还只是因为“互联网”这个共通点而有某种弱联系,那么Code Jam的兴起就跟Ruby onRails有着很强的关联了:如果不是Rails让程序员们的开发效率成倍地提升,短短两天时间里做出一个真实可用的东西,怎么可能?起码我从没见过用C++(甚至Java)来搞CodeJam的。谁说工具不会影响使用它的人?

2008年,我们也搞了一次Code Jam——主要是李默和徐昊看了别人搞的CodeJam心痒难耐,于是在公司也组织了一个。可是一时想不出该做什么,就连黄亮这成天喊着“做网站赚大钱”的也没有什么好点子,于是李默不知道通过什么关系联系了一个在中国做公益的香港人,听听他有什么需求然后我们帮他做——事后证明,这次CodeJam最牛逼之处就在于此了。

这位叫Steven Liu——不是“刘”,是“廖”,中文名叫廖元铂——的香港人在给一个叫“乡村教育促进会”的公益组织做CIO。顾名思义,这个公益组织的使命就是“为中国农村地区的学生提高教育质量,使他们能够在未来改善自己的生活与自身所处的社区状况”。怎么提高教育质量呢?现在中国农村地区、尤其是西部农村地区的教育,硬件条件固然是不足的,但至少还有政府和若干公益组织在支援;而教师的质量,往往比硬件条件更加堪忧。乡村教育促进会的网站上这样描述这个问题

在中国,约60%的小学生在农村小学就读。有研究指出在某些乡村地区,将近一半的学生不会上高中,其主要原因并不是经济上的困难,而是教学所用的方法和学校教授的内容对于学生将来的发展并不实用,引起学生“厌学”的问题。

要改善农村教育需要高质量的教师,然而最好的教师往往选择去待遇优厚、生活条件好的城市教书。2001年的全国新课程改革提倡培养学生的创造力和批判性思维,但因为农村教师缺乏相应的培训、资源与支持,一直未能得到很好的实施。因此,为农村的孩子提供高质量、有针对性的教育便显得愈发重要。

Steven想要做的就是一种能帮助农村教师、以及乡村教育促进会在农村里服务的志愿者提高教学水平的IT系统。他想做一个网站,让这些志愿者(以及他们身边的当地老师)可以通过互联网来交流教学经验,这样身在乡村甚至深山里的老师们就不再是孤军奋战,可以从众多同行那里学到教学的方法与心得——更重要的是一种心理上的相互支持,知道还有那么多人也跟自己一样,在困难的环境下仍然在为孩子们的明天而努力。

这个愿景把我们都打动了。于是,一个周末两天的时间,两个BA、一个QA,八个程序员,我们真的把这个网站给做出来了。郑晔在他的博客里记录了这个过程:有混乱,有纪律,有欢笑,有成就,还有对同事们的惺惺相惜。星期天快到晚上的时候,我们给Steven展示两天的成果,Steven都不知道该说什么好(当然他普通话很差也是真的),只能双手高举过头不停地鼓掌。其实别说是他了,连我们自己都惊讶:原来真的可以在这么短的时间里做出这么多事情。

我们这几个中国区最早的ThoughtWorker,已经在这家公司三年了。不知不觉中,我们在慢慢地成长、慢慢地承担更多的责任,也慢慢地离彼此越来越远。后来我们发现,这是一个——至少在ThoughtWorks——普遍的模式:每当你欣赏一个人,很快你就不能再和他/她一起工作了,因为他/她自己也会很快成长起来,去独立承担更多的责任。这次CodeJam是我最后一次和徐昊、WPC结对编程,也是最后一次跟李默在同一个项目里工作,我很怀念和他们朝夕共奋战的日子。

还有一段当时无论如何也料想不到的缘分。四年以后,当我在成都招聘时,Steven坐在了我面前,并最终也成了ThoughtWorker。再见他时,我都几乎不敢相认。不得不感叹,岁月,还真是一把杀猪刀啊。