最近,外国一位名叫 Jason Werner 的程序员小哥过得很闹心。

事件的起因是自由职业的他接了个外包需求,给一位客户开发一个名为 OneFraction 的平台。在跟客户沟通好需求后,他开始写这个项目,结果项目完成后客户摆了他一道,最后也没给他钱。于是他一怒之下把这个平台开源到了 GitHub 上,短短两天时间不到,这个项目的 star 数就已经超过了 3000 个,更是登上了 GitHub 的 Trending 榜单的榜首。项目地址:

https://github.com/TrillCyborg/onefraction

”I always wanted to be at the top of trending“

按照 Jason 小哥的说法,OneFraction 的设计初衷是作为一个平台,让用户通过平台支付租金而不是支票或银行转账。其价值来自于利用平台产生的数据最终创建一个租赁市场,用户可以通过其找到完美的公寓。

他的技术选型是这样的:Server 端用 Node.js 写就。服务器使用 GraphQL 和 apollo-server 在客户端和服务器之间传递数据,并以类型友好的方式键入以与 Mongo 交互。账户系统则选用 accounts.js。

Jason 的情况在外网引起了热议,在队形表达对 Jason 的同情以后,大家愉快地聊起了 OneFraction 背后的技术细节,不得不说中外程序员们一大相同点就是对技术的热情和兴趣,一群可爱的技术宅。

这样一个闹心的事件逐渐演变成了一场有关技术的 Party 让人忍俊不禁,但这背后的一些问题却值得我们深思。Jason 没有取得相应的报酬,对其创造的代码自然有全权处理的资格,但如果取得了报酬或者部分报酬,这样的问题该如何处置?当开发者面对道德选择与法律困境时,又该作何取舍?

这事儿是职业道德问题?

跟 Jason 相类似的情况在国内也有发生过,但更多的是一些私自开源公司代码、删库跑路的相关新闻,这背后,折射的是开发者的职业道德问题吗?

程序员私自开源公司代码,如何定责?

还记得不久前的哔哩哔哩后端源码泄露事件吗?

上线 6 小时 star 数突破 5 千,fork 数一路狂飙冲过 6 千,知乎、微博、朋友圈等各大程序员聚集地都在讨论这个相同的问题:究竟是主动开源还是被黑了?

后来官方回应确认了这是事故,不是故事。

源码的重要性不言而喻,有了源码,黑产不用再通过逆向工程的手段猜测运行原理和漏洞位置,直接通过阅读源码就可以找到很多还未公开的漏洞,这对系统的安全性是个巨大的威胁。不管源码发布者是何人、出于何种目的,这种行为本身既无职业道德,也触犯了法律。

根据极客时间《白话法律 36 讲》专栏作者周甲德律师的观点:

这要看程序员是不是具有主观故意,如果具有主观故意,轻则可能会被开除,并赔偿公司损失;重则可能构成刑事犯罪,代码在公司没有开源前应当属于公司的商业秘密,根据我国《刑法》第 291 条之规定,其可能涉嫌侵犯商业秘密犯罪。这里面主要是看此行为给公司造成了什么后果,如果给公司带来的影响小损失不大,公司可根据公司规定进行处理。如果程序员只是失误失职,没有主观故意,则可能会受到公司内部处理。

删库跑路,当笑谈成为新闻

“rm-rf”应该是你非常熟悉的命令行,也是删库跑路梗常用的背锅侠。但其实删库跑路这样的事情,真的发生过很多次。荷兰一家云主机厂商 Verelox,就曾被离职工程师删除了客户数据库,几经修复也不能完全恢复,最后造成巨大损失的。

新华社之前也曾报导过类似的新闻,某软件工程师徐某,离职后半年公司仍然不给结清工资,于是其一气之下,利用自己当年开发网站写代码时留下的后门文件,把程序源码全部删除,造成几十万损失。

这样恶意删库的行为,触犯了破坏计算机信息系统罪,将要受到法律的制裁。

本部分案例援引自极客时间《白话法律 36 讲》专栏

开发者是保护代码道德的最后防线?

2018 年 3 月,Stack Overflow 发布了他们的开发者调查报告,并首次提出了有关道德的问题。对于“开发人员是否有义务考虑代码的道德影响”这个问题,有近 80%的人回答“是”。不过,只有 20%的人认为他们最终在为不道德的代码负责,40%的人会在被要求的情况下写不道德的代码,只有 50%的人表示在发现不道德的代码时会举报。

如果代码对世界的影响不大,那么这也许就不成问题。打个比方,如果你写了一个对 100 个人不利的算法,虽然这事不怎么光彩,但产生的影响也是有限的。但是,如果你在拥有数亿用户的 Facebook、Google、微信上做同样的事情,结果就会很严重。

但对于开发者来说,光是每天写业务代码就已经让人心力交瘁了。更何况不管在国内还是国外,技术在大部分时候都是为业务服务,开发者的话语权是拗不过盈利的这条大腿的。遵守程序员的职业道德已经不容易,又如何去捍卫代码的道德?

开发者:我讲道德,谁讲法律?

当出现 Jason 这样的案例时,开发者们无一不在拍手称快:”四个字,大快人心!“

为什么在程序员们看来,会出现这样的现象呢?究其根本,无非就是开发者和用人单位在一个不对等的位置上。

曾几何时,在一次工作交接的时候,因为我的项目由我全权负责和开发维护,公司对我就像防贼一样。

企业在聘用程序员以后,又或多或少地在某些地方对程序员处处提防,当然这本无可厚非,但也体现了劳资双方的不平等和不信任。尤其是在当下这个就业难的大环境下,开发者们敢于发声的底气便更加微弱。

开发者们坚守着自己的职业道德,却也害怕遇上不讲法律或者钻法律漏洞的用人单位。个体的力量终归有限,时间、精力都是成本,拖家带口的开发者根本耗不起。

如果是你,在面对 Jason 遭遇的问题时,会怎么处理?在你看来,开发者在日常工作中应该注意的法律常识有哪些?

(文章来源:极客时间)