关于Hackathon的那些事

今天三藩正在举办这个暑假最热门的一场hackathon:Greylock Hackfest。之所以热门,是因为它的评委包括了Instagram CEO和LinkedIn co-founder,而最后的第一名的奖品包括跟这些牛人一起吃一顿饭……

但是我没有去,因为我实在是不想熬通宵了。但是又有点不甘心,那就借着周末的时间写写这个话题吧。

Wikipedia一下就能发现Hackathon这个习俗来自于FreeBSD和Sun的一群人,简单来讲就是把Hack和Marathon这两个词杂交一下,意思是很长很长的Hack。大多Hackathon就是简单的集中起一群Hacker,指定一段时间(半天、一天至一周不等),最后拿出一些小型但是完整的项目(产品)。跟别人说起来,甚至有点无聊:就是一群人集中起来不停的写24个小时代码。但是实际上,真正的hacker对这玩意是会上瘾的(我算不上真正的hacker,这不到一年的时间就已经参加了四次)。而真正的上瘾的人,比如我上次Facebook Hackathon的队友,会在周末没事的时候自己找一群人来一发Hackathon,就跟中国人周末打麻将一样……

言归正传,后来hackathon这种活动被Facebook发扬光大了。我们知道扎克伯格是个很纯正的hacker,而Facebook最开始就是这个人独自在宿舍里写出来的,相当于是一个个人的hackathon产物。由此可知扎克伯格是个重度的hackathon上瘾者,不用组织人自己就能来一发……于是Facebook整个公司就继承了他个人的这个风格,进去它的总部大门,就能看到一面墙上写着大大的HACK;然后它时不时的会中断员工正常的开发流程,组织一场公司内部的hackathon,围绕着Facebook的一些功能做一到两天的集中开发。让人津津乐道的Facebook Like按钮就是它内部hackathon的产物。尝到甜头的Facebook每年都会组织一次全公司范围的这种活动,还会跑到美国各大CS强校去搞。慢慢的硅谷里面就开始盛行hackathon,各个公司,从10个人不到的Startup到Yahoo!这种互联网老人,都会时不时来一发。

典型的hackathon现场是3-4四个人一桌,十几桌一起稀里哗啦的敲键盘,时不时拿快白板来涂涂画画,偶尔还来个High five,大概是因为他们解决了什么关键性的问题。屋子里的一角放着咖啡和能量饮料,饭店了会有pizza送上门,组织者坐在另一个角落值班,然后开着音箱放音乐。

对没错,跟棋牌室差不多。

如果你听完了还是觉得很有意思,那我就简单来说说我这一年参加这些活动的感受和经验。我参加过的四场Hackathon有三场是大公司来我们学校搞的,分别是Yahoo!、微软和Facebook,还有一场是这个暑假在三藩参加的一个小startup举办的。四场里我和我的队友们拿了一个第一(微软),一个第三(Facebook)和一个提名(不知名startup)。以下是我的几点感触:

  1. 不打无准备的仗。参加Hackathon毕竟不是打麻将,端杯茶上桌就好。如果想要实实在在做出点什么东西,前期的准备是万万不可少的。准备包括但不限于:想创意、组团队和搭环境。
  2. 创意的可执行度最重要。一个点子可以很好,但它不一定是适合Hackathon的,毕竟只有那么短的时间,你们只有那么点人,怎么样能在如此之短的时间内做出一个让大家眼前一亮的完整的作品。
  3. 团队分工要明确。谁做前端谁做后端谁做设计都要在开始前明确好,不然真正开始项目会手忙脚乱。
  4. 产品展示很重要。实际的开发时间是Hackathon规定时间减去你调试和准备展示的时间。不要小看最后2-3分钟的产品展示,如果这部分演咋了你可能一天都白干了。

以我参加的Facebook校园Hackathon为例。提议前一周我和朋友开始组件团队,最后一共四个人,我做前端,两个人做服务器一个人做算法。四个人开了两次会,确定了主题:一个Chrome插件,通过Facebook帐号登陆后插件可以根据你当前浏览的新闻、网页开启一个聊天室,让你在里面跟那些正在阅读相同内容的人聊天。然后简历了git repo,明确了用什么技术。说实话这个点子有点复杂,设计到的方面太多,本来不太适合,但那24个小时我们配合得很好,本来我认为这是一个有潜力做冠军的项目,可是我们在最后20分钟新加了一个feature,没有测试就准备上台演讲,最后服务器down掉了,重启服务器占据了我们演示时间一大部分,最后就拿了个第三。
对于组织(特别是公司)者来讲,其实组织一次hackathon是一次成本不高的宣传自己并且招揽人才的方法,而且能树立一个很“酷”的公司形象。我个人则是觉得,组织一场hackathon跟开一个棋牌室差不多。

  1. 要有噱头,奖品要好。我开头提到的那个奖品就很丰富,跟硅谷的传奇人物们一起吃饭。Facebook校园Hackathon的奖品则很奇葩:去总部跟各个学校的冠军队伍再来一次Hackathon。但是,在总部的那场的评委是扎克伯格自己。这样一来,既达到了宣传效果,又能吸引高质量的参赛者。就算那个8个人的小公司,奖品也是人手一台Retina Macbook Pro
  2. 关于主题,可以定也可以不定,但是不能用一个很小的题目把参赛者禁锢住。比如像“开发一个可以connect people的东西”这样的主题就很好,“开发一个聊天工具”这样的主题就很烂。
  3. 要明确评判标准,开始之前就列出会从那几个方面来评判最后作品水平的高低。
  4. 要有好吃好喝,特别是提神的东西。

其实细细想来,一次hackathon就是一次微型的产品开发过程,从策划到开发到测试到上线,全面的考察了一个团队的综合水平,难怪各大公司对这类活动趋之若鹜。

当然,对于参与者来讲,恐怕的活动最大的吸引力,还是hack, create and have fun!