“为报复公司解雇,我更改了项目的所有代码注释!”

Posted CSDN 程序人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“为报复公司解雇,我更改了项目的所有代码注释!”相关的知识,希望对你有一定的参考价值。

整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

近些年,“删库跑路”这个梗一直在 IT 圈内广为流传,许多高压之下的程序员经常以此作为玩笑,喊着“大不了删库跑路”——虽不乏个别“意外”,但大体上只是一句玩笑话。

不过,“删库跑路”总归是近年来才流行起来的梗——你是否好奇过,十几二十年前、甚至上个世纪的程序员们是如何“泄恨”的?

近日,一位名为“Thomas”的读者向外媒 The Register 分享了一则发生在 1970 年代的故事:一个前同事离职前一顿骚操作、导致他莫名被“坑”的故事

(CSDN付费下载自视觉中国)

为了报复,更改所有代码注释

上个世纪 70 年代,各种繁杂的工具库还未出现,程序员需要遵守的开发思路很简单:优化代码,提高资源利用率。

当时的 Thomas 还是一名初出茅庐的程序员,有幸被招聘进了一家咨询公司,接手一位前同事的工作——Thomas 对这位前同事的形容是:一个非常聪明也十分讨厌的“混蛋”(以下简称这位前同事为“D”)。

平心而论,在 Thomas 看来 D 被公司辞退其实有些“冤”:公司经理们对项目难度缺乏正确认知,给 D 设定了一个根本无法实现的最后期限

但 D 还是坚持下来了,甚至为了完成项目代码,他每周工作时长在 100 小时以上。然而,公司管理层因其产生的加班费感到不满,并由此拒绝了 D 的加班申请。结果可想而知:D 与公司管理层产生了巨大分歧,大吵一架后,公司决定解雇 D。

但问题在于,公司还给了 D 一个月时间,要求他完成当前项目的代码再走。可试问:在这种辞退理由下,D 会心甘情愿、老老实实做完这一个月吗?答案是否定的,D 果然做了一些“小动作”:他更改了代码中的所有注释。

被误伤的“倒霉”Thomas

乍听之下这好像这不是什么大问题,可你要知道,这个举动发生在 1970 年代:在那个年代,高级编程语言还未兴起,公司所有项目代码均由汇编语言编写,而汇编语言能在“开发者最讨厌的语言”中排名第一不是没有原因的——在 Thomas 看来,如果没有深入研究过,汇编语言的晦涩难懂无异于机器语言

这也就是 Thomas 认为 D “非常聪明也十分讨厌”的原因:项目代码本身没问题,运行情况也良好,可对于下一个接手项目的人来说,早已与实际功能不符的代码注释就是“地雷”

后来,这颗“雷”不幸地误伤到了倒霉的 Thomas:“我接手了 D 的项目,第一个任务是在 D 的代码中添加更多功能。结果当然失败了,因为我查看了代码注释。”

尽管将问题汇报至管理层,Thomas 却并未获得有效回应,而他担心他也会被因此辞退,又接连进行了几次检查,最终得出结论:代码注释果然是在胡说八道

可惜,就算明白了问题所在,当时整个公司也没人能弄清楚代码的哪些部分做了什么,所以最后只能删除所有注释,再将其黑盒化。

据 Thomas 表示,一年之后他就离开了这个项目,但黑盒代码此后还运行了五年,直到一家新的咨询公司接管了它:“即使如今,这些代码可能仍在某个地方运行,毕竟黑盒代码像蟑螂一般顽强。”

“当你想解雇某人时,请立即将他们赶出门外!”

通过 Thomas 的故事,The Register 将寓意总结为:“当你想解雇某人时,请立即将他们赶出门外!”但于多数企业、尤其是技术公司而言,这可能并非最优解:项目的交接需要时间,培养下一任负责人也需要时间。

在这方面,有位网友留言分享的故事获得诸多好评:

我曾在一个 SAP 项目上从事 Unix 和存储工作,合同原定于 5 月结束,但他们的一位全职工作人员疲于无薪加班和 24x7 值班,在 4 月成为了一名顾问,薪水还是此前的三倍。在他离开之前,他正在培训从工程部 Unix 团队中抽调出来的几个下属,因此在他宣布离开时,这些人都还很年轻。

项目负责人告诉高层,必须延长我的合同,因为我是唯一真正了解该系统的人。当他们来找我时,我都能听出他们的绝望,所以我的合同又延期了三个月,时薪高达 30 美元/小时。

后来,两个全职人员跟我说,除非他们主动要求或询问,不希望我碰任何东西:在他们看来,一旦我离开,他们就必须处理所有事情,因此他们宁愿现在试错。也就是说,我只是一个回答他们问题的资源而已。所以整个夏天我都非常悠闲,他们从一开始每天有几个问题问我,到最后一个半月基本上不理我,甚至我最后离开了他们也没注意——这是我赚得最容易的钱

对此,许多网友称赞这家企业和这位网友的做法:

“他们做得非常对!让自己跟上进度,不要让离职者施展“魔法”——让项目负责人多问问他们,向他们学习,加快工作交接。也许这样的离职者赚钱很容易,但他们的角色是老师和保险,而且每一分钱也都值得!”

“他们很明智,这对你也有好处,双赢双赢!”

相聚时珍重,告别时体面

所谓“相聚时珍重,告别时体面”,离职时若能体面再好不过,毕竟近几年已有太多前车之鉴:

  • 2018 年,思科前员工 Sudhish Kasaba Ramesh 在离职 5 个月后,在未经许可的情况下访问了思科托管在 AWS 的云基础设施,并部署了一段代码,导致 456 个 WebEx Teams 的虚拟机被删除,一系列累计损失估计 240 万美元,最终 Sudhish Kasaba Ramesh 面临至少 5 年有期徒刑;

  • 2020 年,某吴姓员工因离职后讨要薪资而删除公司数据,最终法院以破坏信息系统罪成立,判处当事人吴某某有期徒刑十一个月;

  • 2021 年,一名 29 岁的程序员录某未经公司许可,在离职当天,私自将即将上线的京东到家平台系统代码删除,法院认定其构成破坏计算机信息系统罪,被判处有期徒刑 10 个月。

这些“删库跑路”的惨痛后果,时刻提醒着企业及员工避免悲剧重演:更多企业重视人员分工问题,避免人员分工不合理的情况,辞退方式更为友善;员工也需谨记,勿因一时冲动而付出沉痛代价,任何事情都可在合规的情况下去解决。

参考链接:https://www.theregister.com/2022/04/04/who_me/

《新程序员001-003》全面上市,对话世界级大师,报道中国IT行业创新创造!


 


 

 

 

复旦博士用130行代码搞定核酸统计,2分钟解决人工一小时工作量


 

做了9年程序员,为什么我还摆脱不了复制粘贴?

☞云舒:不畏“鸿鹄”之志,只缘生于“安全”

以上是关于“为报复公司解雇,我更改了项目的所有代码注释!”的主要内容,如果未能解决你的问题,请参考以下文章

“为报复公司解雇,我更改了项目的所有代码注释”

golang中级进阶(二):结构体

C 语言结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )

C语言-结构体

结构体指针

结构体(结构体嵌套结构体指针结构体参数传递)