大家好,之前写过一篇关于职场当中打杂文化的文章,反响不错。最近刚好有些小伙伴在准备校招,来请教我招聘信息当中的“做业务”究竟是什么意思。所以我就写下了本文,把这里面的门道给大家说道说道。
我们谈到业务这个词,大家联想得最多的应该是销售或者是售后服务这类岗位。但实际上在互联网公司也有技术和业务的区别。面试的时候,HR也经常拿这个说事:我们是技术驱动的公司,或者是面向技术的岗位。我们都明白她的言下之意是我们这个岗位很金贵的,你要好好把握。
但为什么做技术就金贵、做业务的好像就很弱呢?要想说明白这个问题,就得先说清楚究竟什么是互联网公司当中的业务。
业务和技术
究竟什么是做业务?对于这个问题老实说并没有一个标准回答,我感觉大家都是靠自己猜测。我个人对这个问题的理解是凡是产品经理让你去做的事情,就是业务。凡是其他程序员让你做的事情,往往就是技术。
其实很好理解,产品经理找我们一般都是什么事?一般都是让我们实现他们的需求,比如做一版新功能,比如做一份分析数据,比如解决一个用户问题等等。这些事情往往是直接或者是间接面向客户或者是用户的,比如做了新功能,用户就可以做之前做不到的事。比如客户对某些地方不满意,我们针对性地做出修改。这些为了达成客户需求或者是让客户更加满意的事情,就是业务。
做技术恰恰相反,不是为了让某些人满意,而是为了解决某些技术问题或者是系统问题。比如说想办法提升服务器响应的速度,想办法提供机器的吞吐量,想办法存储更大规模的数据,想办法在大规模流量下服务器不宕机等等。这些东西用户往往直观感受不明显,但是如果不做的话,要么影响公司后续发展,要么制造出更大的麻烦。这些事情的源头往往是其他的程序员,可以是架构师也可以是上下游协作的团队。很少会有产品经理找到程序员做技术升级或者是改造的。
利与弊
业务
说到做业务大家更关注的可能都是做业务的缺点,比如说技术含量比较低,很多事情比较杂。如果是开发的话,就是今天这里加一个功能,明天那里加一个按钮,简称CRUD(增删改查)。算法的话也差不多,这里做一个模型预测一下用户的喜好,那里做个模型预测一下用户留存。甚至有可能模型都用不上,跑一些SQL做做统计就满足要求了。
你说你想要用一些高端的做法,十有八九会被产品经理或者是运营小姐姐打回来。我们只要能用就行了,不追求技术,越快越好。
短时间内可能还好,时间长了会觉得非常无聊,不知道这样的日子何时是个头。工作好像都是这些枯燥琐碎的东西,技术领域很久都没有成长。你说学一点厉害一点前沿一点的技术吧,学了也派不上用场。所以很多工程师的热情都在做业务里消磨了,感觉看不到出路,也获得不了成长。因此很多人听到做业务这三个字就头疼,非常地抗拒,这些也都是非常非常正常的。
我一开始的时候也是这么觉得的,觉得做业务很没劲,整天和产品经理、运营什么的扯皮。并且压力也很大,有时候系统出问题了还要半夜起来看。感觉自己就是一个莫得感情的coding机器。但后来我现在回过头来看,对问题的看法发生了一点变化,主要是我看到了做业务的好处,认知更全面了。
不知道大家有没有听说过在一些公司当中,有一个叫做CEO大奖的东西。也就是CEO每年会选择一个他认为做得最出色的团队颁发这个奖项。一旦获得这个奖项,那么整个团队的绩效和年终奖都是非常非常可观的。听说当年王者荣耀团队拿了CEO大奖,团队当中的每个人当年光交税就上百万。
我观察过几个公司的CEO大奖,几乎无一例外都是业务团队。比如蚂蚁金服当中我知道拿过这个奖的团队有两个,一个是蚂蚁森林,另外一个是小程序,很明显,这两个都是做业务的团队。
从我们个人而言,我们可能更加看重个人能力的提升和技术成长。但是站在公司决策者和管理者的角度,他们显然更加看重的是公司的发展和壮大。对于互联网公司来说,发展和壮大主要体现在业务上,而不是技术上。技术再好不能赚钱,最终公司还是得倒闭,这样的例子也屡见不鲜。
所以做业务不是主要的,主要的是做的什么业务。如果是在核心的业务团队,无论是团队和个人的绩效还是晋升的机会,都要比其他的团队好不少。也更容易引起老板的注意和赏识,获得晋升往上走的机会。
另外一点是做业务很锻炼软实力,比如和上下游和产品经理和运营等等的沟通,再比如可能经常需要向老板和leader汇报业务的情况。并且在我们做业务的过程当中,也培养了一个我们对业务场景的理解,这对我们是非常重要的。随便拿一个广告业务举例,广告的竞价机制是如何运行的?碰到商家刷点击率怎么设计反作弊机制?CTR和CR有什么区别?在不同的场景下的广告有什么区别?
对这些问题的理解,虽然并不是直接的技术能力,但是对于我们的跳槽以及就业一样非常有用。这也是为什么很多人跳槽的时候不会换技术方向的原因,之前做广告的,换了家公司往往还是会选择做广告,就是因为有这些业务理解上的积累。
技术
说完了业务再来说是技术,其实互联网公司是很少有纯技术团队的。我想来想去可能也就只有阿里云或者是中间件这样的团队,除此之外还有一些像是人工智能实验室或者是各种实验室。我之前一度觉得叫xx实验室的部门听起来就很高大上,进去了一定光环加身。
后来我了解了一下才知道,根本不是这么回事。各种实验室里的项目往往离业务比较远,也就是说往往找不到应用场景。没有应用场景也就意味着不能给公司带来盈利,不能给公司带来营收基本上也就约等于没有太大价值。有些大公司可能还好,愿意养一拨人钻研技术,给公司的未来铺路。但即使如此风险也是很大的,一旦公司业绩不好,第一个被裁的技术团队可能就是这些。
还有一个隐藏的因素是技术方向其实会制约选择,什么意思呢?很简单,比如你是做中间件的。我们都知道中间件是非常有技术含量的岗位,但问题是中间件岗位只有一些大公司才有,小公司都用开源的中间件,基本上不会自己开发的。也就是说你空学了一身屠龙术,但是龙只有几家大公司才有,当你想跳槽的时候,你的选择会被制约。而做业务就不存在这个问题,即使做的业务很小众,只要自身技术素养OK,就不会在跳槽的时候成为问题。
做技术的优点大家应该不用我多说了,大家猜也能猜到。比较单纯,不用和产品、运营以及各路人马打交道,可以安心地写代码,学技术。也有充足的技术成长,提升自己的实力等等。
打杂
除了做业务和做技术之外,还有一种就是打杂。也就是既做不到核心业务,也接触不到核心技术,只能在边缘的团队做着边缘的事情,这也是大多数工程师的常态。老实讲这非常尴尬,我也是经历过的,深有体会。
在我们不能改变现状的时候,如果盯着现状一直看,只会让自己更加痛苦。这个时候除了想各种办法展现自己的能力,让自己脱颖而出受到重用之外,还有一个比较好的方法就是要学会自娱自乐,自己给自己提需求。比如说,老板不是不给我们有技术含量的活(也可能老板自己也没有),怎么办?那我们能不能自己做一些有技术含量的事情?
我们大可以当一个杠精,挑一挑当前系统当中的问题,然后想办法把它解决了,或者优化了。觉得哪个系统或者是工具不好用,可以自己抽空做一个更好用的工具出来。如果你有权限访问公司的一些闲置的机器,你也完全可以在上面部署一下各种分布式的集群框架,当做自己的一个实验装置。只有人规定不能用公司的资源盈利,可没有人说不能用公司的资源提升自己,对吗?
我之前第一份工作当中,在leader的鼓励下做了很多闲着蛋疼的技术改造。比如把一些延迟长的同步请求改成了异步请求,比如设计了一个状态机来维护某个活动系统的状态。再比如学了一下Python爬虫帮助运营小姐姐去爬取图片,等等等等。这些事情说出来好像一文不值,但是我们实际去做了,我们就能学到东西,就能迎来成长。短短半年多以后,我就从一个连Java都写不溜的小菜鸡,成长为一个合格的后端工程师了,还因此拿到阿里巴巴搜索BU的offer。
虽然最终选择转行做了算法,但是从那以后我就养成了优化系统的习惯,看到不如意的代码,只要我有条件,总会试着去优化一下。想到了什么可以提升效率的工具,也会抽空去做一做,既能满足自己写代码的需求,又可以利人利己,何乐而不为呢?
更重要的是,我们的成长和付出老板们并不是一无所知,他们也是看在眼里的。说不定哪天有了机会就落到你头上了。
- END -