阿里前端的困局与突围
前端的价值究竟是什么?未来应该如何发展?
前端的价值
如果你刚入行,或者从事专职前端工作未满 3 年,请忽略上面这个问题,并且尽量不要再往下看了。
我知道你会忍不住往下看,那就看吧。负能量有时也是正能量。真实面对所做的事,如实面对自己的真心,这是迟早的。有过痛,才真正懂得乐。
特别注意,下面说的前端,都是阿里的前端,其他公司切勿对号入座,每个公司的情况都不同。每个公司,前端的定位也会有差异。
阿里的前端,目前主要分两种:一种在 UX / UED 部门,另一种在技术部门,所做的事大同小异,都是负责界面交互层的开发。上游是 PD、交互、视觉等,下游是后端开发人员、测试等。技能主要是 HTML、CSS、JavaScript,有些前端团队比如支付宝还直接负责 Velocity 等模板层的开发。这是阿里目前前端的现状。
前端是后端数据的第一消费者,也是最贴近用户的程序员。
一切看起来很美。
前端的价值在哪呢?很多人会回答:
- 实现界面交互。
- 提升用户体验。
第一点是前端的本职工作,也是前端岗位存在的原因。第二点也不多说,前端做得好,对用户体验是有益的。
让人纠结的,是前端有价值,可是,这价值真的很重要吗?真的值得做为一个职业投入一辈子吗?
做技术的,可能都会有类似纠结。但传统技术,纠结相对少点。比如搞数据库的,有一堆牛人榜样,搞网络、安全等等的,也是如此。这个现实的背后,是因为:
这批传统技术的背后,无论是数据库底层优化,还是网络优化、安全防范等等,做得好,对业务都能直接产生影响,比如大幅度降低硬件成本等等。 价值是直接的,可见的,不太会被质疑。
然而前端的价值,没有人会直接否认,但看得明白的,都知道:
淘宝的核心用户体验,并非是 UI 层面带来的,而是 C2C 的模式,是同等品质下商品的价格,还有支付宝的便捷等等。前端的确很重要,但真的,也就那么着。比如京东,很多交互细节做得其实不咋的,但京东靠着靠谱的物流、货到付款等方式提升了整体购物体验。对阿里来说,用户体验非常非常重要,但前端在用户体验层面能做的其实很少很少。
一个事实:
把国内大部分公司的 UX 部门解散掉,也不会太影响产品的体验。在国内,UX 主要还是起到美工的作用,虽然我不想承认。
前端依旧是美工,而且仅仅是实现工。
在阿里,我们不得不承认一个事实:**前端的确有价值,但放在全局来看,前端产生的价值并非核心价值。** 在阿里,虽然前端的工作已经不可或缺,但对大公司而言,不可或缺的岗位多了去呢,不可或缺不代表有核心价值,我就不说了。
前端的未来发展
前端,往后是技术,往前是体验。我的理解,前端的未来发展,有两个方向:
-
前后端体系的融合,技术平台化。 范例是 Google、Facebook 等公司的技术体系,不细分前后端,都是 Web Developer,在整套技术平台上,Developer 都可以从后到前高效开发。技术平台本身由 Engineer 维护,有各个领域的高手,包括前端的。
-
前端技术带来的体验革新,成为某些产品的核心竞争力。 典型的比如 Path,国外有很多创新型项目,体验是核心竞争力之一。在这类产品中, 前端带来的用户体验很关键。
然而,上面两个方向,在阿里的现状下,困难重重:
-
技术平台化之路很难。 阿里现有的技术体系,前端只是薄薄的一层,要靠这薄薄的一层,来渗透甚至改革现有前后端开发模式,非常困难。支付宝算是走在前面,已经摸索了一年多,但越来越觉得,前端的绝大部分问题,其实都需要后端才能解决。去跨团队推动也可以,因为难,所以前行也挺有挑战挺有意义。可是,更悲催的事实是,技术平台化,前后端开发模式的融合,目前来看,并不是阿里的痛点,还没有到这一步,没这个强烈需求。需求不强烈,意味着缺了“天时”。很希望我的想法是错的。前后端的技术平台化之路,还有一个很现实的问题是,马云留下的隐患:平凡的人去做非凡的事。虽然现在有意不提这句话了。这句话很伤人,特别是技术人员,然而事实就是事实。即便技术平台能建成,在平台之上,阿里现有的开发人员,无论是前端还是后端,很多人可能还欠缺了不少能力。Facebook、Google 等玩起来,有个重要因素是精英文化。这话题不多说。现实的残酷,虽然也有方法是改变。
-
体验创新之路也非常难。 在淘系可能相对好点,在支付宝,前几年首要的问题是安全、稳定,接下来几年之内,依旧是安全、稳定。创新受产品形态的影响非常大,没有一个好的产品,妄谈创新。可以有不少微创新,可以有很多小而美,但目前都触不到痛点,隔靴搔痒。真正承担阿里用户体验的,是 CDN 团队、是数据库团队、是 PD、是运营、是大安全…… 继续希望我是错的。
以上两个方向,虽然困难重重,但在一些新领域,却充满机会与希望:
-
无线领域。 未来是属于无线的,这话说到心坎上。目前阿里的无线才起步,起步意味着百废待兴。无论是前后端的技术体系,还是产品的体验创新,在无线领域,前端的机遇与挑战都很多。并且其价值,有可能变成核心价值。这一点,希望我的判断是对的。(编者注:在阿里“移动”叫“无线”)
-
Node.js 领域。严格来说是 JavaScript 程序员的新舞台。通过 Node,前端程序员可以摇身一变,变成传统程序员。数据库、网络、业务架构等等技术核心领域,都可以通过 JavaScript 来达成。Node 社区是迷人的。同样,希望我的判断是对的。
上面的分类有点混乱,下面继续乱谈:
-
创业。 在很多产品中,前端虽然很难产生核心价值,但在有竞争的地方,附属价值经常会成为核心竞争力。比如出去创业,如何在大量同类产品中脱颖而出,前端界面层的实现非常关键。可是,无论是淘宝,还是支付宝等,目前都已经过了初期创业期。有时真希望,易趣如果还强大着该有多好。
-
转行。 的确,没必要因为懂 JavaScript,就一辈子做前端。没必要限定自己的发展,可以做 2-3 年前端,然后再去做 2-3 年开发,还年轻的话,可以继续尝试各种岗位,说不定,10年后,就变 CTO 了。
从人的一生来看,前端只是一段很小的旅途。它能带给你我们的已经不少,舍弃惯性,脱离舒适区,长远来看才能走得更远。放弃有时也是坚持,重要的是你心中的梦是什么。
感悟与坚持
纯技术上,前端目前的很多发展,只是在满足业务,并没有真正对业务带来“从无到有、促进变革”的变化。从公司的角度讲,并不需要那么多前端牛人。这是我那条说 HTML 高手是屠龙术的微博的含义。
另一个角度上,前端技术这些年的变化,无论是 YUI 的发展、还是最近两三年兴起来的模块化开发理念、以及 Node.js 带来的前端工具变革、还有 Backbone 等类库背后的 MVX 的发展,这些都切实推动着前端往前发展,虽然很慢很慢,虽然短时间内很难直接影响业务价值,但我相信,这类工作的价值,也很大。
一类是直接促进业务发展,一类是缓慢带动人员的成长。这两类工作,都非常有价值。一个着力于现在,一个发力于未来。
看起来,路都很清楚。然而我们都是人不是神。
路在心里,更在脚下。