01 从页面仔到工程师,前端到底在发挥什么价值
玉伯在前端圈子里摸爬滚打十几年,他对前端价值的理解是什么样的?在他眼里,前端到底是一个怎样的岗位?我们带着这样的问题向他提问。支付宝体验技术部是前端同学最希望加入的团队之一,玉伯带领这个团队做出诸多创新产品,一定程度也能代表前端团队的边界拓展方向。因此我们希望把玉伯的理解交付给你,也许能给你不一样的视角。
极客时间:经过你这么多年在前端方向的实践,你觉得前端的核心价值到底是什么?
玉伯:前端的核心价值,可以等同为一个问题:“公司为什么需要前端团队?前端团队因何而存在?” 我找到的答案有三点。
第一点,前端可以为公司降本增效,这是一个基本盘的价值。一个公司要做互联网产品,可以采用外包的方式,也可以采用自建团队的方式。为什么阿里等互联网公司采用了自建技术团队,核心原因是,自建技术团队,可以让产品研发更快,质量有保证,整体可持续发展。长期来看,互联网公司自建技术团队,可以大幅降低产研成本并保证高效产出。
组织设计上,技术团队经常会集中在一起,前端团队往往也会集中在一起。集中可以带来效率提升。假设一个业务需要 30 个前端来支撑,放到我这里,可能只需要 20 人就能满足业务需求。因为集中化管理,可以复用专业经验,我们知道如何更高效更专业地支撑业务。前端团队放在一起,在判断需求的优先级时,全局取舍会更自然发生。当前端分散在各个业务时,好处是能形成自闭环,但会带来一个常见问题:零散前端往往会被迫接好多需求。一旦前端是集中的,同时前端人员整体又紧缺时,面对业务需求,前端往往就不会再无条件接需求了。在需求的取舍过程中,就砍掉了很多没必要做的需求。砍需求往往是对业务的最大提效,不做一些需求,反而能提升需求质量,最终让业务做对需求。
但如果自己就是业务方,独立负责一块业务,很多 Leader 肯定就会想自己闭环最好,不然还得等排期。还不如自己直接招几个人,这样更高效,这是人性。但实际上,需要大家更客观去看。早期自闭环,可以让业务从 0-1 更高效。发展到一定阶段后,特别是各个业务板块需要互相关联时,集中化的技术支撑,往往能复用专业能力,整体业务效能会更高。
我现在更能理解一句话:分工是整个社会效能提升的关键。工业社会的分工极大提高了社会运转效率。以前农业社会衣食住行所需要的东西都可以自己生产,这叫做自闭环,效率是极低的。正是因为有了社会分工,整个人类社会才飞速发展。
降本是最近几年才凸显。现在不少公司开始提经营责任制,各个 Leader 会更意识到要省钱。举个例子,设计师对业务来说很重要,但业务如果自己去招一个创意设计师,往往不如用设计大团队提供的创意同学,这样会更省钱。统一的设计或前端部门,可以整体统筹,议价能力也更强,可以非常实在地降低成本。
简言之,前端团队的存在,是因为技术专业分工能带来整体效能的提升。同时前端团队往往会是一个整体,集中化可以降低公司的整体成本。
极客时间:刚刚聊到增效,那你们怎么去和业务负责人沟通,能让他们感知到,实际上你们是在帮他提效的呢?
玉伯:需要互相建立信任。如果业务方提什么需求你都拒绝,肯定不行。一方面要去接需求,一方面也要有勇气跟对方说我们的想法:为什么某个需求我们觉得不靠谱,为什么当前腾挪不出来同学来做新需求。可以主动把人员投入透明出来,让业务方知晓我们把人员都花在哪了。整个过程中,核心关键点是,如何让业务方相信前端的专业度。前端是技术岗位里离用户最近的,不少优秀的前端工程师经常具备不错的产品思维,往往能给到业务一些靠谱的建议。当这些好建议有一起两起,逐步跟对方开始有互信,开始建立正循环时,一切就好了。要相信,我们的专业,我们的善意,对方是能够感受到的。
带的团队比较大时,与业务大 Leader 的互信非常重要。具体业务 Leader 可能会抱怨“前端团队老不接我的需求”,但是业务大 Leader 往往会更有全局思维。资源投入的本质是优先级管理,上一个台阶看问题,很多优先级就能决策出来。
极客时间:前端团队放在一起,能够给业务更专业的指导或者专业的反馈。看起来你带的团队,前端还是有话语权的,前端的这种专业度是如何建立起来的呢?
玉伯:这取决于前端 Leader 的想法。我一直有个观点,前端并不是为后端服务的,前端跟后端是平等的,共同服务于一块业务。首先自己心态要摆平,同时跟后端也要说清楚我们的想法。有些后端老觉得这是他提的需求,前端做就好了,但是需求不应该来自后端,而应该来自业务方。不少情况下,业务没有专职 PD(产品经理),后端兼了 PD 职责,比如在不少中后台业务场景,对这种情况,也要分开来看这两个岗位的需求。摆平位置之后,前端和后端一起以合作伙伴关系服务于某块产品或业务。
和后端的关系梳理清楚后,更难的,是如何能跟业务达成互信,这取决于你对产品域或业务域的了解程度。要能和业务对得上话,不能纯粹只是一个页面仔,要成为懂业务的工程师。鲁肃担任蚂蚁 CTO 期间,我刚过来蚂蚁不久,看到各种业务类型,琳琅满目,要学的东西很多。在了解业务之前,早期我也是个前端资源,后来随着越来越熟悉业务,对不少产品开始有深度理解,慢慢有了自己的判断,才感觉到能发挥的作用更大。
但我同时发现,前端再理解业务,一般来说都很难超越后端,因为后端掌握真正的业务逻辑。前端懂业务远远不如后端懂业务来得这么自然,但是前端懂体验,这是我们的长处。我们其实对于一些交互设计、体验细节、对用户使用产品的体感会更有优势。后端很多时候不太懂体验,他们甚至会觉得功能堆上去就好了,但是堆功能,往往会带来糟糕的产品体验。
衡量产品体验好不好,有好几个指标。传统常用的是 CSAT(Customer Satisfaction,客户满意度),很多行业都可以用。在 to B 领域往往会用 CES(客户费力度),用这个反向指标来判定用户使用产品费不费力。在 to C 领域常用的是 NPS(净推荐值),有太多介绍,不赘述。当我们能通过 CES 等专业指标去衡量产品体验,并能具体给出优化建议时,前端懂体验的优势就能体现出来。当我们体现出专业度时,大家就会尊重你、信任你。
极客时间:刚才聊了前端对业务的第一个价值点是降本增效,第二个价值点是什么?
玉伯:第二个价值就是前端有助于产品体验的提升,因为前端是最靠近用户的工程师,这个真的是前端这个岗位能够给到产品和业务很大的价值点。一个产品最终展示给用户的界面,都是前端或客户端通过代码写出来的。前端在这个过程中要调试,调试过程中对产品的感觉很重要。当感觉不对劲时,好的前端会去找设计或产品同学反馈,共同去思考是不是哪里没考虑周全,是不是某个细节功能点有问题。我们常说,当代码写不下去的时候,大概率是产品的设计逻辑错了,这时停下来去修改,对业务的价值是很大的。
前端的体验优势,也有一个危机。老一辈的前端,有很多像我这种从物理、化学、生物等各行各业转过来的,是对体验有浓厚兴趣的一波人转行学做前端。这波老前端,普遍对用户体验的感知力很强。随着前端校招生源变好,大量计算机科班出身的同学开始做前端,最近几年有不少学算法的同学也来做前端了。这些科班出身的同学,整体特点更理性,更逻辑化,更像服务端开发,这些优势非常好。不足的是,不少新同学会对体验的感知有缺失,有像素眼、愿意写 CSS 做界面的同学越来越少。
举个例子,之前我面试的时候,经常会出一道题,拿 CSS 实现的页面给候选人看,这个页面中间有些像素偏差,可能只差一像素两像素,我想考的是他能不能看出像素偏差,看他具不具备“像素眼”。给老前端看,一眼就看出来了,但是现在很多前端新同学看了半天都觉得没问题,现在这道题我都不敢拿出来面了。以前前端对体验的感知还是不错的,我们之前已经往前走了一步,使得设计者关注核心的创意和关键元素就好了。早期设计可能不需要出完整设计稿,只需要出关键设计稿就行了,剩下的前端就实现了,效率很高。但现在不行了,现在前端和设计的协作关系又变成了设计要抓还原度。这个现状,是当下前端天空中的一朵乌云。
体验曾经是我们的优势,但是接下来慢慢也会淡化,目前我也在想一些其他解法。当下仍然是优势,至少团队里面还是有一半同学有这块的感知。现在一些前端领域的大会上,一些专家都在呼吁前端回归到关注体验,我认为这很重要。
科班出身的同学只是对用户人机交互层的感知变弱了,在前端工程化和专业代码逻辑层,以及往计算机底层探索的能力,都全面变强了。整体来看,在朝着更好的方向发展。
极客时间:降本增效、提升产品体验,前端在这两方面也都遇到来自业务方或者行业趋势的挑战。前端对业务的最后一个价值是什么呢?
玉伯:第三个价值点,我最近几年有些感悟,发现前端技术开始真正为业务创造一些可能性。
我举个例子,比如数据可视化领域,当时中国最有名的产品应该是百度的 ECharts(注:2018 年捐给 Apache),ECharts 的基本思路是一图一表,比如饼图、趋势图、气泡图等,都是先有图,再去实现这个图。2014 年,我们也想做数据可视化,但如果只是再做一个 ECharts,意义不大。当时我们就在想,可视化领域有可能的创新点会是什么?如何才能做出差异化竞争力出来?
于是我们开始研究学术界的进展,发现其实上个世纪就有一个学术大拿,已经写了一本书叫《The Grammar of Graphics 图形语法》。很厚的英文书,我们团队几个人一起研究,看完之后觉得如果以语法的方式去做数据可视化框架,我们非常有机会超越国内包括国外绝大部分同类产品。
当我们在 AntV 里,真的把图形语法实现出来后,发现跟 AI 领域可以天然结合。利用语法特性,能根据数据特征或用户指令,通过语法智能化生成一些图表,甚至可以生成全新的未见过的图表类型。这是产品方都没想到的,是技术给了业务新的可能性,并有机会成为一个产品亮点。
类似竞品在国外有,比如微软的 Power BI、IBM 的 Watson 等,也是倡导智能洞察,用户只要说一句话“想看特定人群过去一年的留存率”,它就可以把趋势图等洞察给展现出来。当时做 AntV 时,我们压根没想到智能图表场景,后来做着做着发现居然可以让业务智能化,才开始意识到前端技术也能成为产品的核心竞争力。
再举一个例子,大家可能都用过支付宝上的蚂蚁森林、蚂蚁庄园等产品。这些产品背后,是我们沉淀的一套图形互动技术。支付宝上不少应用已经不是传统前端应用,而是互动应用,具备不错的互动体验。基于这套技术,可以实现支付宝的五福、打年兽、神奇海洋等业务。这些互动应用可以做到较低成本研发(和传统游戏比),为支付宝的业务形态提供了新的可能性。
总结起来,前端的价值有三点:降本增效、提升体验、创新可能。
极客时间:经过这个过程,你觉得对于前端来说,大家的自豪感会更高吗,天花板会更高吗?因为逐渐有越来越多的事情可以尝试。
玉伯:这是一定的,我们都逐渐从页面仔变成了工程师。身份的转变花了很长时间,2014 年-2018 年对我来说,我觉得自己还是页面仔,2018 年以后才能自称为工程师。
Ant Design、AntV、前端工程化、前后端分离等事项,在经过 3-4 年发展后,到 2018 年才逐步显露成效。其他团队逐步不再把我们当成资源,会认可前端也是有技术厚度的,同时对效能提升和体验提升,也是显性可见的。
2018 年起,我们也开始有一个倡导,让前端工程师往产品工程师方向发展,目前还在路上,只在语雀等少部分团队实现了产品工程师的倡导。语雀的不少技术人,喜欢写代码,同时也喜欢语雀,在用技术实现语雀过程中,还抱着对产品的热爱和见解。语雀的一些产品模块是前端工程师在负责,这是语雀的核心产品竞争力的来源之一。
之所以语雀的前端工程师能成为产品工程师,有两个因素。第一个因素是全栈开发,语雀的主体是用 JavaScript 实现的,语雀很有可能是中国最大的 Node.js 系统,语雀 90%的代码都是 Node.js 写的。这意味着在语雀,前端不仅是前端,这个产品的后端实现、算法、运维等,前端工程师都在做,再加上对语雀的热爱,对产品有感知,前端写的代码是蕴含着对产品的喜爱的,在这种情况下,前端工程师就有机会成为一个产品工程师。
前端人群里,还很容易出现优秀的产品经理。语雀的产品经理、钉钉的产品经理、微信读书的产品经理、飞书的产品经理,据我所知,都有不少产品经理之前是做前端的。
当然,前端人群里,也有出现 CTO、CEO 等,虽然还不多。但我相信,数字化的大趋势下,有工程师背景的创业者,只会越来越多。前端从业者可以做的事情,也会越来越多。
小结时刻
玉伯总结前端对业务的三大价值,一是降本增效,二是助力产品业务的体验提升,三是前端技术逐渐可以成为产品的核心竞争力,为业务创造可能。其中,前端技术对体验的提升,在下一节我们会聊到,敬请关注。
你对前端这个岗位是如何理解的,如果你是从事前端的工程师,你希望做哪些突破边界的尝试呢?欢迎大家一块交流,我们下一讲见!