(点击上方公众号,可快速关注)
编译:伯乐在线/刘唱
程序员们在 StackExchange 上有激烈的讨论,如果偷偷把自己的工作自动化,是不是不道德?
这次讨论的源于 Etherable 于 6 月 27 日在 StackExchange 上发的一个帖子,翻译如下:
我目前在给一家公司的遗留系统工作。这个系统真的是很老了,尽管我的角色是程序员,但我大部分工作却是美化数据。总结一下,我有一堆需求,实际上是每月电子表格中的大量数据,我必须把系统配置好,保证运行。这工作基本是就是编写一大堆的 SQL 脚本。
不过这并不是一份很简单的活,因为最初开发这个系统的人写反了。实际上,创建电子表单的分析师要花很多时间来验证我的工作。原因是我这活太繁杂,易出错。
正如你猜到的,这活非常枯燥。然而,这份全职工作薪水可观,并且允许远程,我还可以陪儿子。
这份工作我做到大概 18 个月的时候,我基本摸清了所有套路,然后我编写了一个自动化程序,并且我过去 6 个月的活,都是交给它了。所以,过去要 1 人做 1 个月的事,现在可能 10 分钟就可以了。
现在的问题是,我是否应该告诉公司?如果我告诉他们了,他们或许采纳自动化程序,然后不要我了。这并不像是一个有着大量 IT 工作的公司,他们是有一个遗留系统,一直来保存所有的客户数据,他们只是需要有人来维护这个系列。
同时,我也觉得自己做的不对。我的意思是,现在只要我拿到了(公司下发的)规范(specs),然后大约每周运行一次自动化程序。再上报我做完了一部分工作,让他们测试验证。我甚至插入了一些 Bug,这样看起来更像是人做出来的。
虽然有时候规范需要修改,加上邮件来回沟通的时间,我每周的实际工作时间约 1-2 小时,但我拿的却是全薪。
虽然我真的很享受多出来的自由时间,但如果这样不打招呼,继续这样偷偷地做下去,是不是不道德? 这不比我在欺骗公司。公司从来没有表示他们对我的表现不满意,事实上,他们从雇用我中得到了他们想要的。
这位程序员(Etherable)说,他写了一些脚本,悄悄把原本一周的工作用不到两个小时就做完了,他开始感到有些愧疚了。
公司雇他做的工作都完成了,但是由于是远程工作,也没告诉他老板脚本的事,因此他基本上整天都在陪儿子。他担心公司发现这些脚本然后解雇他,并非是出于道德原因,而是公司有了脚本以后就不再需要他了。
他写道:
“不告诉我老板自动化工作的事,不道德吗?……
你能想象,这大概是世界上最无聊的工作了。但是这也是一份薪水颇丰的全职工作,而且我可以远程工作,在家里陪我的儿子。
所以我已经做了 18 个月了,在这期间,我差不多发现了所有的套路,在过去的六个月里写了一个程序来帮我完成全部工作。以前别人需要用一个月的时间来清理电子表格,用这个程序大概十分钟就能完成。
现在的问题是,我要不要告诉他们?如果我说了,他们大概会拿走我的程序然后解雇我。”
还有一件事是:这位程序员也坦白,他会通过故意加一些错误来掩盖自动化的痕迹,“让它看起来像是人工完成的。”
SE 的讨论帖,被人发在了 Hacker News 上,同样引起了激烈的讨论。
有趣的是,在参与评论的这几十个程序员中,人们分成了两大阵营:该行为道德和不道德。
你这不道德
Stack Overflow 上的人普遍倾向于这种情况不道德。一个叫 Magisch 的用户甚至说这位程序员在“诈骗你的老板”。
Joe Strazzere 很好地总结了这一派的观点:
你用每周 1-2 个小时在家里工作(陪儿子),但是却拿着 40 个小时的工资;
你 6 个月前写的这个程序,但是到现在都没告知你的老板;
几乎每周你都在对你的工作成果撒谎;
你故意在程序里插入错误来挽救你的骗局;
你还要让创建表格的分析师花费相当多的时间来检查你的工作;
你承认“感觉自己做了错事”;
即使答案在我看来已经很明显了,但是你个人的道德标准让你得出了这样并没什么问题的结论。尽管我怀疑你知道真相……”
另一个程序员 SSight3 承认他曾经也自动化做过类似的工作,但是他说自己不属于不道德的原因是,他告诉了他的老板:
“我的情况是,我本来是要做半年的无脑输入数据的工作,但是我自动化了这个过程并且把方法公开给了我的老板。我现在被分配到一个更适合我的天赋和能力的部门。”
他说这个自动化的工作最终使他免于部门的后期裁员。
大多数站在认为此行为不道德的阵营的人坚信,即使他不能承认已经用这个脚本多久,以及他的工作时间有多短,他仍有义务告诉他的老板关于脚本的事。
错误的动机
但是 Hacker News 的朋友们提出了另一种观点。
很多人认为,只要公司拿到了他们花钱想要的结果,那这个人用多少时间去完成都无所谓。尽管这个阵营的人也同意,故意制造一些 bug 确实是错的。
其中一个人写道:“我不认为这里有什么道德问题,只有交易关系——支付工资,创造价值。如果公司用另一种方法能花更少的钱达到目的,它就会采用这种方法并解雇员工。这种事可以避免吗?这位员工正在为公司创造价值,他正在守护自己(和公司)讨价还价的底线,毕竟公司一直都在剥削员工。”
另一位程序员表示他在做网页的时候也有相似的境遇,而且受到了负面的影响:
“他们想按小时付费给我,但是我协商要按页数付费。当然了,我是自动化完成工作的。但出乎我意料的是,即使他们花同样的钱得到了同样的结果,我们也明确地达成协议不按时间付费,而是按产量付费,他们还是很讨厌我写程序自动化工作。”
有人指出,在整个 IT 行业,自动化不是特例,而是规则。拿系统管理这个工作来说,这项工作是确保 IT 系统不出故障。“我知道很多系统管理员自动化完成大多数工作,他们自己只是做一些监控和维护,他们很棒,没人因为这件事儿指责他们,事实上,这是很好的实践。”
另一个人表示同意。“作为一个系统管理员,我工作的 90% 都是自动化完成的。如果出了问题,我会一周七天 24 小时随叫随到,但是工作中的其他时间,我可以做做杂事,看看电影,玩玩游戏。我所知道的每个系统管理员,几乎都是这样的。”
一个人说他整个职业生涯中都是自动化工作的,从没隐瞒过:
“五年前,我在一家大公司做着一份入门级的夜班。那六个月里,我几乎用脚本完成了所有工作,大部分时间都在看 Netflix,我也没花什么心思去隐瞒我没事做这件事。
为此公司奖励我一次升职,然后我做了同样的事(自动化工作)并且又升职了两次。我现在的产出是从前的两倍多,我的职责是告诉别人如何自动化工作。”
一位程序员完美总结了 Hacker News 上的观点:
“他(发帖求助的程序员 Etherable)唯一的错误就是,没能充分利用他的才能和潜在的生产力。对此最好的解决办法,就是找一份更好的工作。”
技术人员对自动化工作并不陌生。2015 年,曾经有过这样一个程序员,他离开公司后才被发现自动化到了这样的程度:甚至连用咖啡机煮一杯拿铁都要自动化。详情请看《超过 90 秒的任务不自动化,你好意思说自己是黑客?》http://blog.jobbole.com/95222/
有趣的是,编程对于需要长时间且难以忍受的工作来说是小有名气的。许多技术人员都这样工作。
但显然也出现了这样的亚文化:一些人在做相反的事情,创造一些没有他们就进行不下去的工作。
看完本文有收获?请转发分享给更多人
关注「程序员的那些事」,提升编程技能