@qinjx
2015-04-15T12:46:03.000000Z
字数 14524
阅读 4833
本来想和上次一样,发个简短的贴子,告知相识的同事留个联系方式就好了,但很多老同事都对我辞职的决定表示不解和惋惜,也有一些新老朋友欢迎我转岗过去,而我最终还是辜负了他们的好意。所以,我想,还是写点什么吧,给新老朋友们一个交代。
我一贯比较啰嗦,所以先给个摘要:
==========良心摘要区 开始==========
1. 为什么辞职?
因为: 一、我有喜欢的事要做。二、我不能接受绩效考核的过程与结果。
2. 辞职了做什么?
回家闭关写代码,继续我的开源事业,不创业不要投资不上班不做外包。
3. 打算去哪玩休息一段时间?
写代码就是我最好的休息方式。有旅游计划,但我会带上iPad和蓝牙键盘写代码的。
4. 怎么联系?
微博:qinjianxiang,就是“覃健祥”的全拼
微信:ai guan xian shi de gou(不含空格)
==========良心摘要区 结束==========
好了,我要开始啰嗦了,有重要事情在身的同学建议马克一下有空再来看。
上邪,我欲与君相知,长命无绝衰。
山无陵,江水为竭。
冬雷震震,夏雨雪。
天地合,乃敢与君绝。--无名氏 ·《上邪》
2014年11月底一个沉闷的下午,上半年度绩效面谈,我认真回顾总结了过去的工作,然后,得到了一个晴天霹雳般的分数。
寒风凌冽的十一月,很冷;我的心,也很冷。
时间回流到11月10日,我穿梭在充满双11硝烟的西溪园区,发出了下面这条微博,那是我内心真实的写照。
每年的这个时候,看着园区美轮美奂的夜景,上天猫买买打折到丧心病狂的东西,穿梭在兴高采烈拍照的人群中,那感觉,真的像是过年了,我们苦苦追寻的幸福和快乐,从来都这么简简单单。
更早些时候,我用同一个理由拒绝了一个又一个猎头:“我好不容易回到杭州,我喜欢这个公司,我5年内都不考虑跳槽”。电话里回荡着山盟海誓,恰如初坠爱河的少男少女。
绩效面谈后的几个月,我寝食难安,阵阵惊雷时不时在脑海里炸响,盘踞多年的胃病也日渐抬头,我终于撑不下去了,给主管发了个消息“哥,找个人接手我的工作吧”,然后去了医院。
回首过去,我曾甘之如饴,也曾痛苦万分,然而,幸福也好,痛苦也罢,都来自我不能左右的外部世界。我在阿里做的大部分产品都下线了,唯有开源世界还有人享受着我的馈赠。在开源世界写代码能让我内心宁静,也能让我这只代码狗刷刷存在感。
回顾一下我在阿里的这些年吧,哎,从何说起呢,就从入职阿里开始吧:
莫笑农家腊酒浑,丰年留客足鸡豚。
山重水复疑无路,柳暗花明又一村。
萧鼓追随春社近,衣冠简朴古风存。
从今若许闲乘月,拄杖无时夜叩门。--陆游 ·《游山西村》
2006年,我在北京一处民居创业,做软件产品,办公在地面,住在地下负二层,自筹资金。后来,资金耗尽,连300块一个月的地下室房租都快付不起了,而我是家里的经济支柱,老家父母生个病我都要找朋友借钱才能寄回去,真是山穷水尽快没路了。
2007年7月,一位贵人推荐我去雅虎中国面试,我顺利地拿了一个P6的offer,解了燃眉之急。同时,我把之前在PHP领域的积累做成一个开源框架,叫kiwiphp,2010年改名叫lotusphp,一个适合门户级PHP项目的框架,主要特点是:组件式结构,各组件之间松散耦合;分布式数据库和分布式缓存;潜规则最少,对使用者技术要求最低,性能最好;代码简洁,简单易学,没有文档但有数百用户,阿里内部也曾有数十个项目用过它。它是我最重要的一个开源产品,倾注了最多的心血。
在雅虎,我只做了半年站长天下产品,就拥抱了公司的变化,于2008年春天被调到诗画般的杭州,和口碑网的同学们一起做生活服务,在阿里创业圣地湖畔花园封闭开发,执行996工作制,住在文二西路丰潭路口的朗逸轩酒店。当时雅虎的主流开发框架是ySymfony,由美国雅虎在Symfony的基础上定制,由于ySymfony不支持分布式数据库,我们把ySymfony和kiwiphp结合起来用,我作为框架开发者经常为了解决一个隐藏很深的bug加班到凌晨才回酒店,早上再被洒水车的《jingle bells》吵醒,匆匆赶去湖畔。那一年,我和主管全鑫配合默契,在团队里恬不知耻以精神领袖自居,感染和影响了很多人,到杭州后,我在所有季度考核和全年考核中都得了3.75,在雅虎和口碑的年会还得了一个最佳执行力个人奖,我们团队也是业务部门和HR眼里的明星团队。
在阿里这么多年,最苦最累却又最快乐交朋友最多的,就是在口碑的那些年,如今想来,真是好怀念好伤感,口碑网好好的业务好好的团队,怎么就说关就关了呢,呜呜呜。
金鳞岂是池中物,一遇风云便化龙;
九霄龙吟惊天变,风云际会潜水游。-- 黄易 ·《风云》
2009年春天,我在口碑网遇到内心和外表一样美丽有理想有智慧深明大义的老婆并于1年后喜结连理结束我近30年的“无妻”徒刑。同年,适逢全球金融危机,我倾尽所有,东拼西借,在杭州安了家,有了安身立命之所,这为我2012年从广州回杭埋下了伏笔。
2010年1月,我转岗到了淘宝开放平台,这是唯一一次我主动要求的变化。
在开放平台,我的收获是极大的,这得归功于当时的主管秀芳、大老板菲青,和我的团队成员。秀芳领导有方,团队成员给力,我们团队做出了成绩,团队成员也获得了嘉奖:几乎所有人都获得了晋级或者大小年会半年会季度会奖项提名——除了我和另一个P6;我自己也主动突破本职工作范围,揽了几个跨国协作推动公司内外合作伙伴的项目,并成功地取得了好的结果。这段经历,给了我极大的信心:只要领导给我靠谱的人,我就能把荒芜的山野耕种成丰茂的果园。
2011年初,我去参加了P6 -> P7的晋升面试。我先讲了在团队培养方面的成绩,主面官说,我们不看管理能力,你管理做得好可以去M线晋升。我又讲了我在PHP开源领域里的成绩,主面官说我们是Java委员会,不看PHP,你PHP做得好可以去PHP委员会面试。最后我讲了一点在Java项目里做的架构设计,主面官说你平时花在Java编码上的时间有多少?我说平均每天不超过20%,然后,就没有然后了。
当时我在淘宝开放平台,带领一个10人左右的团队,我们团队负责约11条产品线,开放平台比较特殊,对内对外要协调很多人。我确实没有足够的精力写代码,若论Java语言深度,不要说P6,连P5都比不上,但我在业务建模和软件工程上的积累其实是和具体的语言关系不大的。现在我明白了,PHP在阿里终究是要悲剧的,在阿里那么多年,没抓住机会深钻Java,是我最大的失误和遗憾,虽然我一直在关注Java设计模式,9年前我写PHP就已经很Java范了,但吃猪肉和看猪跑路终究是两回事,啊,多么痛的领悟。
工作压力大,作息不规律,直接导致身体出状况了,短短半年,急剧地瘦了14斤,胳膊都细了一圈,认识我的老同事,见面第一句话往往就是“你怎么瘦成这样了”。去医院一查:急性胃溃疡活动期、重度浅表性胃炎,它们如影随形,一直伴随我至今。我决定换个工作,努力找到了一些新工作机会,其中最想去的有两个,一个是腾讯,做PHP Leader,房产汽车方向,带团队,T3.3。另一个是广州一个百强民营集团,做电商事业部技术总监,光杆司令。
腾讯占压倒性优势,我几乎都要选择它了,当年,我特别想做中国的Uber和AirBnB,顺利通过了五六轮电话/现场/深圳总部通道面试后,我见了北京分公司老板,说了我的想法:“AirBnB和Uber这两个业务都能优化社会资源配置,提高房产汽车资产利用率、缓解道路拥堵、节能减排,符合国家的经济大势,做之利国利民(背景:2009年12月哥本哈根气候变化大会上,中国承受了空前的政治压力,温总理在会上做出单方面节能减排的承诺)。AirBnB在中国短期内都不可能落地,因为房子对中国人太重要了,但汽车还是有一线希望的,借助腾讯的SNS、征信、支付、政府关系资源,也许能在车主物质收益与非法营运之间找到一个平衡点。”对方的回答相当务实,说不做这种高风险的创新业务,腾讯在北京的主业是门户和微博。
我痴迷电商类业务,不想再做内容性业务,于是选择了南下广州帮传统行业做电商,最终在极为艰苦的条件下带队开发了一个B2C网站,走支付宝和银联支付通道,支付宝年成交额一千万量级(当然实在太少了,还比不上稍微大一点的淘宝集市店)。
这段话是不是似曾相识?2014年1月有一篇题为《身为码农,为12306说两句公道话》的文章火遍微博和微信朋友圈,署名代码狗,开篇就是这段话。嘿嘿,就是我这只代码狗写的。然而,一直以来,基本没人知道是我写的。那篇文章太火了,各种微博、微信、论坛累计转发可能有几十万,还登上了《科技日报》、《南方都市报》、《新京报》等10余家平面媒体,连12306的技术负责人(中国铁科院计算所副所长)接受人民网采访都引用我的观点。从营销的角度讲,作者身份是个卖点,保持神秘感,争议性更强、传播效果更好,虽然我是无心插柳,既然火了,我希望那篇文章能让更多的人们给铁路人一些客观正面的看法,我个人的名声与之相比如沧海一粟,所以我选择了在最火的时候深藏功与名。阿里有些同事很快猜到了是我写的,找我求证,我也故意没承认,现在风头过去了,我可以承认了,当初找我求证的同事们,原谅我撒了个善意的谎:)
我在文章当中还客观地赞扬了淘宝和阿里云,很多微博网友转发说“看了这篇文章唯一的感觉是淘宝真强大”,也有很多人对我那句“阿里云是当今中国第一世界数一数二的云计算服务商”颇为不屑。有人说我是铁道部的五毛,其实这是我自作主张给淘宝和阿里云写的软文我会乱说吗,哈哈哈哈。当时还有一些媒体误读了我的意思,我明明说的是12306的“库存”复杂度远超京东淘宝,到了一些媒体那里就变成了12306复杂度超过淘宝,因此让一些阿里同事在微博上对我很愤怒。
言归正传,说说在广州的经历吧。原来,电商事业部2008年就成立了,共有全职员工一名,管管域名注册ICP备案,另有兼职一人,由集团信息技术副总兼任。由于此前集团已经和一个NASDAQ上市的咨询公司签订了协议,我入职后的大半年都在和外包公司拉锯沟通中度过了。结果是到了协议约定上线的日子了,还停留在商业模式确认阶段。咨询公司写的战略顾问蓝皮书也有相当多瑕疵,比如,给客户设计的人才团队,技术团队只有两个职位,一个软件工程师,一个硬件工程师;给客户做的行业调研,中年业主旧貌换新改善性置业购买的沙发均价是300多块。
这与我理解的电商不一样,我隐隐觉得不妙,于是悄悄做了若干技术和业务准备,总结了纯电商行业的种种业务模式,利用直接汇报给集团总裁的职务之便,劝说总裁多手准备,一方面先入驻淘宝天猫等电商平台,磨合供销链条上的人才和流程。另一方面,招聘技术人才,既可接手咨询公司的外包产品,也可在万一合作失败时自主开发。
最后,在我的努力下,淘宝店和天猫店相继开张,尤其是淘宝店居然还持续有一些销量。此时,和咨询公司的合作仍然停留在商业模式确认阶段。淘宝店销量虽小,好歹是开张了,总裁见我以技术总监身份主动推进经营有方,执行力尚可,遂任命我为电商副总经理,全面负责电商事宜,包括研发采购运营等。再后来,总裁听取了我的多次电商模式汇报后决定把业务模式定为自营B2C。电商2008年成立以来,几乎毫无建树,唱衰之声日盛,集团管理层对电商的意见也不统一,冷眼旁观者有之,主张撤销者亦有之,唯有总裁力挺,我们需要在极短时间内将B2C上线,以提振士气、证明电商自力更生的重要性和可行性,如此,才不负了总裁对电商的知遇之恩。我把这个时间定为:两个月。
军令状领回来,我的团队认为我疯了:两个月要上一个B2C,这绝不可能。是的,从技术角度,好像是不可能,但我得考虑市场要素,好比天猫双11,技术上无论有多大困难,也要想办法绕过去,绝不能延期,我当时就面临一个类似的情况,晚几个月上线,营业额差异不大,集团公司也不差这点钱,但对电商事业部的生死存亡却是非常重要的。也有集团领导劝我民主一点,要么说服大家都认同这个时间点,要么就让大家集体表决一个时间点。我对创业团队的民主是这样看的:问计于江湖,定计于庙堂。战术打法肯定要请教一线员工,而且也必须依赖他们实现,让听得见炮火的人做战术决策。但,定大目标,骨干领导者关着门商量更有实效,全民投票未必是好事。
其实我也不是盲目地拍脑袋,之前跟外包公司拉锯的时候,我已经悄悄地做了很多技术储备了,无论B2C、C2C、 B2B,无论自营还是平台,技术上万变不离其宗,而且最终老板选的业务模式几乎是技术上最简单的一种。我之前耕耘了那么多年的软件工程原则和项目管理经验,终于又可以派上用场了。
后来,我们提前8天完成了试上线,并最终按照承诺的时间点完成了上线销售。自建B2C这事,其实就像小马过河,没有互联网界浮躁的代码狗们说得那么简单,但也没有传统行业的人们想得那么难。
为什么说是极为艰苦的条件下呢,因为:
一. 业务复杂
不能直接买现成的软件。我们集团是地产能源家具多领域经营,最早是做家具起家的,10年前就买了SAP ERP,各类库存物料都在ERP里管着,这个库存模型有些特殊,主要的开源软件和不太贵的收费软件全都不能满足需求。我简单介绍一下,就像这样:假设我们是KFC,物料有三种:可乐、鸡翅、汉堡。实际售卖的商品是:可乐+鸡翅套餐、可乐+汉堡套餐、可乐+鸡翅+汉堡套餐、鸡翅单卖(可乐和汉堡不能单卖)。套餐还有多少库存,完全取决于构成套餐的物料还剩下多少,套餐的价格通常小于单个物料的价格累加。这个库存模型和12306票务系统是有点像的,所以我做完这个B2C才不知天高地厚地低估了12306的难度,真正操刀开始给12306设计开源系统的时候,才发现,这么变态的库存模型,还要应对全站秒杀的超高并发,实在太难了。
二. 时间短,资源少
拍下这个上线目标的时候,我有采购、客服、运营、物流团队,已经在淘宝卖过几个月货了,基本的流程运转起来了,网站上线后,上货、物流、售后都不是大问题。剩下最大的难点就是建设一个自营B2C网站。
而与建设B2C网站相关的资源,我们只有:1个工程师(加上我,则是两个,万幸的是,我俩都是lotusphp框架的作者)、8个已发offer但还在学校做毕设的本科生、一个完成ICP备案的域名、开发用的台式机、我之前做的一些技术储备。其它所有相关的职能人员都没有、PRD没有、服务器没有。更糟糕的是,招不到技术人才,我们把薪水开到了跟广州网易相当的水平都招不到人(当然技术要求比网易低),因为我们根本不是互联网行业的玩家,光有钱是不足以吸引人的。
三. 团队未能完全同心同德
只有董事长秘书和技术团队傻乎乎地相信我,包括还没入职的应届生,他们表示完成答辩就立即过来帮我。来自线下门店的团队成员对我定下的不切实际目标和互联网企业高举高打的管理风格表达了严重的抵触,以至于在离上线只剩半个月的时候,还有下属越过我联名上书要求终止我的计划回归咨询公司外包路线上。
最后,我带着技术团队熬出来了。我的办法是最大化利用现有资源和第三方服务,自主开发关键业务流程保障核心用户体验。视觉和前端找外包做、订单处理做接口与SAP对接、在线客服/监控/CDN采购第三方服务、前端/后端/运维/测试大量使用开源类库。暂时空缺的产品、架构、测试、安全、运维等职位由我兼任。据行政统计,我两个月加班400多个小时,那段时间,我周末不用闹钟也能自然醒,然后去办公室干活,我用4个台式机搭建的开发集群在办公室里,而且我住的地方离办公室只有一千米,所以不在家办公。有老友笑我:一个男人孤身一人在广州,当别的男人周末在东莞happy的时候,他不是在办公室写代码就是在家做饭思念老婆,这是一种什么样的精神啊!我笑答:老婆孩子热炕头,主人丢根肉骨头,就是代码狗全部的幸福,汪~汪~汪
帘外雨潺潺,春意阑珊,罗衾不耐五更寒。梦里不知身是客,一晌贪欢。
独自莫凭栏,无限江山,别时容易见时难。流水落花春去也,天上人间。-- 李煜 ·《浪淘沙令·帘外雨潺潺》
由于我们集团在华南地区还有一些号召力,我在2011年11月校招时给通过终面的同学做的Round Table“洗脑”效果还不错,8个应届生来了7个:5个开发、2个设计(开发同学在实战中得到了锤炼专业也对口,设计的同学主要是做淘宝上那种商品描述图,荒废了他们手绘人像的专业能力,真是对不起她们)。更让我感激的是有两个开发同学在上线前报到,为项目补充了生力军。技术团队小有规模之后,我开始把应届生当兰博,在我的指导下,自己画产品线框图,自己写代码,交叉review和测试,轮流当运维。
小伙伴们也不负众望,很快学会lotusphp开发和基本的测试运维技能,先后上线了银联支付接口、sphinx搜索、团购频道等等。这些项目,我基本一行代码都没写,我只提需求和测试验收。上线快半年的时候,我们统计了一下,平均每半个月发布一次项目,每2-3工作日发布一个日常,零故障,发布也是应届生做的。
这个B2C项目也催生了我的另一个重要开源项目:puppet-example,顾名思义,它是一个puppet的示例项目,当时我创建它是用来让我一个人花较少的时间就能兼职管理这个B2C网站的近20种服务器角色和60多台虚拟机。后来经过持续改进,这个开源项目可以支持近30种服务器角色了,开源世界里也有个别用户,管理的虚拟机总数大概不到两百台。
如果今天从风险管理的角度复盘,尽管我通过开源和外包极大地降低了风险,但是,用后来的实际成交量反推,当时的技术架构还是太高端太激进了,完全可以低端一点单机单库先在公有云上跑起来的嘛。那时候,传统行业更容易接受购买服务器交换机等固定资产,相比之下,购买云主机和软件外包服务则要麻烦一些。
说说我是怎么冒险的吧,因为集团管理会议上曾经有企划营销老总说过将来每年要投入一亿营销费用,我想想,这么多钱,到时候肯定会有大流量,第一个版本就起点高一点吧,一鼓作气,不然,真上线了,高速公路上换轮子怕是阻力很大啊。所以,我做了一个全分布式、全高可用的架构,初期规划了二十几万的硬件,保守估计起码可支撑日均500万PV。将来流量上来了,只要加机器改配置文件就行了,无须推倒重做。
持久存储层,用了分布式文件系统、三主强同步MySQL集群(不是Master-Slave),放在负载均衡器后面;应用层,搜索引擎、缓存、应用服务器、Web服务器也都放在负载均衡器后面实现高可用和负载均衡;只能做主备模式的负载均衡器、VPN网关、软路由等机器,做IP Failover;再按业务垂直切分,不同业务在不同的集群上,运维架构图在我微博上:
这就需要安装很多种软件服务器,好一些软件我都是第一次安装配置,可能今天装成功了,明天我就配不出来了。 跟硬件供应商的价格谈判也进行了很久,预计到货时间离上线只有半个月,半个月时间我很可能配不好这个生产环境。所以,我一定要让安装配置生产环境的工作自动化、可重复,这样我就可以在服务器还没到货的时候写安装脚本,并在开发环境的台式机上先测试好,服务器到了,我拿到服务器上跑一下就好了。
又由于我致力于让每个开发工程师都能做运维,要把应用层的机器放心地交给他们折腾(持久存储层不能瞎折腾),折腾坏了2分钟内从虚拟机模板重新构建一个出来。
我之前做过技术储备,看过puppet的文档,看起来它是可以胜任的。上线的时间压力和放手给应届生折腾的愿景终于让我向puppet伸出了黑手,最终,我做成了,服务器到货后,半天就把60多台虚拟机部署完毕了,顺便留下了一个开源项目,不过由于我只是个半吊子入门级运维,所以,我在开源项目的名字中加上了example。正因为我们做了这样全分布式、全高可用的软件架构,又有了自动化运维和虚拟化,使得我们可以搭建完整的测试环境和预发环境,成功地让应届生频繁做发布,也没发生故障。
Discover the simplest and most convenient way to do the most valuable thing. 这句话是我原创的心灵鸡汤,十几年来指导我做软件开发的笺言,呃,说人话,就是“大道至简”。所以,我在不拖累项目上线节奏的情况下热衷于实践自动化运维、自动化测试。
B2C网站成功上线,营业额逐月上升,大大地卸下了我心头的压力,团队同心同德的局面也大有好转。我每天踩着滑板,从各种热带果树和花卉下穿过,一路上,时而跟来上幼儿园的小朋友和外教微笑着说声hi,时而冲着路边别墅里的狗吹声口哨,然后滑进办公室,徜徉在代码的海洋中:生活真美好呀!(我们小区是西溪园区的数倍大,有别墅,有高楼,有双语幼儿园,办公室在小区里的商业区)
这段经历给我新的信心:就算没有人,没阿里的金字招牌,只要公司有钱,我能组建一个有战斗力的技术团队。
可惜啊,这种生活很快就结束了。2012年9月,我家小龙女出生了,真是养儿方知父母恩,养小孩需要投入的体力和脑力是之前没办法想象的。我一个人在广州快乐地生活,想念女儿了飞回来看看,或者FaceTime远程看看,带孩子的重任却全都落在我老婆身上了。由于身体的原因,双方父母都不能长时间帮我们带小孩。有一天跟老婆聊天,说到她一个人在家哄娃睡觉的时候,快递员敲门她也不敢出声,快递员以为家里没人就会送去物业,我顿时好心酸。后来好几个晚上,我辗转反侧,无法入睡,每念及家里没个男人连快递都不方便收,不禁潸然泪下。哎,我堂堂男儿,怎么动不动怀旧、流泪、心酸,无论怎么标榜代码狗都掩盖不住我的文科生酸腐气啊。
我决定回家、回杭州、回阿里,上淘宝网翻了翻招聘信息,恰好一淘在招PHP专家,就回了一淘做PHP,感谢五福、云翼、阿绣让我重回阿里大家庭。
对了,我的github主页在这:github.com/qinjx,上面提到的lotusphp, puppet-example,都可以在github上找到。
少年不识愁滋味,爱上层楼。爱上层楼,为赋新词强说愁。
而今识尽愁滋味,欲说还休。欲说还休,却道天好个秋。--辛弃疾 ·《丑奴儿》
在一淘,做了一段时间无线,又写了几个月PHP,轰轰烈烈的无线事业部996开始了,我接到调令,前去无线事业部支援,我找了领导和HRG表示我不喜欢无线我想安静地在一淘写PHP,HR mm告诉我,公司要打仗,危急关头,希望大家都能支持。好吧,你不扛枪,我不扛枪,谁来保卫咱妈妈谁来保卫家?我背起电脑,来到了无线。
第一战,我选了最熟悉的方向,用PHP快速做一个SP评测工具,没有PD、没有需求文档,不过这可难不倒我,我最擅长做没需求的工具型项目了。问了几个算法的同学:你用不用,你想要啥功能。然后几个人借助肢体语言沟通一番,三天后,工具可以用了。
2014年3月,临危受命加入李敏镐代言的手淘生活节做个子项目,顺利完成,同时重拾Java做MTOP API。李敏镐走了没半年,负责手淘生活节的M4离职了,他原来的团队也发生了调整,我没有PD了。
2014年12月,我收到了在阿里6年第一个3.25,体会到什么叫愁,之前说什么工作压力大啊烦恼啊,只能算是为赋新词强说愁。面谈时,主管也肯定了我在双11项目中的成绩,说,这个项目做成这样只能是3.5,如果能想到标准化的工具解决这一类问题才是3.75,做工具,我所欲也,于是我就想了一个方案,可以用于双11双12三八会场、手淘生活、周末半价等频道首页,大幅降低无线产品频道首页的服务端和客户端开发成本。12月10日,我把写好的产品方案发给了主管、上一级主管和我们的团队,摘录一下这个产品可能产生的收益:
4.1 服务端收益
因为要替消费者省电、省流量,这种首页、会场页、频道入口页,往往都封装成一个API,一次性把所有信息输出,而不是让客户端去调多个API。
现在的方式,一定会改Java代码,发布新的Java应用版本,有时候改动其实不大,但为防止出错,仍然要有Java开发投入开发自测,仍然要配套测试人员去回归测试。
这个工具相当于提供了一个在线组装API的功能,页面上的模块由3个变成5个,模块A的数据源由淘点点变成淘宝电影,这都不用改Java代码,运营在工具后台配置就好了。
要命的是,咱们现在有不少运营位的配置管理都还是通过aden, iDB完成的,每每有改动,都要开发去提交Aden发布、iDB数据订正。有了这个工具,运营可以自助地在web界面完成,有预览发布流程,有质量保证,不受封网影响。
4.2 客户端收益
因为native的开发成本高,发布周期长,有时候,一个小版本,仅仅是改了一下排版布局,升级了一下所调用API的版本号。
比方说,生活首页的【为你推荐】,上一个版本是显示4条团购券,支持横滑,现在改成20条,纵向列表。如果下次再改回来成横滑,又要占用一个小版本的资源(虽然开发量可能不大,但测试、适配、集成、灰度的流程一个也不能少)。
其实这两种排版布局,客户端代码都写过了,服务端返回的字段也不变,如果做成支持服务端可配置的,客户端开发同学的精力就不会消耗在这种技术复杂度相对较低的地方了,可以把更多地精力集中在搜索列表、券详情、下单等业务上。
我想做这个工具,还有一个原因,原本我们团队有4个Java开发,负责导购、生活两条线,现在是我一个人负责生活业务线(比导购线的流量小,页面少),一直以来没有任何运营工具,导致页面上投个广告换个LOGO都需要我来操作,查bug、发日常、项目管理、看数据也是我来做。我想把页面手工维护的工作交给PD和运营自助去搞定,我就可以腾出手来做一些非我不可的技术性工作了。
我忙里偷闲手绘了产品原型图,利用团建时同学们玩德州扑克的时间做好了数据建模(说到德州扑克,在我们这里,它实在太火了,Outing团建自不必说,就连P8带他下面的P7离开园区开一下午会,也会带上德州扑克筹码箱,我是一只毫无生活情趣除了编程做饭没其它爱好的代码狗,参与不进去,也不太能理解德州扑克为什么火成这样子,也许大家是在玩德州扑克的过程中体验什么叫All In吧),然后拿着原型图、SQL文件找兄弟团队、服务端、客户端、测试逐个沟通,沟通的结果是暂时没有开发资源可以投进来,要等一等。还没等到这个项目启动呢,2015年三八项目来了,我和团队里的Java同学们投入了紧张的三八加班中。
过完春节,由于我负责的消费者端展示春节前已经上线,趁着大部分同学还没回公司,我和长期指导我做Java编码的流峰同学一起把这个工具的第一个版本做到日常环境了,准备在最新一期的淘生活首页和三八主会场首页上应用。可惜三八当天淘生活没有搞任何促销活动,三八项目也没有上线,直到四月宣布放弃。不知道各路管理者和PM是否一如既往升职加薪拿年终奖打德州扑克成为人生赢家,只知道会有很多用户,一次次更新手淘打开淘生活,却又一次次默默关掉转身打开了去哪儿、美团、点评。
2月底,主管找我谈话,主旨是我的绩效目标设定不够高,不满足P7的Job Model。谈到这个工具,主管说我方向错了,虽然有用,但远不是最重要的。主管对我的评价是,我成天埋头写代码是不行的,我的工作P5都能做,公司招一个P7进来不是来写代码的。主管对我的期望是像创业业务CEO一样把这个业务做起来。主管的绩效谈话是非常合乎规范的,始终强调,他个人和公司对我的期望和评分都是这样的。
上一次绩效面谈和这一次预防针式谈话,给我的感觉,就像下面这幅图:

唉,我没法跟家人解释,为什么我每天写代码写到12点,最终却写了一个3.25出来。我只能弱弱地说:发生这种事,大家都不想的。
我也不是除了写代码没有任何产品上的想法,我也提过一些产品思路,遗憾的是都没能活下来。两年来,我在阿里味客户之声、捣浆糊、业务交流等版块给其它事业部提提了近百个bug或建议(主管认为这些bug与手淘不相关。哎,手淘的bug建议,我也有提的,只是不需要发到阿里味去嘛)。让人欣慰的是,这些bug或建议,绝大部分都有回音,少部分至今没有解决,但愿我走后有急公好义之士帮忙跟踪一下。
主管代表公司给我的要求,我确实做不到。我在公司勤勤恳恳一身正气,我问心无愧。但是,我创造的价值与我获得的回报确实差距太大,我又问心有愧。于是,我决定辞职回家,全心全意写我喜欢的代码。
金樽清酒斗十千,玉盘珍羞直万钱。
停杯投箸不能食,拔剑四顾心茫然。
欲渡黄河冰塞川,将登太行雪满山。
闲来垂钓碧溪上,忽复乘舟梦日边。
行路难!行路难!多歧路,今安在?
长风破浪会有时,直挂云帆济沧海。-- 李白 ·《行路难·其一》
朋友和家人得知我要辞职回家写代码,有人说何弃疗,有人说瞎折腾。其实,我并不是破罐子破摔,熟悉我的人都知道,我喜欢开源、热爱编程、痴迷技术,我有自己的小宇宙,我的征程是星辰大海。
去年有一次小规模的集团员工大会,主题叫《我们的征程是星辰大海》,我看了视频直播,快看哭了,热血沸腾,那是一种什么样的感觉呢,感觉身体里有电流通过,大脑一时短路,不知道自己身处何地,热血流过,皮肤会起鸡皮疙瘩,我没写错,你也没看错,真的会起鸡皮疙瘩。
前文述及,我给12306正名的文章,首发百度贴吧,这个贴吧叫:那年那兔那些事。2014年1月9日,有人在贴吧里发了一篇讲述中国铁路建设成就的文章,我看了深有感触,但有所谓的IT专业人士在下面回帖狂喷铁道部的网上售票系统战五渣,我就花30分钟回贴解释了12306的难度。后来那篇文章被贴吧删了,我才发到西西河,笔误和技术性错误还没来得及改呢,就被西西河网友做成长微博,然后火了。我只喜欢在阿里味发贴,这两个论坛我从来不发,但我一直在看一些水平高、正能量的网友发言,我相信,我们真的是生活在一个伟大的时代,我们不仅能实现中华民族的复兴和崛起,还可以帮助几乎被现代文明遗忘的非洲大陆沐浴工业和科技的阳光,也许,这真的是共产主义、世界大同的一个微小开端。如今的中国,已经是世界第一贸易大国、第一制造大国;中国的装备制造量、发电量、粮食水泥钢铁汽车产量、外汇储备、受过高等教育的理工科人才数量都是世界第一;中国拥有39个工业大类、191个中类和525个小类的工业体系,是全世界唯一拥有联合国产业分类中全部工业门类的国家。
更多振奋人心的数据可以看这篇文章(《从过去的龙年看未来的中国》,http://www.cchere.com/article/3908786/),如果你和我一样是个工业党、五毛党,相信你看了也会起鸡皮疙瘩的。
“我们的征程是星辰大海”这句话,我就是从漫画《那年那兔那些事》里看到的,很久以后才知道这句话出自银英传。
回顾近代历史上两代霸主,英国是跑马圈地,全球殖民,实现日不落的帝国荣光;美国则在维护世界和平基本面的同时,以独步全球的军事实力、二战政经遗产和经济全球化制霸天下,坐收美元铸币税之渔利。中国的梦想和历史使命,则是带领和帮助全人类走向星辰大海。如果在一些梦幻般的科技领域(如可控核聚变)取得突破,说不定我们的子孙就能看到星辰大海啦:)
尽管平时,我们对社会颇有微词,但不得不承认,我们的国家,前所未有地强盛,而且发展势头良好必将继续强盛下去,身处和平盛世的我们,只要发挥主观能动性,就一定能靠勤劳和智慧过上幸福的日子。
同样的,阿里是一个伟大时代诞生的伟大公司,做着伟大的事情。尽管我们平时会吐槽这个愚蠢的制度那个无能的高P,但阿里是全球最成功的电商公司,是中国互联网成规模的企业中最强大最高效的组织,这是铁一般的事实,身为阿里人,我们应该有这种出征星辰大海、为国为民谋福利的自信和使命感。
当然了,大象身上难免会有几只苍蝇,阿里也不是完美到了无可置喙的地步。比如说,Job Model和考核标准,两万人的公司,其实不太可能个个P7都是CEO型人才,有的人就是低头吃草抬头耕田的老黄牛,非让他学公鸡打鸣儿唤醒他人可能是缘木求鱼。何况,谁能说没有基层管理者把推动能力肤浅地理解为抢地盘要资源催进度呢。商场如战场,阿里在电商战场中已经是泱泱帝国般的存在,然而,帝国的人民可能享受和平太久了,于是出现个别手握大把股票却管理理念原始管理手法慵懒也无动力改进尸位素餐的管理者,但愿组织能好好修剪一下,令他们重新焕发与级别相称的光辉。好战必亡,忘战必危。
5年前,我带团队披荆斩棘,晋升委员会只看我的Java编码能力;今天,我想真刀实枪好好写Java,组织又不要我写代码只考察带团队拿结果的能力(虽然我一个人也不带)。客观地说,造成这个局面,我自己应负最大的责任,不能审时度势就是最大的错误。我总是被动地接受公司调动,埋头写代码,却从来没能主动转岗到一个能点燃我激情的地方发光发热。人之怀才,原本如锥处囊中其末立见;然今日之阿里,群贤毕至少长咸集,我那雕虫小技,若非锋芒毕露,其谁知之?
我是小作坊半路出家的程序员,从前端到后端,从产品设计到上线运维都自学了一点皮毛——除了不会画图且毫无审美能力。我在小公司能独挡一面,在阿里,却每一样技能都不满足P7岗位要求(除了PHP)。另外,我的兴趣和特长是做大道至简的工具,也不可能满足主管对我创业业务CEO的期望。阿里在扬帆驶往星辰大海,我是船员我自豪,可我创造了什么价值呢?扪心自问,留在阿里,真的是在追寻星辰大海的梦想,还是贪恋阿里给的光环、工资和股票?从个人物质收益角度看,离开阿里无疑是我巨大的损失,这大概是朋友们说我何弃疗的原因;然而,lotusphp框架和puppet-example这些开源产品,阿里这类巨头弃之如敝屣,而一些正好使用PHP没有专家级运维团队的小公司可能求之若渴,从创造价值的角度看,我回家写代码,也许能造福很多小公司,为社会创造更大的价值。
尽管我又一次选择离开,但我对阿里是发自内心的感激,在我山穷水尽的时候,阿里收留了我;在我意兴阑珊的时候,阿里当初给我的那些期权让我不必面临太大的财务压力。财务压力其实也不是啥大事,我相信,“做企业要3W,就是3个win,首先是客户要win,然后是合作伙伴要win,最后才是你自己win”(我不生产鸡汤,我只是马总的搬运工)。如果我做的事情真的对小企业有帮助真的能创造很大的社会价值,我应该不需要为养家糊口发愁。
这一段可能让很多同事感觉五毛色彩过于浓重,平时上下班路上开车闲谈,也有小伙伴说我虽然不是党员,文宣水平和正能量程度比党员还强。其实我是自干五,发了那么多五毛贴,真的一分钱也不曾领过,不管是铁道部的,还是阿里的。如果有同学实在看不下去想扣分或贴标签,我也认了,唯有一事相求:在内网扣分贴标签就好了,不要去微博微信之类的地方骂我,我心理承受能力还不够。
好了,该说再见了。
女同学们,如果你家里有一个我这样兼具松狮的迟钝和哈士奇的顽劣的代码狗,请你爱护他,多给他一些宽容,因为:虽然代码狗不浪漫不好玩除了写代码什么也不会,但他忠贞善良,是人类的好朋友;男同学们,如果你家里有一个全职奶妈,请你体谅她,多陪陪娃,多分担分担家务,因为:全职带娃不比你在公司冲KPI轻松。
一起战斗过的小伙伴们,你们专业、真诚,我为你们点赞;我曾过于自我、暴躁、钻牛角尖,有些答应过你们的事也不能继续做了,跟你们说一声对不起。赞美和歉意可能都来得太晚了,客观上也改变不了什么了,但,Better late than never,我心里的真实感受,我要大声说出口。
关心和欣赏我的同学们,谢谢你们关心和欣赏我,谢谢你们继续在公司创造价值。我先走了,就像堂吉诃德一样,挺起长矛,跨上战马,挑战风车去了。如果我成功了,请你们为骑士喝彩;如果我失败了,你们就当欣赏了一场蹩脚的马术表演吧。请你们相信,就算我永远无法取得商业上的成功,我也一定会重回你们的视线、重回我代码人生的浪潮之颠。星辰大海的征程中,我们会再见。
最后也最重要的是,感谢我的家人,支持和容忍我做了这么重大的决定。
芳菲醉人的四月,充满了阳光;我的心,也充满了阳光。
覃健祥
2015年4月