作者:蚂蚁金服@玉伯
https://www.yuque.com/yubo/morning/grow-up-at-alibaba
注:这是在阿里内部前端大学的一个分享,整理了一份对外的版本,希望分享内容能对你有所帮助。
今天跟大家分享下个人成长和带团队的一些感悟。我可能更偏向于写作型或阅读型,很少在对外分享中讲关于成长的话题。今天尝试下,希望能对大家有所帮助。
这是我的简单经历,2008 年入职淘宝 UED,师兄是佩玉,跟小马、圆心都在同一个大团队,很快乐的一段岁月。到 2011 年时,淘宝有一个赛马机制,我一腔热血就出去了,搞了几个月惨败,就又回到淘宝技术部,到 Java 团队做前端工程和性能优化。当时一边写 Java 代码一边写前端,最终还是更喜欢前端,于是 2012 年转岗到了支付宝前端技术部。2013 年无线 ALLIN,大量前端面临选择,我选择了夕阳红的 PC 业务,留下来继续做 PC 版支付宝。当时很多需求,刚准备欢欣鼓舞去做的时候,会经常被告知项目暂停,不用做了,很难过。好在 2014 年开始,大量中后台业务需求开始疯狂增加,特别是金融云业务的启动,中后台的产品体验也变得越来越重要。于是 2015 年开始组建 UED,体验技术部有了第一个正式设计师,随后逐步往下发展,业务和团队都越来越好。
整个经历分三段:一是求学生涯,然后是在淘宝的岁月,以及现在的蚂蚁时光。我心里一直觉得自己是个淘宝人,去年在阿里满 10 年,突然发现自己在蚂蚁待的时间比淘宝还长,已经是个蚂蚁人了,很神奇。
加入阿里的 11 年里,会不断回顾自己,特别是在这次接到前端大学的分享邀请后。想这 11 年里,对自己的成长来说,最关键的是什么。我自己总结是三个关键词:全情投入、守正出奇、愿等花开。
我不断提醒自己,做任何事情,一定要全情投入。
讲个故事,2008 年刚加入淘宝 UED 时,在工位没待多长时间就进入了闭关室,一进闭关室基本上就没怎么出来。从交易二期、三期、四期,一直做到五彩石项目。回想起来,非常怀念。入职后的几年时间里,自己的状态就是天天写代码,很疯狂,而且很有成就感。在做交易业务时,我心心念念的,一是想把前辈们写的不太好的代码改得更好,二是发现业务很有趣,可以通过代码对整个淘宝交易流程很熟悉。记得癫总有时还跑过来问我一些业务细节,真正的细节魔鬼都掌握在写代码的人手中。现在的交易流程中,在退款等页面,前几年看还有部分代码是我写的。当时对整个淘宝交易流程超级熟悉,很有骄傲感。可能正是因为这种疯狂,2009 年从 P6 跨级提名 P8,没经过面试就通过了晋升。
还有一个印象深刻的项目是旺旺点灯。旺旺点灯的代码并不多,但逻辑有点复杂,比如说很多店铺的客服小二都叫做沉鱼落雁,需要考虑怎么把账号正确的分发过去。旺旺点灯也开启了自己想写 SeaJS 的欲望。旺旺点灯第一个要解决的是加载问题,类似阿里妈妈的广告投放脚本,要想办法能优雅更新,能处理多版本兼容,能加载更多模块等等。旺旺点灯还有个逻辑是通过 URL 来拼接参数,这会带来一个灾难,IE 等浏览器对 URL 的最大长度有限制,印象中是不能超过 2083 个字符,超过时就要做拆分。分批发送请求,发送是异步化的,但在结果返回后,要保证返回的结果能够按顺序正确执行,这东西其实就是 SeaJS 的核心。在 SeaJS 里,都是批量异步并发请求模块,然后要保证每一个请求结果返回之后,执行循序可控,要妥善处理好模块的依赖关系。很多技术上的想法,都来自业务本身遇到的问题,挺有意思。
KISSY 也是来自业务。最开始交易线用的是 YUI 类库 ,用 YUI 的过程中发现它的代码写得也一般,很多模块官方更新比较慢。当时为了追求极致性能,就很想把 YUI 基础类库里不太需要的代码删掉,这中间你会发现很多优化点,甚至有比 YUI 更好的代码实现方式。模块组织粒度上,也有更适合交易线业务的最佳实践,于是就一路把 KISSY 的基础内核代码写了出来。同时承玉的加入非常给力,让 KISSY 快速往前发展。
在做淘宝交易线的业务和旺旺点灯的业务时,真的是把整个时间和情感都给投入了进去,天天心心念念的就是业务流程和代码优化,想尽可能把代码的可维护性和性能做到极致。这过程中,SeaJS 和 KISSY 等很多有意思的想法就出现了。那几年还做了淘宝首页、全局吊顶、淘足迹、社区等业务,每个项目都倾注了情感。有个项目合作过的妹子,在我到支付宝后,还送了一个芝士蛋糕给支付宝的前端芝士分享会,逢人就夸我是合作过的前端里最好的。当年经常她说一个想法,我第二天就把原型做了出来。很沉浸很快乐的淘宝时光。
所以我给自己总结的第一个关键词是全情投入,享受当前业务,想办法做到极致。
在投入过程中要保持自己的真实不装。很多前端都喜欢做类库,如果真的是真心想做,就大胆去跟 Leader 说。当时我跟小马就讨论过我想做 KISSY,以及为什么,对业务的好处是什么。得到小马等同事的认可后,就有机会开心去做了。核心前提是要想清楚,做完之后对业务的价值是什么。在 PC 互联网时代,2008 到 2012 年都在追求性能优化,当时很大的一个背景是极致的性能优化对 2C 业务有很大价值,于是就有机会去做成。
前不久在团队会议里,我半开玩笑说,全情投入也包括全情开小差,全情走神。大家经常参加各种会议,不是很有必要的会议,我是能逃就逃,有些会议逃不掉的,我的做法是做到全情走神,身体在会议室,但人已飘出去,飘出去的脑袋全情投入到另外的重要事情里。
人唯一的财富就是自己的时间,要对自己的时间负责。最好的时间管理,就是全情投入。
大家可能都会读成守正出奇(qi),但其实并不是,正确读音是(ji),奇数的奇,02468 是偶数,13579 是奇数,奇数比偶数会多出一点,奇(ji)就是多一点的意思。多一些人力和时间去做更多事情,才能赢取胜利。
守正出奇的典型案例,是韩信的背水一战。韩信有三万多人,要去攻打赵军二十万人。能胜利的很大原因,并不是背水而战没有退路,而是韩信在背水之外还有奇(ji)兵,派遣了两千人半夜去埋伏。等赵军以为韩信大部队背水一战快要灭亡而倾巢出动后,埋伏的两千奇兵就从后面杀入赵军的空营里,快速夺了军营,让赵军大乱而胜。致敌的关键是正合奇胜,不是傻乎乎地把所有士兵都放在水边去背水一战。背水一战的详细故事,推荐收听得到课程《华杉讲透孙子兵法》,很精彩。
回到前端领域,业务为正,专业为奇。首先要把业务服务好,要保证客户第一。
稍微岔开谈下什么是客户第一。我个人理解,客户第一就是客户价值 + 客户感受。我们做了一个店铺,给商家提供各种好用的服务,这是实打实的客户价值。但还需关注客户感受。所谓客户感受,很多时候是让客户从情感上认可你支持你,并不是简单把功能做好就行。
对前端来说,我们的客户既有商家、用户等最终客户,也有产品、运营、技术等业务合作上的直接客户。对直接客户,我们习惯称之为业务方。前端需要为最终客户创造客户价值,同时需要处理好业务方的客户感受。
前端资源一直很紧缺,与业务方合作时,经常并不缺客户价值,很容易处不好的是业务方的感受。每个前端 TL 应该都经历过业务方找我们要前端,很头痛。处理好业务方的感受有很多办法,说下在蚂蚁的一个案例。蚂蚁中后台一直很缺前端,为了解决这个问题,推广过全栈开发。直接让 Java 开发做前端的活,很容易引起 Java 团队的反感。当时我们的做法是,不断找 Java 一些 leader 布道,真实说明前端资源确实不够的困境,同时坦言说明,我们需要共同解决的问题,并不是前端资源问题,而是如何共同努力把业务给做完做好,希望 Java TL 能进来一起解决。然后提出全栈方案,我出讲师,培养 Java 同学去具备前端开发能力,最最核心的就是大家一起齐心协力去让业务线的项目研发有办法做下去。
最终你会发现,最重要的是如何把业务方一起拉下水,跟你一起去解决问题。只要一起下水了,Java 开发就会开始理解你,他会感受到前端技术原来要比想象中难很多,原来玉伯团队是很不容易的。一旦有了这种感觉,你跟他的情感沟通、一些链接就建立起来了,他对你的感受就不一样了,后续有很多合作机会也就会出现。
做好业务项目,服务好业务方,这是以正合,很重要,但还远远不够。经常跟团队说的一句话,是业务如果做不好,绩效肯定 3.25,但只做好了业务,也很难 3.75 分。要想拿到 3.75,还需要专业上的沉淀突破,业务为正,专业为奇,需要在服务好业务的同时,还能在专业上有所精进和突破。
专业之所以为“奇”,是因为专业上的投入,需要你和团队在业务之外,能有人力和时间上的多余投入。如果一直忙于业务,没有任何多出来的精力去投入专业上的思考和创新,就会缺少“出奇”,最后很难往下良性发展。这块故事大家比较清楚,不多说。Ant Design、AntV、EggJS 等技术探索和沉淀,是体验技术部在 2014 年就开始布局的专业投入。时间真的很难保证,曾半开玩笑说,Ant Design 的全职投入,只有 0.6 个人,因为 Ant Design 所在的基础技术组,还有大量直接对口的业务,并不是大家想象中那样有很多全职兵力投入。可正是因为能挤出这 0.6 个人,慢慢才有更多人力投入,逐步形成了一股奇兵。专业这块,需要长时间长期投入,才有可能出奇致胜。
奇和正需要能建立直接关联,奇要能帮助到正,这很重要。从业务的视角来看前端价值,无非就两块,一是能帮助到业务的研发提效,让业务能顺利研发下去,二是能够给业务的产品体验带来比较大的实打实提升,能带来业务增值。专业的奇也要往这两个方向去做,争取到自己主管以及业务方的认可和同意。人心都是肉长的,你在沟通的过程中他会理解你的,他会实打实看到这里面的价值。然后通过正和奇能相互促进的方向去做,你的团队就不会只做成业务支持,而是会在守正的过程中,逐步把一些奇给做出来。
守正出奇,也可以用于学习成长领域。工作为正,学习为奇。在繁忙工作之余,是否有留下一些时间用于学习精进。我有一个早课习惯,就是每天早上八点到十点之间,留这段固定时间用于学习和思考。看看闲书,写写文字,不给自己在学习量上有任何压力,但固定这个时间段用于学习思考。断断续续坚持下来,也无法做到每天都如此,但一周里有那么几天做到,五六年坚持下来,收获蛮大。可以让自己的心很静,平静中充盈力量,很享受早课时光。
同样的,守正出奇也可以用于家庭生活的安排,还有健身。健身最重要的是固定性习惯的养成,需要每周强迫自己能留出一些固定时间去做到。我的健身就是俯卧撑,断断续续但一直坚持至今,效果还不错。
这块想讲的,是长期主义,很多事情都需要定力和耐心。我归纳得比较文艺一些,叫做“愿等花开”。如果真的很笃定一个方向投入去做的话,一定要学会等待,不能急着去快速催熟。我们在小学时,学了很多很朴实的道理,但真正做到很难,比如说不要揠苗助长。工作中,很容易出现揠苗助长的事情。我会跟团队一直强调,很多事情要快,但一定不能急。当心里很急的时候,第一快不起来,第二很容易把节奏打乱。
举一个例子,比如 Ant Design,从 2014 年开始做,真正做到有一点点影响力,已经是 2017 年左右,投入两三年才会看到一点产出。AntV、EggJS、SFF 等技术都是如此,需要多年的坚持和积累,才会逐步有深度,社区也才慢慢接受,愿意接纳并帮助到这些产品的发展。
最近几年,体验技术部新做的事,都非常需要定力和耐心。Basement 是蚂蚁前端研发平台,到今年 10 月份是第三个年头,才初步做成三年前想做的事。今年启动了基于 Cloud IDE 的 Basement Code 项目,这是至少要做 3-5 年的一件事。愿意长期投入,是因为内心很相信云端研发一定是未来。虽然当下有很多怀疑和反对的声音,这些声音需要去听见,同时更需要的,是从大趋势上去判断未来发展方向。如果专业上笃定,就大胆往前,同时小心填坑。
刚才骁勇分享中提到宜搭乐高等低代码研发平台,在蚂蚁也有类似的平台叫金蝉和云凤蝶。云凤蝶选择了一条很艰辛的路,立项是 2017 年底,一直到今年 9 月底才把第一个可用版本做出来。中间经过了大量争吵,一度迷茫,但同时攻克了不少技术难点,也越来越想清楚了云凤蝶的价值所在和竞争优势所在。这个团队有很强的韧劲,经受得住折腾,才有可能等到花开绚烂的那天。
语雀的故事也类似,从 2016 年在内部孵化,2018 年团队被拆分差点被逼上绝路,到 2019 年活下来并开始正式对外商业化,真的是山穷水尽疑无路、柳暗花明又一村。能不断坚持往前走的关键,是团队同学们内心深处对语雀未来的相信。语雀的故事还在路上,肯定还会有很多折腾,要保持快速发展,同时一定不能急,一定要愿等花开。
以上是我自己的一些感悟。全情投入需要保持真实不装,需要全力做好当下,全情投入是对时间的最好善待。守正出奇是我做很多事情的方法策略,要服务好业务,也要有专业上的投入,以正合以奇胜,形成循环良性往前发展。愿等花开需要定力和耐心,需要不断提醒自己很多事情急不得,要看到更长期的可能,能静下来。
以上是三个散点式思考,对自己很有帮助。从 2016 年开始,也在尝试思考支撑团队持续往前发展的体系化模型是什么。最近越想越清楚,尝试总结为发展的支点杠杆模型。
从 2016 年开始,无论是个人年度规划还是团队财年规划,都会在脑海里浮现出一张图,我把它总结为“发展的支点杠杆模型”。
图的中间是支点,非常重要。支点是我们选择做前端或选择做某一行业的出发点,是你觉得做什么事情是有成就感的、是有意义的。无论选择做前端还是后端、做小程序还是中后台,做任何一个方向我们首先要找到的是这件事情的意义。拥有这份意义感后,你整个干活的心态是很不一样的。2014 年开始做 AntV 数据可视化的时候,我当时跟萧庆两个人就是被《The Grammar of Graphics》这本书感染了,是一本英文电子书。看完之后我发现这个东西如果真的实现的话,会让整个数据图表发生很多改变,可以成为 AI 时代的数据图形表达语法,能完全改变掉 ECharts 等传统图表类库的使用方式。当时很激动,觉得这件事情非常有价值,于是就立项去做了。Ant Design 也类似,看清每件事情背后的意义和价值后,就会驱使自己花好几年时间去做,一定要搞出点东西出来。
往大了说,意义感就是使命。马总 20 年前就找到了阿里巴巴的使命,然后坚持 102 年去做,这是超常的人。回到我们每个个体来说,我们的使命可以小一点,可以缩小到某一段时间内我们工作的意义感。一段时间内的意义感,就是工作的支点,去找到它,整个人就会处于点燃状态。你会眼睛里有光,会有自驱力,早上都不用定闹钟了,自己就会醒来。
最近听梁宁分享,对使命有个非常好玩的解释:所谓使命,就是怎么使这条命。怎么使这条命,就是怎么花时间,去尽可能把时间花在有意义感的事情上去。
找到一个有意义感的支点后,就需要认真去想,在这个支点上,我们的投入是什么,我们的取舍又是什么。比如图形语法方向的 AntV 立项后,我们的投入是加班时间,业务支撑已经很累,但还是会充满激情地利用晚上等各种时间去做。当时也有一个很大的取舍,把原来积累的 ACharts 类库放弃了往前发展。
取舍与投入,对个人而言是一段时间内的工作策略,对团队而言就是以年为单位的战略。战略这个词看起来很高大上,实际上也很小,就是团队的取舍是什么,团队的投入又是什么。
有了投入与取舍,经过一段时间,就能拿到一些业绩,达到一些结果。在这过程中,需要不断去看杠杆怎么撬动,要阶段性地去分析杠杆的选择是否正确,究竟自己和团队适不适合去做,在不断反思中调试杠杆。如果杠杆是成立的,想去的方向跟目标也是笃定的,那就加大投入去做。
当把这个模型想清楚后,会发现工作时的一些纠结迷茫,比如绩效晋升等事情,就很简单了。关键因素是能不能找到支点,能否通过投入取舍撬动杠杆,去到想要的方向,拿到想要的结果。绩效和晋升,在杠杆的撬动过程中,是水到渠成的。我后来到 P9 和 P10 的两次晋升,心里偶尔也有担心,但长期心态是没怎么着急,比较清楚自己在做成什么事情后,就有机会晋升。放下一些东西,专注于事情,内心有相信,行动有坚持,成长往往是水到渠成的。
再往下看,支撑整个支点的,是你的心态。心很乱时,效率是很低的,心态不稳会浪费大把时间。如何让自己的心态平静,如何保持学习状态,我觉得非常关键。团队里新加入的 90 后,能明显感觉到年轻人的好学和无所畏惧,尽情地在疯狂写代码,这种状态很好,仿若 2008 年刚加入淘宝 UED 时的自己。我现在有一个心念,就是想去打造一个团队,让团队里的同学,能始终保持刚入职时的热情,能始终保持良好的学习心态,能尽情享受写代码,随着时间流逝,也不会因为其他东西而减少热情。
有了好的心态,再通过项目实战、学习培训等方式就能快速提升能力。光有好的心态,能力提升不上去是不行的,时间一长,就容易变成老白兔。心态不好,能力很强,也走不长远,这是野狗。要想办法让自己在心态和能力上达到平衡,让好的心态促进学习欲望和专业能力提升,同时能力得到不断提升,也可以让心态更好,形成循环良性发展。
心态的背后是价值观。你崇尚什么样的价值观,积极的儒家,还是比较佛系,这些为人处事的底色,会决定你在遇到很多事情时的心态。这个话题比较大,有兴趣可以线下聊。
有时会觉得,公司给予我们最大的财富,就是默默地让我们长在了六脉神剑、阿里土话等文化土壤中。价值观就像土壤中的养分一样,默默地让一棵棵树长大,让大家能海阔天空式地枝繁叶茂。
支点杠杆模型,也很容易用在团队的发展规划上,今天特别想说说团队发展三大策略里的“大舍大拿”。
2014 年做 Ant Design 时,我们考虑过不叫 Ant Design,考虑过取一个中性的名字,这样后续就有机会在做大后覆盖阿里集团,因为不带 Ant 字样的中性名字,可以减少一些推广阻力,这是当时的想法。但是后来我们选择不,决定就叫 Ant Design,就要带上蚂蚁的特色,从诞生之初到现在,Ant Design 就是要服务好蚂蚁的业务。名字的取舍,看起来是舍掉了很大的市场,实际上我们到目前为止一点也不后悔。
实打实地去把你直接支撑的业务服务好,就已经是非常有价值了。聚焦业务去做技术,技术会更有生命力。业务是技术的土壤,不同的业务会长出不同的技术。曾经小程序 IDE 团队在体验技术部,但我们判断小程序技术在支付宝事业部去做会更合适,于是就把小程序 IDE 团队输送给了支付宝团队。做事不要求多,不适合在自己团队发展的技术,想清楚后,可以果断输送到更合适的团队里去。
在做了“大舍”之后,往往对自己团队也是一种解脱,可以更聚焦去做“大拿”的事情。很多技术领域水很深,不是随便投入几个人做几个月就能做好的。特别有意思的是,因为大舍之后的聚焦,反而更有机会真正去做成世界一流的产品。Ant Design 坚持服务好蚂蚁的业务,不怎么理会集团的需求,反而让 Ant Design 能心无旁骛地去做好技术细节,比集团同类产品做得更优秀。渐渐很多 BU 都开始使用,并且随着开源,在国内被大量公司使用。重要的是产品的优秀度,而不是一开始的技术占坑。
语雀的故事也类似,集团各 BU 对语雀的个性化需求一直非常多。语雀在功能上的取舍,经常会涉及大舍大拿的决策。决定一个产品灵魂的,往往不是选择做什么,而是选择不做什么。选择不做什么,需要抵挡住大量诱惑,但在抵挡过程中,因为人力和时间都有限,可以逼你去真正想清楚产品的差异化竞争优势在哪,从而逐步形成产品的独特之处,开始有产品的灵魂。
以上所有分享,核心是几个问题。如何找到支点,如何取舍平衡,如何做到全情投入,如何在事情上守正出奇,如何提升自己和团队的能力,如何在心态上愿等花开,这些是我不断问自己和问团队的几个问题。努力去思考,尝试去回答,通过实际项目去做到“事上练”,我相信个人成长和团队发展就会自然而然水到渠成。