众所周知互联网公司当中充满了套路,什么把年终奖摊平到每个月跟你说薪水的,什么把年终的月份说得特别多,等你发现已经来不及的。明明跟你说的是A岗位结果让你去做B事情的,这些事情数不胜数,简直都不叫个事。要说其中最让人不能忍受的,我个人觉得还是无休无止的杂活。
虽然大家都没有放在明面上说,但其实我个人认为互联网圈子里是有一个杂活文化的。其实也不是互联网,各行各业都差不多,总有些类似端茶递水谁都不愿意但是总得有人做的活,这些活就被称为杂活。当我们作为新人刚入职的时候,尤其是校招生,几乎很难躲过干杂活的厄运。
我简单列举下我自己干过的杂活,当年我还是后端工程师的时候,接收过别人的烂系统,帮别人修bug找bug。找了一堆bug,结果被老板认为是我写的。除此之外,还读过别人一个函数就长达三四千行的又臭又长的代码。要说这些也都不叫事,最让我不能接受的还是无休无止的增删改查,和线上on call。明明是别人系统的问题,大半夜的有人喊你起床。这种滋味真的是一言难尽。
后来转了算法之后,也没好多少。做过一些边角的需求,整理过好几百个的特征,因为老板要看一个数据,写过上千行的SQL。当然也对着同一个模型一遍又一遍地调参,加一些用脚指头想想就知道没有用的特征。我后来又问了一些朋友,这并不是我一个人倒霉,其他岗位的朋友同学也都有类似的经历。杂活好似就是一个魔咒,又像是一个考验,没有人能够幸免。
我甚至有一个朋友把自己挂在某招聘软件里的岗位写成了打杂工程师。
说起打杂,说起那些谁都不愿意干的枯燥无味的事情,大家都会有一种怨气。这种活付出多回报少,因此而不满。其实就我的经历而言,我倒觉得年终奖、晋升机会、团队中的地位这些因素看起来各个举足轻重,但实际上并不是打杂的最大问题。长时间打杂的最大问题其实是会让人陷入一种原地踏步甚至是倒退的恶性循环。
举个例子,今天老板有需要让你跑一个SQL做个数据,你照做了。你原以为这个只是权宜之计,结果发现后面每天都有这样的任务等着你,你成了一个莫得感情写SQL的工具人。SQL我们都知道,里面的技术要点并不多,做来做去也就那么一点。不出两个礼拜,就可以累计丰富的SQL运行经验。那么两个礼拜之后,再写SQL还会有热情吗?
一个人是很难把自己没有热情的事情做好的,如果是厌恶的事情就更加做不好了。于是结果就是,你不开心地做着你不喜欢的工作,然后也很难尽你的全力做出你自己都满意的结果。你自己都不满意的结果,别人当然是更加难满意了。于是你的老板上级也会觉得你不行,连这么一点简单的事情都不能做得很好。他们才不会去想你喜不喜欢做这些,他们的安排有没有问题。人都是自恋的,大多数人在大多数情况下,他们是不会反思自己的问题的。
于是你做的事情越来越不重要,你自己也越来越不喜欢,你觉得在团队中的位置越来越不重要。直到你再也忍受不了一走了之,这就是恶性循环。
有一个前辈将它称为工程师的瓶颈,这是很多人到了一定职位很难再向上进步的重要原因。这种恶性循环的力量非常大,一旦陷入其中脱身非常难。最好、最快的办法当然是换一个环境,但是换环境并不能解决所有问题,也不是所有人都有条件可以更换环境,那么假如我们遇到这种情况应该怎么办呢?
首先我们来思考一个问题,这个恶性循环的第一次闭环是怎么构成的?往往是因为老板交给了你一个不太重要的事情,你没有做到他满意,达到他的预期。并且他也没有告诉你,而是采用下次给你安排更简单更不重要的活来解决你达不到预期的问题。
从这点上来说,如果我们想要摆脱恶性循环,那么我们要做的是扭转上级的这个看法,把他给我们的任务做得非常出色,以此来让他给我们安排更好的机会。但其实这条路是很难走通的,原因也非常简单。一个是人心的成见很难推翻,另外一个是上级也并不会在杂活上投入很多关注,你做得非常好,也很难被关注到。
杂活做的再好也是杂活,做得好也拿不到好绩效,争取不到晋升的机会的。所以先摆正认知,不要和自己较劲。不要觉得我已经把手上的事情做得这么好了,怎么老板还是不认可我?于是心态失衡,从此破罐子破摔。这样的事情我也经历过,当了好一阵子咸鱼。
所以首先心态要摆正,我们要突破这种循环,最重要的事情不是老老实实地手上的杂活干好,而是要在其他地方寻找机会。
要找机会最好的当然是从手头的事情下手,这其实和刚才说的并不矛盾。因为很多看起来很杂的事情的背后藏着很多机会,只是因为大家都回避它,所以没有被发掘出来。
举一个例子,之前有一次团队里让一个新人分析数据。结果新人不仅是照着要求完成了分析,而是对里面的内容进行了详细的思考和论证。这一论证就发现了很大的问题,我们的数据源头以及处理的逻辑可能藏着bug。于是这条线牵扯出了一系列重要的任务,这些事情他当然理所应当地参与了其中。虽然名义上还是有其他更资深的人牵头,但是我们都知道实际上这个新人已经成了这个事情的核心。后来果不其然,没过多久新人的地位大大提升,虽然职位没变,但是在我们心里他晋升已经是板上钉钉的事了。
我也做过这种杂活,当我把老板要的数据做出来之后,我顶多再核对一下正确性,保证不至于数据有误。或者是再多做一张图表,也就到头了。我从来没有想过,原来之前的数据流程是可能有错误的,我手上的数据可能是有问题的。或者是其中藏着一些特殊的线索,需要我去思考和发现的。因为我眼里看到的只有杂活本身,它背后的这些可能性从来不在我的视野里。从那之后,我就多了个心眼,凡事都会试着换个角度思考,有的时候还真的能有发现。
当然凡事无绝对,并不是所有的杂活当中都藏着机会,有些杂活就只是杂活而已。至少我们可以试着换个角度思考一下,说不定就能有所发现呢?
如果我们从自己内部的工作当中找不到挖掘的点,那么我们就只能从外部获取机会了。想要获取机会,只有一种方式就是争取,但是争取的方式可以不一样。既可以明显地争取,也可以委婉地表现。刷存在感就是一种委婉的表现方式,用各种方式告诉老板你很厉害,让他重新审视你。
刷存在感好像是一个贬义词,其实在职场当中这是一个中性词,我们操作的好的话也可以是褒义词。职场当中有很多既可以刷存在感又可以给别人留下好印象的方法,举个很简单的例子就是写文档。我亲自测试过,非常非常管用。因为工程师们普遍不愿意写文档,要写也是被迫的随便写写,很少有人能把文档写好写清楚。你完全可以做植树的前人,把你负责的这一块或者是大家共用的某一个领域的文档写清楚。
其实大家都需要文档,只是大家都懒得写。这样你写好了文档,大家看到文档肯定首先想起你。以后组里来新人了,或者是要出去宣传介绍团队了,老板要向他的老板展示或者是汇报某些工作了,可能都会用到你的文档。如果你有能力,你不仅可以写自己的文档,还可以把其他领域的文档也健全起来,很多东西你写文档的过程就是理解的过程。你写过一遍文档之后,可能比当前的负责人更加清楚。一来二去之下,很快就可以帮助你建立起团队里的口碑以及刷到存在感,并且还不会引起反感,因为你在帮助整个团队贡献。
除了写文档之外,还有一些其他的方式,比如做技术分享,在内部写写技术博客等等,也都是可以的。不过我本人还是觉得写文档效果最好。
既然自己的工作当中没什么营养,其中也挖不出什么价值的话,我们还可以从上下游当中入手。如果上下游都在自己团队内部的话,可以做的就很多了。比如你可以研究一下他们的代码,学习一下其中的设计以及架构。自己研究学习完了还可以找负责的同学聊一聊你的理解,请教一些问题。
一来二去混熟了之后,你可以直接说你对他们的系统非常感兴趣,如果可以的话,希望参与其中帮帮忙打打下手。只要你能参与其中,也许刚开始的时候名不正言不顺。但是没关系,只要多参与几次,那么你不是成员也变成成员了。如果后面团队还有新人入职,那么你找老板沟通沟通,把之前负责的杂活甩掉或者是分担出去一些,也是非常自然的事情。
如果你的上下游不是一个团队的,其实也差不太多,可以找他们聊聊看,了解一下情况。比如他们的痛点,他们的诉求,以及他们希望你们可以完成但是没有完成的事情。只要你想清楚了、聊清楚了,完全可以找到老板把这档子事情揽过来做。和上面刷存在感的方法比起来,这种方法更加主动,难度也更大,很多人会因为脸皮的限制不敢行动,或者是不知道如何行动。但是这种方法的见效速度比较快,可能几个月到半年就可以完成逆转。
当然最后的办法就是直接找到老板说出你的不满,有些老板会在意下属的想法,愿意帮助你改变给你机会。有些老板可能会糊弄你,给你画饼把你安抚下来。就我个人的经验而言,成功率不是非常高,不过也值得一试。
其实身处其中,我们怎么选都不容易。但不管怎么选怎么做,可以肯定的一点是都需要我们付出额外的努力,想着一些骚操作就可以升职加薪的那是不可能的。毕竟即使真的有人赏识你、器重你给你机会,你也要有能力把握住,不是吗?