做者 | 悟寻 阿里巴巴前端技术专家前端
导读:成长即意味着改变,而改变自己是一件很痛苦的事情。改变会有连锁反应,一次改变以后,你的心态和认知可能会和之前大有不一样。平凡的人老是类似,不凡的人各有各的不凡,技术人的成长道路依然很长!本文由阿里巴巴前端技术专家悟寻将他在阿里的成长思考进行分享,但愿可以给正在业务中深耕细做的你带来一些思考和方向。性能优化
我将我经历过的或者正在经历的状态,分红三个阶段进行总结:求生存,谋发展,修体系。 框架
做为一个服务一线业务的前端同窗,支撑好业务占据咱们 50%-60% 左右的 KPI,纵观行业前端自己很容易成为整个业务的资源瓶颈,而身为业务的前端我相信必定经历过疲于奔命,常常线上救火的事情。前端性能
我入职后的前一年主要作进口业务:天猫国际,一个包含平台和自营的业务。当时的进口业务还处于野蛮生长,竞争激烈的阶段。常常面临一年两大改,平常需求不断,期间还要应付一年的 5 个 S 级的大促和一些小促,我记得最忙的时候是 17 年双十一,面临着自营和平台两块业务的大迭代,同时还须要面临双十一大促各类需求,天天除了作业务几乎没有什么思考和总结的过程。而通过那次以后我也深入体会到对于需求管理和时间管理 & 如何避免线上起火的重要性。这里我结合自身和团队的经验梳理了如何打破这种状态的方法,也欢迎各位补充。 工具
首先需求是作不完的,因此要有取舍,集中人力和精力作核心的业务需求,才能发挥最大的价值,若是你所在团队目前处于各类零散的需求纷至而来致使没法应节的状况,则有必要进行相应的需求管理措施: 性能
好比拉上老板,PD 和业务方 & 开发一块儿,每两周(时间可自定义)坐到一块儿对焦这两周的项目进展和接下来全部需求,而且肯定好优先级,哪些是应该安排资源进行开发,哪些应该进行取舍,让更多的精力和人力 focus 在业务的重要事情上。 固然好比业务方靠谱或者有大的规划,则通常会对财年的目标进行战役级别的拆解,而且梳理出业务今年必需要要拿下的几场战役,那么技术同窗就能够根据战役来排兵布阵了,业务和技术同窗也有明确的统一的战线和目标,好比咱们目前就是以各类战役为主,平常需求穿插为辅。学习
在需求双周排期会中基本能搞定 80% 的核心需求和优先级,但在平时仍是会存在一些业务方/PD 会找你提一些没有通过梳理和思考的一两句话的需求,好比:这个商品坑我想从一排一换成一排二的,或者想这个地方的 icon 或者营销标我以为字体很差看想修改下等等这样的诉求。那面对这样的诉求,在左耳朵耗子的极客专栏中 & 小胡子哥的博客都有提到如何拒绝一句话需求的方法,结合我本身的经验以为有以下三个递进的方法来解决:字体
固然做为技术人员,需求管理只是一方面,还须要从自身的角度出发,提高开发效率和质量,这个我相信你们都深有体会,尽可能不要作低质量的重复事情。优化
好比经过统一开发技术体系和封装相应的可复用的组件和提效工具等来释放本身和团队同窗的生产力,千万不要由于太忙而放弃思考和作这些事情,这样只会欠下更多的技术债。固然这里也有个误区,并非鼓励你们造轮子,身为业务团队的同窗,尽可能把眼光能放到行业或者集团内借助现有的技术方案快速的定制来知足本身的业务诉求,好比以前咱们借助舒文团队的魔系列产品定制了海外本身的魔石模块来知足海外营销场景的需求开发,如今基本上大促相似坑位模块都获得了比较好的解决。设计
再者就是质量问题,须要抽空对线上常常出现问题的产品和代码进行梳理和方案的从新设计,在作国际时我通常是利用周末的时间来作这种事情,进行部分的重构来达到这种问题的完全解决,避免三更半夜出现“连环夺命 call”。剩下的方式和手段就是增长开发环节质量保证和必要线上监控了。
有的时候咱们认为项目提测上线后就完成了,这是一个很差的习惯,久而久之本身也就在合做方当中沦落为一个项目资源的角色,处于被动的状态。其实仔细分析下上线以后的业务数据和效果 & 分析总结,有以下好处:
提升本身对业务的理解能力,你在关注业务数据的同时,也就会更多地从业务的角度来看到这个功能所带来的价值是否符合预期,当出现不符合预期的时候,能够和业务方一块儿进行数据漏斗的分析从而找到问题所在,避免咱们的劳动成果成为一次性的工做;
总结的同时能够帮助本身梳理这个项目中本身哪些地方作的不足,或者相关推动中存在什么问题,以及后面怎么改进,提升了下次项目中的迭代效率和质量。好比这个项目是否存在需求理解不到位存在返工,或者沟通 & 联调低效,环境不稳定,本身设计的方案是否合理等问题,后续要怎么解决;
也能够从数据和总结中判断出什么样的需求是靠谱的 & 什么的样业务方是靠谱的,频繁争取资源上线效果又很差的业务方,下次再有需求过来则须要多增长一个心眼和思考的过程。
以上就是我在应对业务需求井喷所总结的一些经验,整体来讲就是虽然业务占据咱们大部分的 KPI,但不能在业务中迷失了本身,须要给本身安排总结和反思的时间,作到主动掌握节奏的支撑业务。
固然作到主动掌握节奏支撑业务仍是不够的,如何让本身在作业务的同时能得到更好的沉淀和成长呢?下面说说我经历的第二个阶段,我把它称为四顾茫然谋发展。这个阶段你会发现你虽然能较好地支撑了业务和有必定的时间来思考了,可是做为业务前端有个困境就是彷佛不知道往哪些方向来发力来提高本身,特别是在每次制定规划和写 KPI 时,总会出现除了业务不知道该作啥的困境。在我看来身处在业务团队的前端能够试着从两个角度去探索和思考。
业务赋能实际上是须要咱们紧贴业务规划,制定技术规划和方案。这里建议从财年开始后就须要陆续和老板,以及本身对口的业务 PD 去聊,找一些线索和输入,了解业务方今年的 KPI 重点是什么,预计的拆解和实现路径是什么?再结合本身的和团队状况,想一想本身能作哪些事情来帮助业务实现其 KPI,其实这并不是是一个简单的事情,我本身也在慢慢的锻炼和训练的本身,目前有两点感觉能够谈下:
不少时候,咱们收到的痛点和业务需求都是单点的,这时咱们不能着眼于眼前的单点问题,而须要通盘来考虑,好比 SEO 的页面对性能很是敏感,常常会收到一些业务方来反馈,说目前咱们的 SEO 有这个地方,那个地方须要优化下,而单点解决这些问题可能对业务带来的收益并不大,对本身的技能也没有什么成长。这时候若是通盘考虑这个命题,其实会发现作 SEO 页面的优化,其实目的是为了提高 SEO 页面的收录和排名。提高 SEO 页面的收录和排名不只有前端性能优化这一个路径,还有一些其余的路径:好比优化关键词&长尾词,采用 Google 的 AMP 技术改造 SEO 页面,优化爬虫爬取页面的耗时,提高爬取率等等。这样就能把点的问题转化为面的问题,才能制定更有效和全面的抓手来赋能业务。
不少时候咱们不能仅知足于眼前的 KPI,还须要了解业务方长远的想法和能够预见的规划。好比咱们目前正在作一个集团很是重要的项目,这个项目时间很是紧张(前端须要 300 多我的日, 且只有 48 个工做日,一度成为项目的风险点),业务和技术的第一要务就是按时上线。这时若是按着常理,规划的目标确定围绕着如何按时上线的事情,而能够预见的将来,可能还须要基于这个模式落地到其余的站点,因此这里在规划和须要作的事情又增长了:如何作到技术方案的能够复制性?将来能新开站点如何作到缩短前端人力的问题?如何帮助业务作到海外站点快速规模化?这就是第二个维度的事情了,而当我把这个项目中全部可能的、近的问题和远的问题都挖掘一遍,那咱们要作的事情其实就是海外分站前端总体解决方案。 这就须要咱们不断挖掘问题和定义问题,而后再找到对策,才能找到更好的的赋能业务抓手。
技术体验角度相对前端同窗来讲比较熟悉,而身在业务团队,前端这块也能够作比较多的事情,好比研发效能的提高,性能体验优化,新技术试点和落地,与端的融合等等。若是想重点投入在这方向里面有几个点我以为是须要重点关注的:
当你须要制定一个产品化的方案或者工具和框架的时候,最好先放眼集团内部和行业,进行一番调研,看看业界和其余同事是怎么解决这个问题的。尽可能站在别人的肩膀上作出创新或者参与共建,避免小团队内造出重复和质量低的轮子,这里建议能够多关注集团前端委员会的规划和动态,多关注集团内外的分享,当发现有感兴趣和共同有须要面对的问题和场景时,参与共建和共享。
这个比较好理解,就拿前端的性能优化来讲,目前咱们已经不怎么谈资源压缩、combo 请求之类常规操做了,而是进入了和客户端深刻结合的深水区进行优化(深度),如以前天猫的 Webbased 方案,而以前我在作海外性能优化 Global Lite 方案的时候也是从全链路的角度来规划和思考的(广度)。因此规划方案的深度和广度,决定了这个方案的收益面,而提高深度和广度的方向或者说技巧我以为能够是:
这里其实涉及到你规划的方案,完整实施下来的成本和收益问题,这个会最终衡量你作这个事情或者方向的价值。那如何衡量成本和收益呢?成本能够考虑从两个角度来讲:一个是平时咱们理解的成本, 好比投入了多少人日,花费了多少经费等,还能够从另外一个经济学的机会成原本考虑,即放弃了的最大代价。收益其实好比提升了多少人效,提高了多少业务数据,提高了多少性能等,建议采用对比的方式来凸显。
引进来的意思是尽可能基于现有的方案和能力来进一步创新或者定制,走出去实际上是将成果和方案能反哺出去,好比将方案覆盖到集团其余行业和 BU,解决相似场景的问题,或者开源,申请专利 & 多参与集团内外的分享交流等等。
关于思考业务赋能和作技术规划,实际上是一个很是值得不断探讨&锻炼过程,建议平时多和老板 & 团队内高 P 沟通和交流,通常他们会比较有经验,能够在思考的深度和格局给出很是多的建议,有的时候这种交流会有一种醍醐灌顶的感受。
有的时候当咱们找到一个以为能够深耕的方向 & 机会的时候,脑子里面也许就已经有了大体的思路和方案,这时候可能会火烧眉毛的就想要开工,陷入了各类技术方案的细节之中,这样的坏处在于可能会致使咱们作着作着偏离了主航道,致使最后的产出不理想。这里咱们须要有一套理论和方法来保证对问题理解是准确的,完整的 & 足够高度的。这个块有没有方法和套路呢,答案是:有!那就是养成结构化思考和作事方式。
当咱们在面对一个问题和挑战(挑战即机会)的时候,须要明确咱们作这个事情的核心目标是什么,创建问题的核心目标。举个简单的列子,好比在开发中遇到了项目编译慢的问题, 目标能够定义为解决项目编译问题,可是咱们也能够升华一层为提高整个开发流程的效能,这时的核心目标就是对整个开发流程进行提效。进一步升华的目的是为了提高整个事情的价值和解决问题的覆盖面。
这里能够根据不一样的场景选择不一样的逻辑顺序(时间/结构/程度)来进行拆解,好比开发提效这个目标咱们就能够按开发的时间顺序来进行拆解,好比: 本地开发 & 调试 -> 联调 -> 预发验证 -> 发布上线等。这里面须要关注的点就是须要作到拆解的完备和独立,拆解出来的子项可以作到相互独立和完整。
事业是无限的,人力老是有穷、认知高度老是不够(from 承风),因此这里须要作到取舍并非全部的子项都是值得在现阶段作或者须要花费较大成本去作的。须要抓住其中的核心子项,也就是核心抓手。
这里我建议你们能够直接阅读下《金字塔原理》一书(我本身也在学习中)和一些职业发展的其余书籍,补充本身除了技术方面以外一些思考和项目管理&人际沟通等方面的知识,固然书和文章都是理论知识,仍是须要在工做当中千锤百炼的去修炼这种思考和作事的方式,才能体现出它的价值。这块我目前也在不断的在工做中尝试,等后续若是有较多的体会和经验再来分享。
以上就是我在这几年摸爬滚打出的一些经验,借此机会也在这里感谢下个人老板和帮助过个人朋友,大家一直都是我学习和参考的榜样。