我什么时候可以发布在工作中编写的软件工具?


24

我正在处理一个相当通用的软件问题,但是找不到适合解决它的库,所以我正在考虑自己写一个(至少是基本版本)。我将在工作中编写一些(如果不是全部)1.0版本,因为我需要该项目。如果结果很好,我可能想把作品带回去并对其进行完善只是为了好玩,也许可以将其发布为一个开源项目。但是,我担心如果我在工作中编写1.0版本,从法律的角度上可能不允许这样做。显然我可以问我的老板(谁可能不在乎),但是我很好奇其他程序员如何处理这个问题以及法律的适用范围。我的一句话是什么时候可以(合法/道德地)开放您最初为工作而编写的软件工具的源代码?如果您在下班时间大幅扩展了原始资源怎么办?

后续行动:假设我将自己的全部内容都写在家里,然后在工作中简单地使用它,这会大大改变事情吗?

后续行动2:请注意,我并不是想剥夺我的雇主(我知道他们要付钱给我来开发自己拥有的产品)-我只是想知道是否有一种公平的方法来为所有相关人员做这件事...如果将来有一些非营利组织可以使用我的代码并节省一些时间,那就太好了。同样,还有另一个问题在危急中。如果我是为一个非常简单,通用的东西(例如Javascript中的HTML表)编写该库,那是否意味着我永远也不会自己承担法律风险(即使这是全新的重写或较大项目的一部分)。由于工作中的代码可能仍然在我的脑海中影响着我,我是否在我的余生中放弃了为此类项目编写代码的权利(未经该公司的许可)?这似乎与软件专利有关,


5
检查您的合同,询问律师。许多雇佣合同都有“所有发明归雇主所有”类型的条款。它的可执行性各不相同...您需要咨询律师。

7
“如果结果很好,我可能想把作品带回去并对其进行完善只是为了好玩,也许可以将其作为一个开源项目发布。” -您的公司极不可能批准这样做。您的工作产品归他们所有,而不是您所有。
Ramhound 2012年

5
如果发现由于他们不同意将其释放而发现了工作,那么我强烈建议您将它带入深渊。以书面形式获取。
钻机2012年

请注意,大多数中等规模的公司也不允许在工作计算机上安装未经批准的软件,因为它可能导致各种系统不稳定,病毒等。因此,“仅下载并在工作中使用它”可能不是明智的选择要么采取行动。
calum_b

2
@Ramhound我不认为它是那样的黑白。在家里写类似的东西时,您怎么能不考虑工作版本?无论如何,这可能都是通过雇佣合同中的非竞争条款来解决的。我的观点是,可能没有办法防止(甚至在下意识地)影响您自己编写的代码的公司代码,这会引起一些有趣的问题,但是这里没有一个值得争论的问题。
AlexMA

Answers:


41

在法律上或道德上,绝对不可能发布使用雇主资源或在未经许可的情况下由雇主支付您的时间创造的产品。

但是,这取决于您的雇佣合同。如果您由公司支付薪水和/或使用公司的资源来生产产品,则该工作很可能属于您的公司。您需要通过您的主管和法律部门。根据您的雇佣合同,即使您自己使用个人资源来从事相关技术的工作或使用雇主在项目中获得的知识也可能受到限制。

如果您使用带薪时间,公司资源或正在开发与公司业务相关的事物,请始终寻求经理和/或法务部门的指导,以确保您不违反任何协议并获取进行项目的适当许可。通常,在开始工作之前这样做比较容易,因为它可能会改变您在项目中采用的方法。

自行编写产品以供工作时使用是可疑的,并且取决于雇主必须遵守的法规。至少,通过离线工作可能会干扰雇主的日程安排,预算和估算。在某些情况下,您可能会在经过适当跟踪和计费的时间以外创建产品,从而违反合同规定。


8
+1为最后一段。从事相关产品工作且未正确核算和计费的员工,即使该员工自愿自愿这样做也可能对雇主造成重大后果。特别是如果雇主是政府承包商。整个投标过程和间接费用率取决于准确的数字,以便为所有潜在的政府合同投标人创造一个公平的竞争环境。不管是否有意捏造数字,都可能导致雇主拒绝投标合同,甚至遭到刑事起诉。
Dunk 2012年

您能充实“为雇主创造的产品”的想法吗?如果我提出一个构想或想法并在产品代码中使用该构想,例如,我是否可以在开源志愿者项目中使用该构想?让我们假设它没有专利或可专利。
AlexMA

1
@AlexMA该短语永远不会出现在我的答案中,所以我不知道您要扩展的内容。如果您正在忙碌地创建项目或使用雇主的资源,请参阅第2段。如果它与正在进行的项目或公司的业务有关,请参阅第3段和第4段。在任何情况下,这都是一个坏主意(如果不是不道德或违法的)在未经许可的情况下,自行决定是否从事与工作有关的事情。
Thomas Owens

@ThomasOwens这不是我真正的意思;抱歉,不清楚。您的确切报价是“您使用雇主的资源创建的产品”。他们拥有的东西与我拥有的东西构成什么?我在工作中提出的一般编程思想怎么样,然后将其应用于手头的工作?就像木匠想出了一种新的建造楼梯的方法,或者是一把新的更好的锤子,然后在为老板使用楼梯时使用了这种技术/工具。
AlexMA

2
@AlexMA如果您要创建一些可以在工作中使用的东西,即使您自己也需要,则需要遍历雇主的法律部门。我在上一段和Dunk的评论中都提到了这一点-在外部进行工作以支持项目可能会产生不利影响,甚至可能产生法律后果。一个不相关的想法是一回事,但是如果您想使用自己在工作中所做的事情,请在开始工作之前先通过法律咨询。
汤玛斯·欧文斯

14

如果结果很好,我可能想把工作带回家并进行完善,只是为了好玩,也许可以将其发布为开源项目。

一开始,您应该与您的雇主明确有关您的意图。在开始之前就所有工作如何达成协议,以免造成伤害感,误解,失望等。您为雇主所做的工作是雇主的财产。

什么时候可以(合法/道德地)开放您最初为工作而编写的软件工具的源代码?

当您获得您的主管(也许是法律部门)的许可以分配其财产时。

如果您在下班时间大幅度扩展了原始来源怎么办?

没关系 您正在使用雇主的财产-在这里更改几行,并且没有改变这一事实。即使您更改项目中的每一行,也可能仍然是他们的。请咨询您的律师以了解详细信息,但不要指望好消息。

现在,您的雇主可能很乐意根据某种开放源代码许可来分发该库。如果不是,他们认为这是他们竞争优势的一部分,或者他们想要维护图书馆,但不一定要自己做所有工作来维护它,或者如果他们想获得某种善意,或者其他,这样事情就可以解决了。只要记住,这是他们的决定。


Now, your employer may be perfectly happy to distribute the library ....而且它不会在将来引发潜在的诉讼和/或其他法律问题。
马丁·约克

@LokiAstari当然可以-雇主在公开购买软件之前可能需要考虑许多因素;我的清单还很详尽。
Caleb

2
When you have permission from your supervisor (and perhaps legal department)...在这些事情上,您的主管很少有权代表公司发言。他/她可能认为这很好,但是高级管理层可能会不同意。许可应该来自高级管理/法律部门。
cdkMoose 2012年

2
@cdkMoose是的,当然可以,因此,我将其纳入法律部门。很难说“很少”-对公司的规模/结构做出了太多的假设。主管可能是CIO,CTO或CEO(或以上所有人员)。我可能应该说“何时获得必要的许可”,然后将详细信息留给读者。
Caleb

+1与您的雇主交谈-他们可能很乐意(也可能不愿意)开源该库(而不是程序本身),但这是正确的做法。几家具有远见卓识的公司(Google,Facebook)允许其员工将他们所做的某些工作开源,只要这不是公司的核心主张即可。但是所有这些都经历了审查过程。
苏曼(Suman)2012年

5

简单回答:

决不。

问题是:根据大多数现代国家/地区的法律,默认情况下,您对所有内容均拥有版权。这也是如此,即使你把它写别人,比如你的雇主

显然,这对于任何有兴趣雇用软件开发人员的人都是有问题的。

为解决此问题,软件公司要求您签署保密协议(NDA)。在此NDA中,它明确声明您放弃为该雇主编写的所有代码的版权。没关系,什么时候做的。这都一样。

换句话说:您编写的代码不属于您。它属于雇主,您不得发布。

我从未听说过开发人员未签署NDA,因此除非您在世界上某个偏远地区,否则可以肯定地说您在被雇用时就签署了NDA。

如果您的雇主出于某种原因对发布它感兴趣,那么那就是另一回事了(如果您感到很困惑,您也可以尝试说服他们这样做是正确的)。但这是唯一的方法。


4
IANAL,但至少在美国版权局的这份文件中,您甚至在美国似乎都不是。另外:保密和租用工作是无关紧要的问题-最好使用“就业协议”之类的术语代替上面的“ NDA”,因为您在开始工作时可能已经签署的协议可能涵盖的范围不止保密以及保密协议通常与雇用条款无关。
Caleb

@Caleb,您的消息来源指出:““为租做的工作”的概念可能很复杂,”这是绝对正确的。它之所以变得复杂的一个原因是因为软件不仅仅是代码,它还是一组解决方案和想法。然后问题变成:“您的公司是代码的所有者,还是代码表达思想的所有者?” 当您想象某人想出一个绝妙的想法在凌晨2点进行工作并在第二天早上在代码中实现它时,情况就变得更加复杂。继续...
riwalk 2012年

...大多数公司采用的解决方案是声明自己拥有您想出的一切,无论您何时想出它,以及无论何时编写。有些州(想到华盛顿和加利福尼亚州)有一些其他法律,而其他州则没有。情况很复杂。底线-您需要一名律师:)
riwalk 2012年

@ Stargazer712-在工作协议中写有此类条款的公司很少。我什至会争辩说,即使在尚未有人挑战它们的州,这些术语也是非法的。此外,如果您因为不了解自己的权利而签署协议,那么如果代码不在工作范围之内,您就不应享有该代码的权利。
Ramhound 2012年

1

这很大程度上取决于您与雇主之间的合同关系。

知识产权

默认情况下,许多组织现在更愿意开源通用函数/类,以使更广泛的编程/编码社区受益,但是从知识产权的角度来看,有一些事实并非如此-可以从商业角度保护他们所拥有的。

如果您的代码利用了对您的雇主IP或商业秘密的任何形式的引用,那么他们可能会拒绝是可以理解的。

开源的

本质上,默认情况下,您有权在自己的时间内发布自己编写的任何软件,只要该软件与您的雇用合同的条款相冲突 -或-在任何方面与它们的工作竞争。

我能提供的最佳建议是与您的雇主取得联系并公开讨论此事。这将为您提供:

  • 您的雇主对开源/社区编程的态度
  • 反映/突出他们对软件及其固有/广泛价值的理解
  • 您对他们认为您能够/不可以做的事情的权利

任何拒绝让您扩展思维/学习并确实为更广泛的社区做出贡献(并解决更大,更广泛的问题)的雇主都应该向您介绍很多工作地点。公司通常会比以前更广泛地考虑发布代码,因为它不仅使他们受益,而且必须以不会威胁到他们所做任何事情的形式存在。

我的时间/他们的时间

与其他答案一样-您不能浪费您的雇主时间来构建自己的软件;道德上或原则上 除非您的雇主愿意承诺发布代码,否则请分别对待它们。

在某些情况下,程序员会花费自己的时间和工作时间来创建一些很棒的东西- 每个方面都可以从中受益,也可以从您的问题中获得理想的结果。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.