大家好,我是汤尧,来自支付宝前端技术部,目前是商家与开放前端团队leader;光说名字可能没什么体感,但是说到最近比较火的支付宝消费券项目大家应该有所耳闻,不少经济体前端同学也都参与到了这场战役里;
关于成长这个话题我想从我自己经历的几个关键阶段来讲一讲;
做一线:初步定型,确定方向
我10年到淘宝,进的不是专业前端团队,也不是核心业务;刚进来的时候没有那么明确的规划自己后续到底要做什么,前后端有需要的我都做,刚进来就参加了双十一,当时的任务是做一个全网的总成交 GMV 和 分类目展示,就是从数据库里面把数据取出来然后在页面上用 table 渲染;从今天的技术来看这个是不是很简单很原始,而我们现在有很多种高端解法来完成,比如 datav;因为没有前端,可能我比较有感觉,我的职责重心开始转移到前端上,主动承担了大部分的前端开发工作。当时进公司的时候师兄告诉我淘宝的前端用 YUI,遇到问题的时候还不断的去骚扰 #拔赤;因为特别爱玩,所以基本上把 YUI + 服务端的混合模式玩出花来,也正是因为爱折腾,所以才逐渐引起了老板的注意;也因为爱折腾,参加各种活动开始逐渐认识公司里面各种前端同学,自己的视野被打开;然后做了很长一段时间 YUI 后一个悲剧的消息告诉我淘宝已经放弃 YUI ;
后来我开始接触 node,那时候对阿里来说基本上就是蛮荒时代,所有的基建都要自己做,想要跟现有技术体系打通最困难的是各种加密算法,通信协议,中间件客户端;没经验怎么办?也是自己单纯的认为再难的东西总是有解决的办法;最痛苦的经历是 biginteger 当时的 node 版本没什么好办法就自己照着 JAVA 源码一行一行的看写了一个,前后耗费了一个月时间,过年的时候每天就折腾这了,当然今天已经没那么麻烦;加入到 chair 团队后,我们基本上联合了阿里最活跃的一批贡献者,彻底铺垫了今天的阿里 node 基础设施;最开始很多事情跟绩效无关,哪怕晋升都遇到了不小的挑战,但是与我个人而言,去看那些中间件的源码让我的知识面进一步扩大,对于我后续要去做的事情变的更加顺利;
从P5-P7这段经历其实挺不容易,P5升P6还失败过一次,反思第一次晋升的状态其实是没有水到渠成,虽然路走对了,但是积累不够,随着日常不断的积累和自我要求,后面的发展逐步变的顺利;最初的这段时间对我后续发展很重要,自己能够清晰的认识自己的特长,适合做什么,并且坚持一条确定的主线,一步一个脚印的走下来;
这一代前端走过来都挺不容易,也没太多参考;而今天已经有很大的不同,前端规模非常大,前端委员会拉通,前端成长的声音也越来越响,但成长始终是个人的事情,如果你自己都不努力,再好的资源优势也看不到成长;
初带团队
后来比较长的一段时间,我开始带团队;从一线到leader,我没有管理经验,最开始玉伯来问我愿意不愿意带团队,我说好;答应的干脆但其实没有想那么多,我不知道后面会面对那么多复杂的问题;因为我做一线的时候运气还不错,比如在苏千团队时,每个人都自驱的往前跑,他管的不多,但是我们却可以团队在一起为一个清晰的目标不断努力;然后开始带团队后我发现团队还是因人而异,因业务而异,一点都不轻松;曾经也想过不带团队,自己一个人更加自由,带了团队之后仿佛跟一线同学形成了隔膜;中间有人放弃,有人坚持;
随着职责范围的变化,支付宝会员,财富,保险,工程团队,商家开放,从一个懵懵懂懂的新人逐步开始学习带团队,从一级团队到有二级团队,从不到10人团队到50人团队;每次都在突破自己的极限,压力不能说不大;要做一个好的leader很难,但是我尽量去努力做一个简单,专业,有爱的团队(我很喜欢当时玉伯提出来的这几个关键词)。
leader 是冲在前面领导团队,而不是在后面指挥团队;
顺带一个问题,leader 要不要写代码?当然要,如果一个 leader 不写代码,你会失去对技术的敏感度,逐步的会变成纯管理路线,如果你失去了技术敏感度,团队会更容易变成资源型团队,缺少一定的顶层架构,技术会遍地开花,如果你技术实力够强,一线团队也会足够服你的决策;写什么样的代码?写代码同样应该抓大放小,关键架构,项目原型,从日常迭代中寻找体感,技术底盘如工程能力等,如果事无巨细自己全都跟完,那会跟团队缺少沟通;然后至少在9以前的leader尽量不要停止写代码,一线主管相对容易些,二线主管会比较难;与我个人而言我会尽可能的寻找机会写代码从而看到团队的一些技术问题,制定出相对明确的技术目标,有很多技术的成长来自于对代码设计的极致追求,所谓匠心大概就是这个道理,只有追求更好,你才能重塑自己的技术能力;
带团队的思考:成长型团队
然后我从自己对团队的思考来讲一讲我对成长型团队的一些思考;
- 积极的心态,能看到最终目标,快和早
- 大家有一种感觉前端现在的技术已经很成熟,我还能做什么?前后端分离,微前端架构,业务中台,antd, bigfish,react,nodejs,serverless 这些过去没有,都是近些年不断涌现出来的优秀前端解决方案,但是有这些方案后我们就没有突破了嘛?一个很有趣的现象是从前端技术发展路线来看,大家都说前端的技术变化太快,技术一直在突破创新;这就是从大环境来看我们仍然有非常多的同学始终能够站在巨人的肩膀上,积极的突破创新;不是没东西做,只是我们没想到;
- 做事情的方法很多,你拿到后利用自己掌握的知识把他实现完了事,还是去琢磨出更好的方案,借手上的项目不断的去验证自己的设想,验证成功后推广出去;你会采用哪一种?成长突破最大的往往是后者;如果你对当前的业务没有任何想法,那可能是思考的方式不对,换个姿势再想想,比如找人聊一聊,站起来放松下让子弹飞一会,只要你坚持思考,就会获得灵感;
- 做技术方案的时候我们还要能看到最终目标是什么,从当前节点往后走我们应该如何走,这路上一定充满了艰难险阻,如果轻易放弃妥协那么就走不到最后;
- 不嫌事小,晚做不如早做,由点到面:做事情还要快和早,不然明日复明日,等年终总结的时候就会一声长叹,要是几个月前我那个方案实现了就好了,要是我在那个项目结束的时候持续去推进就好了,要是我当时把那个代码抽成通用库,等等各种后悔的场景;有些事情在最开始的大家看到的只是一个点,如果不去做又怎么能由点到面呢?
- 跳出你的舒适区
- 公司处在舒适区会倒闭,我们也无法回避:舒适区是什么?这个词出现的频次很高,我们经常会讲你停留在舒适区太久了,我们给你创造些变化,去面对更大的责任和挑战;我们也会发现支付宝从过年到现在组织架构几乎每个月变一次,为什么?组织处在舒适区太久,外部环境的造成的压力让我们不得不调整姿态,整合阵型,迎接挑战;如果公司不能适应新的变化带来的结局可想而知,诺基亚,雅虎等等,作为公司的一员我们自己也要勇立潮头,不畏艰险,直面挑战;
- 舒适的条件容易腐蚀心灵,消磨意志,从而令人放弃拼搏努力的斗志;刚毕业时我第一份工作是在电信,国企没那么忙,每天都很闲,上班时间也不饱和,那些技术问题我主要花很少的时间就能搞定,那段时间过的很爽,玩的时间很多;但是过了3年之后我突然醒悟自己不能再这样下去了,每天浑浑噩噩的不是我要的人生,工作要做的有意思;
- 有人可能会问,我不想晋升,就想好好的做一个 P6 行不行?这当然没问题,但是随着时间的推移你一样会成长,如果无法成长你就应对不了当前层出不穷的新技术,必然会被淘汰;如果你适应的很好,那么就是水到渠成的事情,你不想晋升组织也会让你晋升;
- 持续学习,打造学习型组织
- 成长是一种能力的培养:我感觉自己没有成长,不少人都会这样说;那么成长究竟是什么呢?我觉得每个人都要自己去想一想,有了明确的目标你才有行动的路径,不然这句话就会变成一句空话,这个目标可以是理解一个业务,完成一次架构等等;我理解的成长是什么呢?成长是一种能力的训练,当我们具备这种能力后可以复用到任何职业,能够应对未来任何事情,摘自《未来的学校》;
- 塑造富有目标感的自己
- 利用创造力解决问题的能力,沟通能力,协作能力,分析能力,团队意识,以及个性的力量
- 个人自主性,同时随着相互之间的学习,启迪和鼓励,产生互相影响
- 能够深刻而熟练的掌握知识,还能将知识教授给别人,为组织贡献知识
- 突破职业边界,不要把自己限制在前端,谁说前端不能干这干那?只有你自己限制自己,别人没法限制你做什么;我们在学生时代学习的语数外物理化,在实际工作学习时往往都是综合性的,偏科在现实中不存在;
- 成长是一种能力的培养:我感觉自己没有成长,不少人都会这样说;那么成长究竟是什么呢?我觉得每个人都要自己去想一想,有了明确的目标你才有行动的路径,不然这句话就会变成一句空话,这个目标可以是理解一个业务,完成一次架构等等;我理解的成长是什么呢?成长是一种能力的训练,当我们具备这种能力后可以复用到任何职业,能够应对未来任何事情,摘自《未来的学校》;
- 向上管理,充分沟通,学会借力
- 工作中信息互通和信任很重要;大家可以回顾下自己手上做过的一些项目,你清楚背后涉及到多少系统链路吗?有多少一方二方依赖?最开始淘宝是买来一个 web 站点,支付宝只是其中的一个支付功能,谁能想到如此简单的代码经过多年发展能发展到今天的规模;一个S级大促要拉出几百人团队、日常项目很少,但是几十人也很平常;在这信息爆炸的时代,如何做好信息整合,协同作战,如果还是一如既往的单兵作战将会变的力不从心;
- 我看到有同学说主管年初丢给我一个目标,到年底了来问我要结果,同学有苦;但是你反思过自己的问题没?你是否真的明白主管交代给你的是什么任务,这个任务有问题嘛?你是否知道哪些事情需要汇报,哪些事情是可以自己决策的?你是否能识别风险并及时调整方向?主管和一线同学需要更多走心的沟通,所谓事前充分沟通,事后坚决执行,充分有效沟通需要下功夫;不然在这种复杂度面前不知道会跑偏到什么地方去;
- 其次无论是谁都要去学会借力,不能总觉得这个事情很简单,我自己搞搞几分钟就好了,然而单凭一己之力只能满足自己接触到领域;chair 从满足自己团队业务为主剥离出 egg 放到社区共同维护以满足不同业务的诉求,随着服务的领域变多,很多能力已经不是当前一个人或者团队能够满足;
- 思维模式,锻炼基本功 WHY,HOW,WHAT
- WHY:你为什么做这个事情,你在业务里面遇到的痛点是什么,为什么是非做不可的?为什么你可以做,别人不能做?动机?这里很强调一件事情就是业务导向,我们不能为了技术而技术,很多人一上来就说我要做这个做那个,但是问了几个问题后发现,这个事情跟公司的业务没什么关联性,没法给业务带来什么太大的价值;ROI 又低,不值得投入,那你为什么要做呢?
- HOW:有了业务输入后,那么你是如何思考和提炼的?也就是制定了终极目标后,你可以通过哪些路径做到最终的状态,过程如何,技术架构如何设计?有不少同学觉得做到了一点两点就开始沾沾自喜,但是从零到一的路其实很长,只开头是不够的,做技术一定不能急躁,要有持续性,过程中你一定还会遇到各种各样的挑战,经历种种挑战后才能脱胎换骨,变成一个好的方案;这也就是为什么我会跟有些同学说,你做的事情还差一点,还没有达到水到渠成的状态,给你高绩效已经是很大的认可,到晋升还需要把这个事情做到更完整;去试一试晋升?大多数情况下都会失败,并且失败的打击不少同学其实不容易走出来;抱着碰运气的心态去不是我鼓励的行为;你是希望 60 分过还是90分过?要把最终选择权留给自己,而不是运气;
- WHAT:基本要素都具备以后,WHAT 就是在业务中取得的结果;这里更多的是拿各种数据指标来印证前面 WHY 里面提到的问题;比如你要解决效率问题,性能问题,突破某个技术,提升业务效果等等;这是对你做的技术价值的证明;
未完待续
探索面向未来的团队
借事修人,从项目中探索成长之路;这是一句老话说了很多遍;在实际执行中很有用;上面的所有思考,我们都需要在每个项目中用实际行动来验证,如何制定目标,如何设定技术方案,如何执行,如何锻炼我前面讲到的基本能力;
成长是一种修炼,走最难的路,看最好的风景
关注「Alibaba F2E」
把握阿里巴巴前端新动向