我正在开发一个正在进行的项目,并且有机会提取和抽象一些属于项目的功能并将其作为开源发布。
我很难接受这个功能应保持专有的想法,并相信开源社区可以从中获得主要好处。
如果不咨询我的雇主,这会不道德吗?
另外,我的老板有点控制,并且经常喜欢谷歌的人,所以我怀疑他会尽快发现我的开源版本。
由于他严格反对将任何功能作为开源发布并且会因此而解雇我,是否还有其他途径可用于发布此代码?
其他人如何处理这种困境?
我正在考虑重写代码,以便除了我雇主代码的功能之外无法区分 - 这会有所帮助,或者我是否会因为这样思考而被带到监狱的路上(这段代码需要被释放! - 这让我发疯了!)?
答案 0 :(得分:49)
看来你已经回答了自己的问题,因为你知道你的老板会反对。但是,如果这还不足以让你重新考虑发布你所写的关于这个问题的雇主所写的代码,那么请考虑Perl开发人员“Tilly”的真实例子 - Slashdot: Beware Employment Contracts 。
Tilly编写了Perl中使用的重要代码。 Perl社区依赖于他的工作,当他的雇主威胁要起诉他释放他在合同期间开发的代码时,它震撼了Perl开发社区。最终,雇主决定不对已发布的代码追求其权利,但事情可能很快就会出错。
为您自己,您的雇主和您的代码的潜在用户提供帮助:不要发布您不拥有的内容。如果您想争取在使用期间释放代码的权利,那么在获得依赖于您的代码的毫无戒心的用户群之前,请立即获胜。
您可能想阅读Tilly关于Professional Employees and Works for Hire主题的想法。
答案 1 :(得分:42)
即使您重写代码,我也看不出您在未经雇主同意的情况下将您的雇主代码作为开源发布的任何法律或道德依据。如果您这样做并且您的雇主发现,最好的情况是您被解雇了。最糟糕的情况是你被起诉。如果我是你的雇主,我会做后者。
顺便说一句,既然你说你的雇主经常搜索员工,那么在这里以你自己的名义发布这个问题可能不是一个好主意。
答案 2 :(得分:12)
是否道德取决于您对正确与错误的看法。在这种情况下,您和您的老板可能会有不同的想法,因此我不确定这个问题是否有意义。
您真正想知道的是合法。这取决于您当地的法律和您的雇佣合同条款。至少在比利时,除非合同条款明确另有规定,否则公司将对您为公司所做的所有工作拥有版权。我相信这通常也是其他地方的规则。例如,美国版权法将其称为“works made for hire”:
(b)为雇用而制作的作品。 - 在这种情况下 雇主雇用的工作 或其他工作的人 准备被认为是作者 本标题的目的,除非 双方已明确表示同意 否则在书面文书中 他们签署,拥有所有权利 包含在版权中。
所以不,你不能仅仅接受这项工作并在其上拍一张免费软件许可证。
但是,版权仅涵盖实施,而不是创意。再次from US copyright law:
绝不是 为...提供版权保护 作者的原创作品延伸至 任何想法,程序,过程,系统, 操作方法,概念, 原则,或发现,无论如何 它描述的形式, 解释,说明或体现在 这样的工作。
这是专利与版权之间的区别。因此,如果没有关于这些想法的专利,您可以自由地创建新的实施。
编辑:正如一些评论者所说,您的雇佣合约可能包括非竞争或不披露条款,甚至可能适用于重新实施。
Edit2 :如果违反了non-disclosure clause,则trade secret law可能会适用。正如你可以阅读该法律(或Tim Howland的answer)那样,“盗窃商业秘密”的处罚可能非常严厉。
答案 3 :(得分:9)
它是非法的和不道德的,如果你自己写它而不“重写”原始代码,那么你就违反了你的雇佣合同。
顺便说一下,开始寻找工作。我是你的老板。
答案 4 :(得分:5)
您不仅要勉强支付给您创建代码的雇主,而且还要将任何善意采用您的代码的人作为其项目的一部分。如果您将代码传递给您没有合法权利使用的其他人,那么当您的盗窃行为 - 以及盗窃行为被发现时,您将强迫他们撕掉您的代码并从头开始重新实施。
编辑:以下几位评论员似乎感到困惑,并认为这是版权法的问题,并且不会将借用雇主的源代码归类为盗窃,因为雇主仍有其原始财产。然而,雇主已经失去了对他们的业务可能非常有价值的东西 - 他们对代码的独家访问,为他们提供了竞争优势。这与版权无关(尽管如果您根据自己的版权发布雇主的代码,如大多数开源许可证所要求的那样,您显然是在进行欺诈) - 问题在于这是盗窃商业机密。如果代码是雇主业务的组成部分,那么它可以被视为商业秘密。商业秘密不必在政府注册,因此如果您的雇主生气,您很可能会上法庭。如果您有一位优秀的律师,您将立即解决,以避免被起诉。
故意泄露商业秘密 - 也称为商业秘密盗窃 - 是一项联邦和州的犯罪行为,可处以最高10年的监禁和500,000美元的罚款。换句话说,你不仅仅是搞砸了你的雇主,搞砸了任何善意采用你的代码的项目,但是你也在为自己的重大法律危险做好准备。
答案 5 :(得分:4)
这是知识产权盗窃,除非你住在中国,否则这是非法的。
我很钦佩您对开源社区的考虑。不幸的是,你受到法律的约束 - 该代码实际上是你雇主的财产,因此释放它相当于将他们的办公室家具带到楼下并交给陌生人。
即使代码背后的概念也可能属于它们,所以如果你重写它就没关系。
此论坛上没有人会推荐非法或不道德的活动,所以如果你确实试图规避这一点 - 而且我确定有办法 - 除非你决定咨询你当地的犯罪团体,否则你将独自一人提示。
答案 6 :(得分:2)
是的,未经雇主许可,将您的代码作为开源代码发布是不道德的。不幸的是,你无能为力。我不建议您制作正在使用的专有代码的开源版本。诉讼的空间太大了。
免责声明:我不是律师。
答案 7 :(得分:2)
这可能是我们大多数人所说的像“响应”这样的“X档案”; - )
仅仅是为了记录,我也认为 - 至少在概述的情况下 - 这将归结为“智力盗窃”,所以它实际上归结为你合同中的具体细节。
另外,我个人会问自己一些问题,比如:
因此,我不仅可以了解您的情况,还可以了解您的雇主的情况 - 事实上我会 非常 厌倦了只是释放我的员工知识产权进入开放/公共领域(或作为开放源代码),当然,如果这意味着我可能会牺牲竞争优势。你签了任何NDAs吗?
因此,这确实是一个道德困境。
另一方面,我也可以理解人类真正需要知道某些事情的情绪(如果确实如此),那么如果你的代码要解决世界范围内的重大问题,比如“世界饥饿”,“世界贫困“,”癌症“,”艾滋病“,或”能源危机“,提出清洁的核能,然后为了上帝的缘故:哎呀; - )
不,老实说:如果我处于类似情况,我会确信将信息发布到我根据合同开发的那个 - 为了可能以某种主要方式帮助人类,我会考虑将其提取下来非常抽象的算法基础知识,可以轻松匿名地发布到wikileaks.org等网站。
事实上,只是用niché语言重新实现算法(想想brainfuck ;-))也可以帮助模糊起源,有很多niché语言不是主流,并且许多开发人员不一定理解这些语言。 实际上,您甚至可以对您的信息进行加密或密码保护,这样它就需要被第三方感兴趣的解锁,这样您就不会直接提供任何信息。使用可在可预见的时间范围内通过相应计算能力破解的加密方案,可以保证您的代码最终会被某人解锁。
但是,无论如何,我绝对不会发布任何与我的名字或任何其他个人信息相关的信息,这些信息可能会在最坏的情况下用来对付我。事实上,我甚至不会从我的工作场所,家里或任何可以直接链接到我的地方参与任何与此类努力有关的活动。
答案 8 :(得分:2)
我不是律师。最好咨询一个。
但这对我来说听起来不道德。
我不知道您的雇佣协议,但如果您在公司的时间写下并且获得报酬,我会说该软件属于他们。如果你有一个不竞争的条款,即使重写对你来说也是冒险的。
最好咨询律师。
答案 9 :(得分:1)
首先,我会重新阅读你的合同,可能是在律师的帮助下,看看究竟是允许的,什么不是。
你可能会被允许暗示别人有可能做那样的事情。这通常足以促进独立发展。请确保此提示是以私人/匿名方式完成的,并且不包含任何只有您可能拥有的信息。
答案 10 :(得分:1)
这可能是它自己的问题,但在这里似乎相当主题。每个人都在说检查你的工作合同,谈论不披露和不竞争......如果你被雇用,你从未签署过任何合同或协议?您不是该代码的所有者并可以随意发布吗?在其中一个SO播客中,Joel提到在这样的情况下,程序员是所有者并且可以释放它。我知道有什么东西可以捕获,但有没有关于这种情况的信息?
答案 11 :(得分:0)
简短回答:无论您是否将其作为开源代码,窃取您雇主的代码几乎肯定是非法的和不道德。
简短的解决方案:在家里和你自己的时间从头开始重写。
简短的警告:您的雇佣协议/合同可能可能会完全阻止此类事情。在你采取行动之前阅读。
从定义您认为需要创建的要求和规范的文档开始。如果你坐下来思考你的第一个原型的结果(你是为了建造而付出的),那么你很有可能会看到改进的机会。创建一个具有该任务的开源项目,并开始编写这些要求。编写一个符合您要求的全新产品,让每个人都能看到并做出贡献,并且您可能会创建一些有用的东西,而且对您的原始作品几乎没有可追溯性。
棺材中的短钉:当你重写它时,先用另一种语言写它。如果项目很受欢迎,请稍后返回项目并创建不同的语言版本(包括您在工作中使用的版本)。
tl; dr :您的就业协议/合同可能可能会阻止这类事情。在行动之前阅读。注意:这有意与上面的警告相同。
答案 12 :(得分:0)
大多数合同都可能是一个条款,说明所写的项目属于您的雇主。如果你这样做,我想你最终会很快被解雇。
答案 13 :(得分:0)
我认为你有一种让自己陷入困境的独特才能。只需回顾你正在做的事情,亲眼看看你有多伤害自己和经济!
(一旦发生这种情况,需要遵循一系列后果 - 你将停止支出,开始拖欠贷款,增加失业数量并造成混乱)
所以在做这样的事情之前,只要想想你是否处于正确的意义上。每天每个人都可以找到违反规则的机会。但这不是我们所雇用的。所以请!
答案 14 :(得分:0)
你可以(不应该)做一些事情。
a)在没有许可证的情况下发布源代码。如果您的雇主拥有该来源,则为版权侵权。没有许可证的来源不是开放源代码,它只是一个想法的存储库,可以复制这些想法而不是
b)使用许可证发布源代码。如果您的雇主拥有该来源,则这是版权侵权,也可能是欺诈(IANAL)等其他内容。它还完全破坏了人们对开源许可证的信任。
我能想到的事情并不多,会让我的一名员工当场解雇,但发布我拥有的软件,表面上是开源软件,才有资格!
答案 15 :(得分:0)
您的雇主拥有您根据其雇佣生产的代码。这是您出售开发技能时所签订的合同;您为您的雇主生成代码并将其所有权归还给他,并且他为您的代码赚钱并且将其所有权归还给您。这是一笔交易。在这种情况下,除非特殊情况(生与死等),否则在未经适当同意的情况下发布代码是完全不道德的。
但是,使用您的知识和积累的经验和培训来编写完全独立的软件来实现类似目的并不是不道德的。您的雇主可能会认为这是一个利益冲突并为您解雇,但只要此代码完全没有您雇主代码库中的任何代码,他几乎没有其他任何东西可以做(据我所知; IANAL)(假设标准的雇员 - 雇主关系,没有特别合同。)
如果您真的觉得类似的代码对开源社区来说是一个好处,我相信我们都鼓励您继续构建和发布该项目,但是请确保您完全这样做法律上毫不含糊的方式;确保原始代码的 none 出现在您的克隆中,并且您不受无关立法或合同的约束。围绕您的项目的不明确,不清洁或其他可疑的许可将使对于更大的开源社区毫无用处。
祝你好运!答案 16 :(得分:0)
想到我会加上我的意见:
我认为保持代码封闭源是不道德的,如果这样做对你提供的好处很少,而释放它会让很多人受益。
但是,如果您的雇主拥有该代码,那么这是他的决定,而他做出不道德的选择并不会赋予您对其代码的任何权利。
我看到了一个解决方案,但是:如果你的合同允许你在工作时间之外编写 - 并拥有 - 这种代码的所有权利,你可以编写代码,将其作为开源发布,然后使用雇主代码中的开源库(作者恰好是你的图书馆)。
但是,您必须为代码选择合适的开源许可证(例如,GPL代码无法在其他封闭源代码软件中使用)。
但是,如果您已经支付来编写代码,那么雇主就有最终决定权。
请注意,IANAL。
答案 17 :(得分:0)
我不同意这里的大多数回复,我的思维方式是这样的:如果你自己开发一些东西,在你自己的时间,这是你的工作智慧,因此你的知识产权就是你的'我们有权利为您的产品做任何您想做的事。你不能只是放弃并忘记你编程的好主意/实现,因为你曾经在雇主X工作过一段时间。如果我们都这样做,OSS可能就不存在了。
但是,如果代码背后的想法不是你的,或者代码库本身不仅仅属于你自己,那么你需要得到生产中所有相关方的同意。
我并不是说你不会被解雇,但这是你做出的决定,你可以自由地做出决定。但是,我严重怀疑如果你能证明(或反驳另一个)这个想法和实现来自你的头脑并且是在你的空闲时间完成的话,你会遇到任何法律问题。
答案 18 :(得分:0)
如果您将雇主的代码作为“免费软件”发布,则会危及您所贡献的自由软件项目。这是自由软件基金会要求提前验证版权的原因之一,如有必要,还要求个人雇主免责声明。通过表格和免责声明,他们可以很好地抵制版权侵权诉讼。如果有人试图贡献雇主的代码,那些不会仔细检查贡献者代码所有权的项目将面临法律纠纷。