最近参加了 Amazon Forecasting 的 Hackweek,大致就是给你一周的时间,你可以找一个感兴趣的项目,找几个人组个队,然后把想法实现出来。从整个项目来看,虽然时间只有一周,但是安排得满满当当,基本上把最初的想法实现出来了。趁着新鲜劲儿,我简单记录一些概况和感受:
- 我们组做的项目是去互联网上把热门的事件(比如 Google 的 Hot Trends)扒拉下来,然后根据事件的各种属性(包括媒体新闻的内容),和 Amazon 卖的产品匹配起来,即找出最近发生的大事会影响到哪些产品的销量,接着通知相关的用户。这里的用户一般都是库房经理,在得到这样的消息以后可以采取相应的行动,避免因为热门事件引起的商品销售断货。这个过程中有一些难点需要解决,比如寻找可靠的热门事件的数据源,比如怎样将热门事件和产品匹配起来,比如怎样划定热门事件和销售产品的范畴(Amazon 美国光是图书种类就超过了两千万)等等。过多细节不便透露。
- 我们这个小组只有 4 个人,而且其中一个还是 product manager,他是自告奋勇加入的,但是事后很明显我们发现 Hackweek 这样的活动还是交给 SDE 或者是至少写代码的人参与比较好,否则就是挂个牌子,做不了太多事情。而且从整个活动中我也非常明显的感受到,可行的点子都来自于工程师。
- 项目经理不好当。以往工作中从来没有正儿八经地担任项目经理的角色,我也觉得我自己不擅长担任这样的角色。本周我在担任成为了这个小项目的 lead,项目虽小,我必须得负责起项目进度和时间控制的事情。即便我每天都和小组里的人 sync up,反复确认有没有时间进度的问题,到了期限前还是有一位工程师没有搞定问题,我不得不放下手中的事情一起去帮助解决问题,东西最终是做出来了,但这件事情也一定程度上影响了最终成品的效果。
- 完整地做一个全面的产品还是很锻炼人的,虽然 Hackweek 的项目难说完整和全面,但依然很有锻炼价值。我们需要把想法实践出来,需要调研 Amazon 内部的服务,需要寻找合适的文本挖掘算法,需要评测不同参数下系统运行的性能和结果质量等等,大部分是后端代码,但也要写前端代码。就我本人而言,也写了两个小系统,一个是爬虫,一个是简单的 pub/sub 系统,这个过程还是非常有趣的。
- 互联网总是令人激动的。无论是互联网的数据、趋势、还是其中的关联关系,数不清都多少挖到没挖到的宝贝。这也是为什么那么多创业公司都是基于互联网而建立起来的。
- 体验了一把在时间紧凑的高压环境下的编码。没有什么复杂的需求分析、可行性分析、概要设计、详细设计…… 经过思考以后,只有很简单的设计记录和讨论,绝大部分时间,就是纯粹的编码,从早上来就开始写代码,调试代码,fix bug,到下班前拿出今天完成的可以运行的模块。一周的代码量非常充足,整个过程压缩紧凑,大脑一直高速运转,有几天午饭都来不及下楼吃。这是完全不一样的做项目的感受和锻炼,和平时做项目考虑维护成本等等的 productionize 节奏是大不相同的。
- 在最后一天下午的 demo 环节,在吃着披萨喝着饮料的时候,我看到了好多有趣的点子。点子都萌发于平时的工作生活之中,没有人是在 Hackweek 开始了之后碰头聚到一起再来想点子的。平时我们都在抱怨这个系统烂,那个数据结果不准确,经常觉得我们每天面对的那些 legacy code 让人提不起兴致。但是仅仅一周的 Hackweek 我们就见识到了很多有趣的点子实践的过程,一个好的紧凑的产品,就是从一个有趣的点子开始的。再次感觉到工程师不是码农,还是颇有想法的群体。可能几乎所有的工程师都会遇到这样的问题,有趣的东西太多,觉得可以做出来的东西也很多,但是真正日常工作参与做的却太少。要做一件事情顾虑多到没有乐趣可言。
- 关于这样的活动本身的价值,这其实是我第一次参加类似 Hackathon 的活动,有的外部的项目组的同事会问,都到 Q4(第四季度,在 Amazon 第四季度业务是相对繁重的)了,每天都忙得不可开交,你们还有心情搞 Hackweek?我的回答是,要平衡好眼前和未来的价值,有很多公司(比如 Facebook)都会搞类似的活动,这很酷。闲得蛋疼没有进步,天天赶着救火也难有提高,这一周是很好的调味剂。工程师在全能,最首要的任务还是写代码,如果以后有这样的活动我还是很乐意去参加。
- 最后是一点担忧。把点子实践出来,已经比仅仅具备有趣的点子前进一步了,但是之后呢?画上句号还是让其中有价值的项目有下文呢?就像众所周知的 Gmail 一样,非正式项目的背景,但是得以成功地产品化。换言之,搞活动容易,但是要让活动成果有后续很难,这一点也是不同公司和团队所在不同层次的区别。
文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》
It's cool
fantastic~