交付程序不给钱,程序员一怒之下开源客户项目代码

阅读数:16614 2019 年 6 月 10 日

国外一名自由职业的开发者在客户不给结款以后,将其开发的项目开源到了 GitHub 上,两天不到收获了超过 3000 个 star。除了此事引发的技术细节大讨论以外,背后问题不得不引人深思:开发者的职业道德与法律上的漏洞引发的事故,该如何看待?

不给钱就开源

最近,外国一位名叫 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 遭遇的问题时,会怎么处理?在你看来,开发者在日常工作中应该注意的法律常识有哪些?

收藏

评论

微博

发表评论

注册/登录 InfoQ 发表评论

最新评论

Seno 2019 年 06 月 11 日 10:42 2 回复
这本身不只是道德问题而是法律的问题,作为外包项目的交接所有权已经不只是开发者本身也同属于客户,除非合同已经表明源码归属。但是开发者有义务保证代码不被别人利用毕竟对交付物也要使其安全可靠。不过另外一方面也是要对开发者、自由职业者提供一定能力的法律保护。大家双方都在法律上交锋尽量避免靠道德来绑架,当然该约束的道德还是要约束。
接外包的时候,准备一份条款详细的合同是必要的 2 回复
张晓楠 2019 年 06 月 11 日 09:49 0 回复
对这类情况,你怎么看?
小智 2019 年 06 月 10 日 18:10 0 回复
程序员还是要多懂法,防不胜防啊
没有更多了