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 等,虽然还不多。但我相信,数字化的大趋势下,有工程师背景的创业者,只会越来越多。前端从业者可以做的事情,也会越来越多。

小结时刻

玉伯总结前端对业务的三大价值,一是降本增效,二是助力产品业务的体验提升,三是前端技术逐渐可以成为产品的核心竞争力,为业务创造可能。其中,前端技术对体验的提升,在下一节我们会聊到,敬请关注。

你对前端这个岗位是如何理解的,如果你是从事前端的工程师,你希望做哪些突破边界的尝试呢?欢迎大家一块交流,我们下一讲见!

延伸阅读

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e8%b6%85%e7%ba%a7%e8%ae%bf%e8%b0%88%ef%bc%9a%e5%af%b9%e8%af%9d%e7%8e%89%e4%bc%af/01%20%e4%bb%8e%e9%a1%b5%e9%9d%a2%e4%bb%94%e5%88%b0%e5%b7%a5%e7%a8%8b%e5%b8%88%ef%bc%8c%e5%89%8d%e7%ab%af%e5%88%b0%e5%ba%95%e5%9c%a8%e5%8f%91%e6%8c%a5%e4%bb%80%e4%b9%88%e4%bb%b7%e5%80%bc.md