我从做业务到做基础架构的心路历程

程序员鱼皮

共 2825字,需浏览 6分钟

 · 2021-10-16

以下是鱼皮的一位朋友(闪客)最近找工作的故事 ↓


这次找工作,找的是基础架构方向的岗位,而我以前的五年都是做业务的。为了方便起见,我就把基础架构简称为鸡架了,这也是业内常说的一种调侃方式。


从面试的角度讲,做业务和做鸡架问的问题都一样,也不会因为业务出身就不适合做鸡架,这点大家放心,我用七十多场面试已经帮大家证明了这一点。


所以今天主要就是聊聊我是咋想的,为什么我要换方向。而关于鸡架到底做什么,和做业务比怎么样,这个还是等我再工作一段时间了解了解,说出来更靠谱些。



做业务的特点



为什么选择去做鸡架,首先聊聊做业务的特点。我这五年做业务的项目应该有将近十个了,大部分都是做着做着就没后文了,连上线都没上过,能上线也是无法直接让 c 端用户体验到的产品。


所以在小米做的信息流产品反而是最让我有成就感的,和别人解释自己做了什么的时候,直接说任何一款小米手机上滑就能看到了。比较直观,而且日活也比较高,做业务的,不就希望自己的项目高并发,并且直接能看到么。


但即使是这么有成就感的产品,做的过程中依然是非常痛苦,慢慢到了让我很厌烦的程度。


首先就是迭代快。好多功能都是上午说下午就要,或者上周说下周就要发版。至于你的代码结构会不会很乱,是不是有很多基础设施还没有搭建好,着急上线会不会有遗留的风险,老板们不太 care。我的老板就曾说过,测试就是阻碍我们业务发展的因素,没有测试卡着我们好多功能早就上了。


其次就是技术的话语权不高。因为产品不懂技术,他们不会从技术架构、性能优化、可扩展性角度来考虑需求。开发们只能在不影响正常迭代的前提下,考虑一些技术方面的问题,所以优先级在所有事情上是最低的。


我还记得我们老板曾经下午两点就要改个东西上线给大老板看,但当时还有好多问题没解决,老板说带着问题先上线,之后再想办法。基本上只要前端页面展示上符合预期,后面代码是一坨屎都没关系,但屎山代码往往到后面就越来越腐败了,直到改一个小小需求都要好几天才能改完时,才能引起业务方的重视。


还有一点就是大家常吐槽的做业务整天 curd 没有技术积累。但这一点我现在持保留意见,因为我发现只要分工足够细,其实鸡架也是 curd 和调包侠。每个团队只需要在自己的那一分的很细的层上,为上层提供服务,并调用下层提供的接口即可,最终都会沦为 curd boy。如果你的团队承担了非常复杂的,分层很多的事情,那就说明你们该拆成两个团队了。



个人喜好和优势



我发现,我做的虽然是业务,但是我所关心和感兴趣的确是基础设施层面的事情,这点我想很多程序员都如此。


基础设施层包括,rpc,负载均衡,分布式算法,弹性计算这些,我们以造轮子为荣,以深入底层原理为追求,甚至在面试中考业务程序员的也是基础设施层面的问题,并且是深入到原理的。


不仅仅是做业务的过程中,我工作之余,也是喜欢底层原理的东西多一些,越是通用的,业务无关的,中台性质的知识,我越是感兴趣。那我就想,既然这样,为什么我不直接投入鸡架岗去发展呢?


在鸡架岗,虽然可能也是 curd,但可以光明正大地学习底层原理,因为这在鸡架部门是正事,而在业务部门可能是闲暇之余才可以做的事情。这点我可以肯定,起码在我目前所在的鸡架岗位是这样的。那对于我这种工作时老喜欢摸鱼学技术的仔来说,不就一举两得了么。



未来的长期考虑



就我这样的性格,基本很难在业务上有长远的发展,做业务负责人,只能走技术路线,争取当个技术大牛了。


我很难看清一个业务未来会发展成什么样子,因为涉及的因素太多,包括市场的因素,人的因素,以及公司营收方面的因素。但对于看清一个技术,虽然现在还不具备这样的视野,但我还是有信心的。


做自己喜欢且擅长的事情才能走的更远,我最不后悔的事情就是大学毕业后从经济学专业转行从事计算机相关的岗位,现在也算走出一条自己的路了,而且很快乐。


计算机这个大方向定了,接下来就是更细分方向的选择了,那我觉得现在既然我这么不喜欢做技术,而又这么向往做鸡架,不妨试一试,即便仍然不是我想要的,也不至于因为从来没有尝试过而后悔。


而自从去年,我工作之余更多的时间就是用来学习技术,然后整理成文章发布。写文章与学习技术,两者相互促进,而不再像之前一样和工作是对立关系,岂不是很美好的一件事么?这个我还没有证实,我希望事情可以往这个方向发展吧。



给同样想转做鸡架的人的建议



如果做业务的你和我的感受是一样的,不妨尝试换换口味,没什么大不了的。


做鸡架需要你真的喜欢钻研,喜欢攻坚克难,喜欢做更为通用的技术,不然你可能会很痛苦。因为做业务起码你可以对别人指着一个产品说,看这就是我做的,做鸡架很可能你都说不清楚你在干什么,也没有一个看得见摸得着的东西,所以如果不是真心喜欢闷头研究技术,可能成就感不高。


再有,做业务大多数是产品提出需求,然后你去实现,跟着产品的要求就好了,做好了产品和用户也会对你鼓掌称赞。可是做鸡架很可能是开发人员提出需求,甚至是需要你自己给自己提出需求。所以如果是一款你不太认可的技术,很可能你会做着很迷茫。


但好处就是,由开发或者你自己提出的需求,更多是技术驱动的,就不会存在诸如根据手机壳颜色改变屏幕背景色这样的无厘头需求了。不过开发们提的需求,有时候可能他们会给你提出解决方案,开发们提的要求也会比较刁钻,这会有一些压力在。


而且做鸡架要准备好沦为高级客服天天 oncall 的命运,回答一些重复的低级的问题,因为毕竟你做通用的底层技术支持,是不能够出问题的,服务可靠性要求非常高,业务方有问题必须及时响应。这也同样可以促进你把服务做好,把文档写好,自动化和可视化做到可以一键定位问题,否则你可能陷入无休止客服的恶性循环了。


也正是因为这些方面的困扰,使得鸡架比较重视代码质量,服务稳定性,因为这些地基如果不稳,就是在增加工作量,增加成本。别人如果不用你服务了也是一种损失。这种重视就使得鸡架岗的技术氛围的确会更纯粹一些,有些业务部门可能不太关心的技术问题,在鸡架部门就变得尤为重要。


而且,鸡架部比较在乎影响力输出,比如发文章,申请专利,去业务部门串讲等。这些不仅仅会被支持,有时候还要当成工作去做,作为影响力专项写进你的 okr 里。那对于喜欢钻研和分享的同学来说,正大光明地去做这些事,肯定是好事,工作和技术积累就不会是完全冲突的了。


最后,不论做业务还是做鸡架,通通逃不出 curd 的魔爪,大家认识到自己擅长且喜欢的方向,并为之付出努力,不将就,就够了!


往期推荐

不敢想,做个博客竟如此简单!

读者 | 想做个高质量视频小程序

读者 | 做了个博客,看看咋样

用了这个 Java 小工具,我废了

精品 IDEA 插件大汇总!值得收藏

浏览 29
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报