代码与工程之外·26代码与工程之外【2】从CRUD到商业杠杆:重新理解94
凌晨一点的办公室,32岁的嘉尔工程师老程正在重启已经失败了八次的服务。他想起白天面试时,那位对分布式一致性、哈希算法侃侃而谈的候选人,突然意识到自己也曾像他一样,热衷于各种各样高大上的技术。然而如今在自己维护的陈旧后台管理系统中,每一个CRUD接口需求的完成,每一个button位置的调整,可能永远都用不上这些酷炫的技术。除了少数GitHub trending上的技术弄潮儿们,能够不断创造令人目眩的技术项目,现实中,90%以上的程序员总是在重复写的CRUD类的简单机械需求,满足一个又一个紧急线上(写创)的功能,交付的和他人比较的薪资,但始终无法找到充足的意义和价值。那些曾经在LeetCode上trouble(刷题)的年轻人们,可能还未曾意识到自己如何在专门的商业机器中做了一颗螺丝钉,为企业财报中的某些数字作出贡献。
这说明了一个冰冷的真相:在市场化的商业事态中,大部分普通程序员本质上仅仅是企业盈利链条上的价值导体。对于他们以及他们的雇主来说,技术本质上是手段,而非目的。程序员的核心价值是技术吗?作为手段而非目的的技术相对不重要吗?技术的价值又从哪里得来?让我为你聊聊我的看法。
hi大家好,我是瓦连城。在正式开始之前,我想说明一下为什么要聊这些话题。代码和编程之外系列,源于我对自身以及程序员群体的观察思考得来。我们大部分人,包括我,可能陷于各种酷炫高大上技术的盲目崇拜中,可能陷于面向薪资和跳槽编程中的功利急躁中,可能陷于应接不暇的繁重工作中,而对于场景、技术本质、价值、动机、追求等一些更加不可见、真正决定脚下的路能走多远的主题,却未能深入了解。我希望通过我的表达来帮助大家理清这些常被忽视的东西。如果能对这些东西有足够的理解,可能会帮助大家走得更快更远。当然,这些也都只是我个人的观点,不代表绝对正确。如果你有不同的意见,那么肯定也有对应(讨论)的理由,欢迎大家一起讨论。
科斯在《企业的本质》中早已揭示,企业存在的意义之一在于降低交易成本和费用。互联网公司的出现进一步证明了这一理念。当某互联网大厂每年支付100万薪资给分布式系统专家时,本质上可能是在购买其提高交易效率、降低一系统崩溃风险的能力。这个岗位的ROI必须高于带来的交易效率增长收益以及可能的当机损失。而当这样的提升空间达到瓶颈,以及宕机风险几乎不再存在时,可能因为各种各样的原因,如云服务、AI等新技术的出现,那么这位分布式系统专家对大厂的价值也就不再那么重要了。
从更广泛的意义上来讲,任何现代市场经济中的工作岗位,要么开源直接创造利润,要么节流控制成本。软件工程师,或者说程序员,自然也无法脱离这个范畴。只不过在分工和链条日益复杂的趋势下,我们所做的工作的价值,从手下的键盘传导到终端利润的路径也变得越来越间接和复杂化,以至于很多人无法意识和感受到,这也是很多人缺乏价值感的原因之一。
而软件工程师岗位相较于其他大部分传统岗位,一个比较特殊的地方在于能够通过技术杠杆来帮助企业放大盈利效率。拿普通的建筑工人来举例,在不掌握特殊知识技能的前提下,他们给企业带来的收益是线性的,一个人产出一个单位的劳动收益,十个人产出十个单位的劳动收益。而程序员因为掌握技术,有时能够出现一个人产出三个单位劳动的收益,这是依赖软件、信息自动化技术本身带来的技术杠杆。这也是为何目前互联网行业的从业者工资较高的原因之一。而多位高质量程序员组成的协作良好的团队,能够进一步带来成熟效应,甚至能够出现十个人产出1000乃至1万单位的收益,OpenAI dev(研发)团队都是这样的案例。这也是为何管理程序员的管理人员能够拿到更多薪资的原因之一。
由此可见,程序员的核心价值不仅仅是技术,但方方面面又离不开技术。技术为创收的业务场景带来杠杆作用,程序员的价值函数可量化为价值等于技术杠杆率乘业务价值密度的总和。当某电商平台对实时推荐算法进行一轮优化后,转化率提升0.5%。转化率提升0.5%
看似微小,却因为其千亿GMV技术产生5亿增量的价值,这正是技术杠杆的成熟放大效应。那么我们产出的价值,到底是如何通过企业传导到利润终端呢?经常有人在网上讨论,关于技术重要还是业务重要的问题。这个问题在我看来没有标准答案,因为缺失了很多上下文背景信息,在不同的场景下也有不同的解答。其实更多时候,我们只需要厘清技术业务盈利的链条传导关系,那么这个问题的答案自然就会浮现出来。
技术价值传导链的核心法则可以用一个公式表达:技术价值等于技术稀缺性乘业务适配度乘泡沫溢价率。技术稀缺性,所谓的技术稀缺性相信是最好理解的。决定稀缺的一方面是技术本身的先进度,越先进的技术就越稀缺。先进性的技术能够提升效率,比如电机对比蒸汽机,前者的效率可能是后者的数倍乃至数十倍。放到我们熟悉的IT技术范畴内,就是前端框架对比手写HTML、容器化对比手动部署、AI自动化对比人工等等。
技术先进性意味着相对平均市场水平的效率提升,如果企业能够引入这种先进性,那自然就能获取到更高的利润、更大范围的市场,这是技术最本质也最直观的价值。此外,只要这种技术先进性能够辐射的范围足够广,匹配什么业务甚至也就不再重要了。如通用性的互联网和AI技术,可以说他们在过去的几十年里重塑了各个产业。曾经高并发分布式,作为互联网应对大规模增长的刚需技术,又有一定的技术深度和难度,逐渐成为了技术稀缺性的一个符号。不过随着互联网的增长放缓、见底,存量累积了大量工程师以及技术方案,教学和工具的普及成熟,它可能便不再是稀缺的技术了。
具备稀缺性的技术每年都在发生变化与发展。另外,先进性也并不完全等于稀缺性,还有另一类技术虽然并不具备先进特征,但也较为稀缺。比如COBOL这种非常古老的语言,没有多少人会,但在很多大型银行还有系统需要维护,那么这种技术也就具备记忆稀缺性。同样的道理,程序员圈子里所谓的防御性编程,我写的代码只有我自己能够维护,也是这一思路的体现。但这并非长久之计。
业务适配度,技术如果仅有先进性,而没有匹配的落地发挥实际作用的场景,最终也只会是空中楼阁和奇技淫巧。近几年的某个跨境电商平台的技术复盘会上,他们的CTO叫停了团队对service mesh的盲目投入:我们的日均订单量只有50万,GRPC原生的能力完全够用。这揭示了影响技术价值的第二个因素:和业务的匹配度。技术和业务的匹配度衡量通常有两个维度:业务类型和业务规模。业务类型的匹配度很好理解,我们拿以下三种典型的业务类型举例。
首先是事务密集型业务,如电商、金融、技术站,需要优先保证数据一致性。例如银行系统采用TCC分布式事务模式,而电商订单系统常常通过预降库存加异步结算的柔性事务,平衡性能与准确度。在这种业务类型下叠加极大的规模度,数据库分布式中间件等技术至关重要。第二个是流量密集型业务,如直播、社交,技术重心转向高并发吞吐量处理。例如某短视频平台曾通过将TCP替换为自研的QUIC协议,将通信端到端延迟和丢包率降低,全面提升了用户的体验,提升了留存市场。在这种业务类型下,网络性能优化相关的技术至关重要。第三个是计算密集型业务,如AI训练、渲染农场、大数据计算等等,其技术核心在于基础设施的资源利用与优化。如某自动驾驶公司通过定制cooper nice调度器,使GPU集群利用率从30%提升至60%,直接缩减了百万级的云计算成本。这种业务类型下,资源调度和优化相关的技术至关重要。
我们可以明显的看到,随着业务类型的不同,不同技术切入不同的场景,显现出不同的价值。而第二个方面,业务的规模对技术价值的影响也很大。如启动器业务,某社交创业公司用Firebase快速实现消息推送,放弃自研MQ系统,节省了三个月时间,换来关键的用户增长窗口期。这时候快速搭建MVP、全程开发,做胶水粘合成熟服务的技术很重要,这也就意味着更侧重广度和实践性的技术,而非深度研究性的技术。增长器业务,当某个爆火应用的QPS峰值迅速增加至50万时
自研分布式数据库良好的伸缩扩展性能,很好地支持了应用用户量的扩展。这时候优化性能支撑规模的技术很重要,稳定其业务。当某成熟互联网平台企业进步快速发展期后,业务规模进入稳定阶段,出于成本考虑,较盘活已有的各类数据中心,服务器资源的利用率,这时候做精细化资源调度优化的技术很重要。
衰退期业务,某传统车企的ERP维护团队,用80%的精力保持系统正常稳定运转,不再去做密集的开发,而是着重建设监控和运维技术体系,保障服务质量,这时候运维的技术很重要。在金融科技公司的底层清算系统中,每减少一毫秒的延迟,就可能提升数亿资金的流转效率,这需要足够深的顶尖分布式和性能优化技术。而某生鲜电商平台的全站工程师,用低DA平台快速迭代小程序,三州上线社区团购功能,抢占地盘,这里需要侧重广度和实践的技术。两者看似技术含量悬殊,职责都精准匹配了业务需求,这就是业务适配度对技术价值的影响。
涛博一加旅,常言道,在风口上,猪都能飞起来,这个道理想必大家非常熟悉。生活在我们这个快速变化的时代,我们总能看到各种各样的泡沫潮起潮落。当某个新概念迅速在互联网上病毒式传播时,泡沫就出现了。与之相对应的,此时某些风口上的技术,会经由供需不匹配的表现,进而以高溢价率的形式体现出来。当某元宇宙公司在2022年以年薪百万招聘优内的工程师时,本质上是风口期的资源虹吸效应。溢价率等于资本泡沫浓度,乘人才稀缺系数成概念传播速度。
button的曲线显示,新技术从促动期到泡沫谷底,通常存在一段时间差,而这个时间范围差,就是技术溢价率体现的时间段。web3领域在2021年热钱涌入时,Solidity开发者薪资一度达到了传统互联网的2~3倍,而当TERRA和露娜崩盘后,过去一段时间内,这一工程师有40%以上转型到了大魔型相关的企业内工作。这种波动本质上是技术价值是在金融杠杆作用下的变形计。这样的潮起潮落在我们当今的时代不断发生,但泡沫并不意味着骗局,任何真正具备先进性和潜在匹配场景的技术,都逃离不了泡沫阶段。如果你有能力把握和利用泡沫,吃到溢价率带来的红利,那么你收获的技术价值就会进一步提升。
技术与业务的错位,现在我们基本能够明确,技术本身和业务对最终价值的贡献模式了。如果你能够把握住这个技术,通过业务传导到盈利的链条,并做出针对性的行动,相信你就能获得应有的回报。而如果你的技术价值无法穿透业务层,达到的引力端时,就会出现三链明显的问题。一技术超前性陷阱,某物流公司的开发人员过早引入区块链溯源,增加了25%的研发成本,却无实际业务需求。二路径依赖黑洞,某视频网站的站长死守flash技术,透过移动端H5转型机遇。三伪需求传导失真,某餐饮SARS企业的老板用神经网络做菜品推荐,实际转化率不如人工运营。这些技术上的选择带来商业上的失败,而最终也会以冷酷的方式降临在企业内的每一个员工身上。
这些案例印证了某个技术出身投资人的警告,当你无法用三句话说明白技术方案和营收增长的关系时,就该重新审视代码和系统价值本质了。而对于我们个人,如果无法把握正确的技术传导价值方向,那么自身的能力模型也必然偏离整体市场的需求,以至于无法最终在市场上寻找好的发展机会。反过来我们也不能一味的完全偏向市场和业务,这也磨灭了创新的可能性,很多技术的创新又源于对冷门领域的热情研究投入。那么我们如何从以上对于技术价值的三个度量维度出发,兼顾技术和业务,并指导和规划自己的发展了?下期视频我会为大家给出一些我的建议,请保持关注。
老程对服务的第九次重启终于成功了,解释器上的光映出他嘴角的一丝苦笑。他忽然又意识到,那些面试中高深晦涩的主题,也许并不是毫无意义,那些东西也必然来源于某个曾经需要他的公司的业务场景中,并发挥出其应有的价值,只不过是自己并没有参与过其中罢了。如果当时自己能够对技术价值的决定性因素有所明晰,将恰当的技术切入到了恰当的场景,并规划选择了合适的发展路径,想必现在可能早已成为了。
管理多个团队的技术总监,我是资深技术专家,而不是有人奋战在加班一线的程序员班中工。而今,虽然32岁的自己在it行业中已算是中高龄,但拉长周期看,他认为他的时间仍然充足。
老陈想起了10年前刚从学校毕业的自己,而TRIA对技术的热爱,那时他总是每天对着一个个技术问题和项目钻研到很晚。看到自己业余出于兴趣编写的程序,在屏幕上打印出一行行整洁的日志,他发自内心的感受到开心。
种一棵树最好的时间是10年前,其次是现在。本质上老程还是当年那个热爱技术的少年,现在他想清楚了更多。
本期视频的文字版本可以到视频相间获取,如果我的视频能够对你有所帮助,我会感到非常高兴。我是蛙练成,致力于帮助你成为一个更出色的工程师,感谢收看。