日期:2013-08-09  浏览次数:20598 次

我敢打赌,在中国,一半以上甚至更多的,以网站为主营业务的或者把网站很看重的公司,没有Web前端工程师和产品工程师这两个职位,甚至有些有点规模的公司也可能没有这个职位,当然,这不能包括像alibaba,sina,163这样的公司,只是指中小型公司而言。如果你们公司有,请给我留言通知我你们公司的规模和相关的信息。

做得好一点的公司,普通是项目经理/部门主管+投资方(项目管理中的投资方,实际上就是老板,反正就是决定你要做什么并给你钱的人)来承担产品工程师的角色,由美工来承担Web前端工程师的角色,特别是Web前端工程师,是最容易被忽略的角色。

企业想挤出利润,无非两个方面,一个是开源,另一个是节流。而这两个角色,恰恰可以用开源节流来比喻,产品工程师可以设计出更好的产品,这就是开源,Web前端开发工程师可以精简网页代码,提高用户访问速度,减小企业带宽上的收入,甚至可以减小服务器上的收入,这不是节流是什么?相比有些企业,以靠克扣员工工资来实现节流,这个节流要节省得多。

产品工程师

很多公司的流程基本上是这样的,由需求部门(一个或者多个,如果公司小,可能就是老板等几团体)提出需求,提交到项目经理或者IT部门主管,然后 IT部门主管依据需求进行开发,这两头可能要判断是做还是不做,判断的依据次要是开发难不难,麻烦不麻烦,很少去考虑合不合理。各位,看到什么问题没有,很多IT的部门主管,他只是一个管理者+项目经理的组合,或者干脆就是一个项目经理。需求部门交给我的需求,我按照要求按时按质做完就OK了。但时,需求部门往往是不懂互联网的,这种情况很多公司大量存在,对于一些老板本身就是做互联网的,或者较大的公司,这种情况会比较少。

问题就来了,一个不懂互联网的人,依据本人的喜好或者本人的判断来提出一些需求,有些需求可能很无理,有些时候可能是本人的喜好,有些时候可能是违背互联网的基本准绳的。而技术部门往往是只需没有技术难度就开发吧,反正我就按你要求做了,这个两头,没有一个懂互联网的人来把关。留意,懂互联网的人,不是懂技术的人,懂技术的人很多都是不懂互联网的。比如说我曾经见过有公司的老板要在网站的两边加一副对联,结果别人说像灵堂一样,也曾经有公司的老板要把网站做得像电视一样(不是视频网站,就是一个非常酷的过场动画这样子,想法是好的,可惜不适合大型网站,不利于访问也不利于SEO)。

这个时候一定要有一个产品工程师或者产品组来承担这个两头人,留意,还没有到美工的层面,他需求依据需求方的需求,再加上本人对互联网的了解,来设计这个产品。他要考虑到浏览器、带宽、用户习惯等等内容,以确定如何布置页面中的内容,确定功用之间的关联。在这个时候,如果产品工程师不懂技术,可以约请Web前端工程师和项目经理/部门主管参与,由于某些地方为了用户体验可能要使用到一些技术,需求由这些人来确定能否要行。

Web前端工程师

绝对于产品工程师,这个职位显得很加缺乏,由于产品工程师很多时候可以由项目经理或者部门主管兼任,但Web前端工程师这个职位,是很多公司都不注重的职位,很多公司是这样的,Html和CSS由美工担任,而Javascript由程序员担任。但问题是,很多美工对Html/CSS只能实现,至于规范也速度很少考虑,而程序员对Javascript就愈加了,从我接触过的程序员中,绝大多数人觉得Javascript是一个比较简单的言语,没什么前途,看不起这种言语,也认为Javascript只能实现一些交互而已。

所以实际上,很多企业是用两个懂一点点的人,来做这个重要的任务。如果让我来选择,我情愿放弃一个,甚至两个程序员,来换一个Web前端工程师。为什么要这么做?我认为,一个网站两个非常重要的地方,就是他的交互性与速度。很多程序员喜欢划分前台与后台,他们都认为前台不重要,只需后台功用完成了,前台不是很简单的事么!不!不是这样的,前台比后台重要,为什么这么说?你想想,一个用户是通过什么接触到你的网站的,是前台,是Web页面,而不是后台冷冰冰的程序。你有再强大的功用,如果用户操作起来很复杂,那么用户也会抛弃你的,除非用户别无选择,比如说工信部的备案,但问题是,如今互联网同质化越来越厉害,抄袭也变得风行,你真的有这么高的技术壁垒让其它公司没有办法做到和你一样的产品么?

留意,不要钻牛角尖,我并非说后台完全不重要,你要非说就算你前台再好,我后台一个死循环出不来,那不是也没戏,这是抬杠!除了大型网站和逻辑错误,如今多数网站并不存在后台影响速度的问题,或者说影响不是那么明显。前台所带来的问题,要比后台带的问题多得多,也容易处理得多,往往是可以花少量的代价来处理大问题的,可是往往很多企业情愿去花钱买带宽买服务器租CDN以提高速度,却不情愿请一个Web前端工程师来处理这个问题。同时,请留意,就算你服务器再快你的带宽再高,用户的带宽是不变的,如果你超出了用户带宽的阀值,你所做的一切将都是豪无意义的。

程序员往往可以实现Javascript的功用,但是由于Javascript的特殊性,他们很难以最优化的方式来开发Javascript代码,就可能就形成他们去网上Copy一段Javascript,然后只需实现效果即可,大量反复的甚至是有Bug的代码被使用到网站中,这些代码将会影响到用户的执行效率,降低用户体验。在HTML方面,这也是程序员的弱项,他们也觉得这个东西太简单,实现起来很容易,但是HTML和Javascript都是入门易深入难的东西,如何合理地组织Html+CSS,让浏览器更快更无效率地执行,这个也是需求很多年的经验的。

在用户体验方面,大公司可能用UE/UI等部门,而小公司的话,一定要有Web前端工程师,美工只是设计页面,很难照顾到用户体验这个层面,当然不排除有些美工曾经有这样的水平。实际上用户体验也和产品设计一样,都属于开源的一部分,由于如果用户体验好就能带来更多的用户,不是开源是什么。

最后,我想分析一下形成这两个职位被忽视的缘由,产品工程师一职,往往被项目经理或者部门主管+投资人代替了,普通来说,做到主管级的人对行业多多少少算比较了解,所以这个职位的缺失可能不会带来大问题,但也有时候会由于这个职位的缺失而导致项目失败的安例发生,这就要求主管同时也要有产品工程师的能力。

Web产端工程师是最容易被忽略也是最不好招聘的职位,究其缘由,是由于部门主管往往是做技术出身的,而技术人员常常会轻视或者忽视前台的任务,也正是这个缘由,形成了Web前端工程的任务比较低,所以很多人不情愿去做这个职位,我就常常看到新人如果让ta学习Html/CSS /Javascript,ta就会问你,什么时候我才可以真正编程啊,这样就构成了一个恶性循环,企业不注重,工资上不去,程序员也就不情愿学习了。然后,这个职位可以给公司省下非常高的费用,可以节省数个程序员,减少带宽及服务器。不信?试试看吧!