作为一个前端开发工程师,你会怼人吗?

424 阅读12分钟

背景:

从业前端5年,总能遇到各种形形色色的人,有厉害啥都懂的人,有傻傻的啥都不明白的人,在程序行业内,便是写过代码与从来没写过代码的,软件从业者最大的需求方便是产品经理,或者第三方,或者直接对接老板了(以下统一为产品经理),对于写过代码的产品很少找到缺口怼,但是没写过代码的产品经理便是处处给坑,如果才能优雅的让产品经理知难而退,给自己争取到最大的利益与权益.

请把下面的 ‘怼’ 字眼当成褒义词哈(为自己争取利益方式)

以下将从一个产品的诞生到成熟上线的各个阶段来怼产品经理.

一:项目需求评审.

所谓项目需求评审,是最上层的老板或者第三方提出的直接需求,可以理解为一句话需求,比如说老板要做一个购物app.而产品经理是直接对接老板的,产品经理需要把所有老板想开发的需求写进去整理成一个文档,这个时候的需求可以理解为最原始的需求,也是页面上必须要实现的效果. 在评审的过程中,如果能做的咱们就去做,如果发现不好做的怎么办呢?

首先要问清楚,这个需求要实现成大概什么样的效果(一定要说大概,因为产品也不知道会做成什么效果),产品说了大概效果后,如果好实现便不再说话,如果不好实现,首先要把困难说明白,比如一个拖拽的需求,这里面的技术点有哪些,需要判断当前元素与待替换的元素的位置,是否要加动画效果,鼠标移出框外怎么办,里面的元素怎么处理,一定要说出一大堆待实现的功能,让产品知道这个功能很难,这样对于后面定开发时间有很大的帮助. 如果产品经理发现这个功能这么难,准备裁剪这个功能,那你的目的便达到了,如果产品经理说这个功能是一定要上的,那后面也有可周旋的余地了.

二:交互评审

交互评审是UI评审的前一步,大公司里一般都会有专业的交互工程师去写,但是也有很多公司产品经理加交互经理一个人全撸了.所谓交互,便是页面与用户的交流互动,怎么个交流互动便是交互干的活.交互评审会有大概的效果图,这个不像需求评审那么抽象,它非常直观的让你知道待实现的效果是什么样的,这里一旦定下来,后面的UI,前端页面,后端接口功能便可以开始工作了.

在这个地方如果碰到了实现不了或者难以实现的需求怎么办?

1.实现不了的需求

交互经理:这里有一个需求是这样的,需要实现手机app的主题跟随主人的心情来变化,比如主要开心的时候,给个红色,主要不开心的时候给个黑色主题.

这个时候心里默念(what the fuck, 但是不能说出来,咱要礼貌的回应),这个不可能实现的需求也要好好和交互说清楚

有时候交互经理的页面并不完全按照需求来写的..

我:我想问一下,我要怎么知道主要的心情呢?

交互经理:这是你们开发的事.

我:后端能知道主人的心情吗?

后端:获取不了

我:首先我不是不愿意做,能实现的功能我一定会去实现,只要市面上你能看到的功能,我都可以做尽量去实现,你这个功能市面上有哪款产品是有类似的功能的?如果有,麻烦发我看一下,如果说没有,你是觉得你是最聪明的,就只你想到这个功能吗?

交互经理:….. 好吧 我找找市面上有没有人实现过类似的功能.

2.难以实现的功能

交互经理:这里需要实现一个类似ps功能的页面,你可以参考一下 xxx.com….

这个页面打开后,确实能进行简单的图片处理,但是页面有所卡顿…

这个地方的话术便是,抛难点,给出大概开发时间,既然交互给出了网站,并且别人能实现,你就没理由说这个功能实现不了,最少要实现与此网站类似的效果.

我: 这个页面的功能点很多的,图片裁剪,图片颜色处理这一块功能要研究一下网站是怎么处理的,因为之前没有写过(没写过一定要照实说出来,不然后面坑的只是自己),图片上加文字,文字的处理,图片的上传,账号登陆等等,是否要分批上线功能? 这样写起来可能要花个半年多的时间来开发,不知道时间上老板是否能接受

交互经理: 不行,这时间太长了,没有那么多的时间让你来开发,这个功能比较着急.

我:那你删减功能分批上吧, 人家一个团队开发,你让我一个人一个月完成这个大工程,你是在搞笑吗?

交互经理:好吧,我和老板商量一下

在交互评审结束后,你便好开始搭建脚手架了,和UI工程师确认主题色,当然也要确定好UI的大概交付时间,根据时间来安排自己的任务.

三:UI评审

很多公司也叫视觉评审,也就是用户直接看到的页面,作为前端开发,UI效果确定之后,便必须要照着UI效果一样写出来.到这一步了其实便没什么好怼的了,因为UI身份其实是与你一致的,都是属于靠别人做事的,都是没有决定权要做什么需求的,UI也是能简单实现需求是最好的,因为我碰到画UI的很多都是妹子,我也很少为难她们,倒是经常看到交互与产品经理 给UI提意见,所以便是朋友.

UI工程师在这个阶段一般要经过两轮评审(交互也有可能会两轮评审),UI工程师大部分的功能都是照着交互来画的,当然也有一些UI总是想着创新,这个时候一定要清楚这个创新给自己带的工作量,及时的抛出这个工作点,为自己争取开发时间.

UI评审结束后,产品经理需要统计开发时间,可以告知产品经理等半天,把想好的时间给出来,一旦给出来后,便要严格的按照计划去执行,只能提前,不准延后..

四: 后端评审

后端前期是我们好兄弟,但是到后期处理不好也会是我们最大的 ‘仇人’. 后端评审与我们并没有过多的关系,一般是给后端领导看的,如果后端给出的设计不合理,领导也会给出一定的建议,让其优化

评审结束后,其中有一份是与前端对接的接口文档,这份文档是未来与后端联调的依据,一定要后端告知,在开发完成后有任何改动一定要和你说一下. 说归说,做不做便是后端的事了,为了保证自己的利益不受损失,在代码里也要标明与后端的联调依据(入参表明,url表明,返回的字段表明),这个时候ts就是一个很好用的东西了.

当碰到接口前后不一致的情况,不要冲动,如果你确定是后端变动了没和你说,第一次,第二次可以让其改正,下次改了一定和你说一下,第三次就不需要再说了 等上次提bug的时候,把锅甩出来,让后端知道人间险恶.

碰到一个功能前端能开发 后端也能开发怎么办?

千万别冲动,如果你想在公司长期混下去,一定要好好思考一下未来的发展.

第一,如果这个事前后端都能写,怎么办?

我们还是要根据不同的情况来做不同处理,我记得我在海康的时候,确实有一个功能是实现图片的批量检测(比如人脸检测),这个功能在之前有一个检测一张图片的接口,但是没有批量检测的功能,于是后端便让我在前端无限次调用这个接口.后面分析了这个功能,后端在检验图片的时候,需要把图片先保存到本地,这个会造成服务器的压力,由于服务器跑了很多任务,很容易造成奔溃,于是便让我在前端做检测.

如果这个事在后端做的话,那前端的活就比较少了,只需要把所有图片放到一个列表里给后端就可以了,后面的事也可以不管,后端会奔溃,其实如果数据量大的话,前端浏览器也容易奔溃,后面便定了一个规则,一次性最多检验1000张图片,但是当时想的是让自己能力提升,多写一些功能,可以让自己能力提升一些,于是便把这个活接上了,并评估了时间(大概2倍左右的时间),有时间咋啥都活都可以接.

第二,如果这个事只有后端能写,前端写不了,但是后端又要让前端来写怎么办?

首先,有这种情况说明这个后端不咋地,但是我们不能表现出来,一定要委婉的说一下,大部分只有后端能写的功能,有几个非常简单评测标准,就是换浏览器的时候是否需要展示相同的页面,如果要则只能后端来写,如果不需要,则前端也能写,如果说有很多逻辑会造成计算麻烦,导致浏览器奔溃的—–后端处理,如果需要操作数据库—-后端处理.

五:开始开发-开发结束

在我这几年的工作中,严格按照UI评审后的开发时间来开发,本着只提前不延后的准则去写项目的,当然也会有碰到中间加需求(没办法延后的情况),或者后端没开发完被迫延后的情况.如果提前了,便可以抽出时间来学习其它知识.

碰到没办法延后怎么怼?

产品经理: 你怎么回事?怎么还没有开发完?

瞪了他一眼

我:你自己中间加新需求了,这个需求需要花时间来写的.

产品经理: … 那你什么大概需要花多少时间来完成?

一般对于这种产品经理我会把时间线拉长

我:要多花3天的时间.

产品经理:…. 为什么要花这么多天时间?

这个时候一定要提前想好这个功能点都涉及到了哪些?

我:这个功能点的开发就需要1天多了,后面还需要联调,测试环境通过,最后上线,没有你想的这么简单,这中间也不清楚会出现什么异常问题,最主要的是你这个功能是中间加进来的,我之前写的代码有一部分是没办法适应你这个新功能,后面还要找交互与UI确定一下我这样实现是否合适,这些都是需要时间的

产品经理: …. 那我去找一下你领导

我:那你去吧.

前端领导: 这个功能不需要3天吧?

我:要的,这个功能是中间加上的,有些结构我要改一下,还有通用组件也要改一下,我真是太难了!

前端领导:2天吧 后天早上上线.

我:做不了,最快后天下午

前端领导:后天上午上线.

我:那好吧,我尽量,到时候完不成我也没办法

前端领导:为什么?

我:这是你定的时间,我只能保证我会尽量去做,但是我不保证那个时间点上线,后面如果产品问起来怎么还没有上线,我会说这个时间截点不是我定的,你找我领导去.

最后妥协后天下午 提前半天上线.

一般大公司,在需求确定之后一般是不会轻易加功能的,要加功能的话,就等二期,因为真的会很浪费时间.

六:测试

功能开发完后,需要自测与提交专业的测试人员测试功能点.

在这个阶段,与测试工程师会有很多沟通交流,测试会无所不用其极的测试你的程序是否有问题,比如UI上的差异,某个页面少上圆角,页面点不动了,颜色对不上等等.

我对于测试的态度,会从最开始的小惊喜到后面的小讨厌,惊喜的是 这也能看出来不一样? 这居然有问题? 讨厌的是,这明明是正常的,怎么是bug了,影响我的kpi,果断not a bug….

总结:

相信做开发的人都会碰到一些奇葩,让你去做一些不好实现,或者不可能实现效果的功能.一定要勇敢的怼回去,毕竟都是打工的,凭什么把任务难点都加在我这边,如果是老板的话,语气一定要和谐一点.

最后最重要的一点,一定要把工作与生活分开,平时的互怼仅仅是针对工作上的事,千万别在私下结怨,这也是我的工作准则,包括产品经理啊,交互工程师,UI工程师,测试工程师,后端工程师,与他们混的都还不错…

转自个人博客:www.xiaye0.com/?p=100