暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

年薪60万留不住绝望的oracle员工

码农小东的每天 2024-08-13
121

Hacker News上有一个有趣的问题:你见过最烂的代码多少行?

这个问题成功的唤起了一个在oracle做研发小哥的分享欲,oracle是世界上最赚钱的数据库,我搜索了下网上一些薪资资料,oracle研发的平均工资在5w左右,不带奖金情况下的年薪是60w。它在2008年收购了mysql,确实是财大气粗。但即使在这样高的工资下,工作环境也无法尽如人意,研发小哥是这样吐槽的。

Oracle数据库12.2版。这近25百万行的C代码简直让人难以置信!在产品中修改一行代码都可能导致上千个现有测试失败。一代代程序员在艰难的期限下修改了这些代码,填满了各种糟糕的内容。

非常复杂的逻辑部分、内存管理、上下文切换等等,全都是通过成千上万的标识维持在一起。大量神秘的宏定义遍布整个代码库,如果不亲自动手打开笔记本,逐条扩展相关的宏定义,你根本无法理解其含义。真正理解一个宏定义可能需要花费一到两天的时间。

有时候,为了预测代码在不同情况下的行为,我们需要理解20个不同标识的值及其影响。有时甚至可能达到100个!我并没有夸张。

这个产品仍能存活并工作下去的唯一原因就是有成千上百万的测试!

一个Oracle数据库开发人员的工作生活如下:

  • 开始解决一个新的bug。

  • 花两周时间努力理解20个不同的互相影响的标识,导致出现这个bug。

  • 添加一个新的标识以处理新的特殊场景。再添加几行代码来检查这个标识并绕过问题情况,避免bug出现。

  • 将修改提交到一个包含大约100到200台服务器的测试农场中,这些服务器会编译代码,构建一个新的Oracle数据库,并以分布式方式运行数百万个测试。

  • 回家。第二天回来,开始做其他工作。测试可能需要20到30个小时才能完成。

  • 回家。第二天回来,看一下你的测试农场结果。在好的一天,可能会有大约100个测试失败。在糟糕的一天,可能会有大约1000个测试失败。随机选择其中一些测试,试图理解你的假设出了什么问题。也许还有10个以上的标识需要考虑,才能真正理解bug的性质。

  • 试图添加更多标识来尝试修复问题。再次提交修改进行测试。再等待20到30个小时。

  • 如此往复,再持续两周,直到你理解了正确的标识组合。

  • 终于有一天,你会成功,所有测试都通过了。

  • 为了确保下一个触碰这段新代码的开发人员不会破坏你的修复方案,再添加上百个测试。

  • 将工作提交进行最后一轮测试。然后提交进行审查。审查本身可能需要2周至2个月的时间。现在开始处理下一个bug。

以上描述了一个在Oracle修复bug的程序员的真实工作生活,毫不夸张。现在想象一下要开发一个新功能是何等的可怕。开发一个小功能甚至需要6个月到一年(有时候甚至两年!)的时间(比如说添加一个新的认证模式,比如支持AD认证)。

这个产品能够正常运作其实就是一种奇迹!

我已不再为Oracle工作。也绝对不会再为Oracle工作!

大名鼎鼎的光刻机制造商,荷兰ASML公司似乎也有相似的情况。一个芯片小哥在oracle小哥的帖子下回复道:

听起来有点像ASML,只不过Oracle有自动化测试。(ASML制造的是生产芯片的机器。他们在市场上占有大约90%的份额。英特尔、三星、台积电等都是他们的客户。)

ASML可能只有1台或者2台机器可供测试。这些机器即将发货,虽然装配工作还未完全完成,但已足够运行软件测试。你的团队也许今晚有15分钟的时间可以测试。如果幸运的话,明天又有机会。但前提是构建完成,构建需要8个小时。

其他方面的情况跟Oracle基本类似。

哦不,等等。在ASML,当你想要修复一个bug时,你首先需要在Word文档中描述bug修复方案。这会被发送给各种风险评估经理。他们会评估修复bug是否可能在其他地方引发新问题。记住,这里没有测试,因此他们只能根据教育背景猜测这个修复方案是否太危险。如果他们认为可以,那么你就可以手动在包含6个以上产品家族的系统中应用修复方案。没有自动化测试。

(ASML凭借其杰出的技术能力成为市场领导者,而不是像Oracle那样凭借销售人员。世界上没有公司能够制造出能做到ASML机器能做到的产品。它们也是荷兰股票市场最火爆的科技公司之一。而他们的软件工程情况简直就是1980年代的恐怖故事乘以10。真的相当沮丧!)"

--------------------------------------------------------------------------------------------------------

我问了下周围的同事,他们如果遇到这种事,会如何处理,他们大部分的反应是:啊?还有这种好事?我肯定不走,呆在这个公司养老啊。

看来国内和外国的工作文化差异还是挺大。


文章转载自码农小东的每天,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论