我有个读者,在互联网公司做基础技术的,自认为不爽,想申请调配到业务开发部门,征询我的意见。
懒人长久以来,在不同的基础研发部门工作。这个部门定位有点尴尬,搞技术的自然懂,但业务方不太理解。
比如说,我以前带中间件团队,业务方理解为,“哦,运维”。
后来带云计算团队,业务方理解为,“哦,运维”。
再后来我搞人工智能,业务方还是理解为,“哦,运维”。
对业务方来说,凡是没有直接从事业务开发的,都是运维。
这里所说的业务方,包括产品、运营、策划、市场等,他们直接面向用户,通常也对公司营收负责。
在不同风格的公司里,占主导地位的业务方也不一样。比如腾讯重产品,产品就代表业务方;阿里重运营,运营就是业务方;游戏研发公司重策划,策划就代表业务需求。
直接为业务方服务的,是业务研发团队,他们负责线上产品开发、运营活动支撑、策划方案落地等。
支撑业务研发团队的,是基础研发团队,他们构建底层的基础设施,保证业务开发的效率、质量与安全。
在一般的IT公司里,同为技术,业务研发部门与基础研发部门,两者地位截然不同,通常前者显著高于后者。
因为,业务方看到的是业务研发团队的努力和成就。比如今天要上线一个什么产品,那是业务研发团队开发出来的;要搞一项什么运营活动,也是业务研发团队在那里支撑。
而基础研发团队,做的都是背后的工作。比如分布式中间件、分布式存储、高可用数据库、弹性计算、负载均衡、监控,这些都是保障性工作,它们在技术体系里重要,但是不直接体现价值。
不能直接产生价值,在业务方眼里就是没有价值。这是大多数做基础技术的同学的悲哀。
基础研发团队,通常要比业务研发团队付出更多的学习精力,技术栈也要广而深得多。从操作系统内核、网络协议栈、计算与存储硬件,到分布式算法、高可用架构、高性能服务、云计算,甚至是人工智能,无所不涉猎。
然而,这改变不了什么,在业务导向的公司里(绝大多数公司是),基础技术地位不如人。
当然,业务技术也有自己的难处。他们要反复改需求,不断跟产品和运营扯皮,赶项目时加班加点,项目做得不成功,项目组随时被撤换,面临的压力比较大。
而基础技术要稳定一些。大多数做基础研发的同学,性格沉稳,不善于沟通。他们潜心于研究技术,对业务不关注,也不愿意扯皮。对他们来说,技术的成功就是个人最大的收益,外部奖励什么的反而不怎么care。
所以,业务研发与基础研发,前者在公司的地位高,但压力也大;后者容易被忽视,但技术成就高,相对稳定。如何选择,取决于个人性格,与形势需要吧。