在其他客户项目中重用代码是否合法?


22

我正在作为移动应用程序的独立软件开发人员。客户要求我开发一个移动应用程序。因此,目前我正在计算为该项目撰写报价的时间和精力。

该应用程序本身仅会使用一定的时间,因为它与某个事件相关,在此之后将毫无用处。但是,该应用程序的基本功能对于希望为其活动使用类似应用程序的其他客户可以重用。

目前,我想知道是否可以为客户开发应用程序,让他为其他客户的应用程序开发并重用部分源代码吗?

那么,应对这种情况的最佳方式是什么?

  • 该应用程序的源代码属于谁?
  • 当客户为开发付费时,我是否必须将源代码提供给客户?
  • 如果需要,是否仍可以保留它的副本并在以后重用?
  • 我是否必须要求客户重用代码?
  • 我是否需要在这里使用某种许可模型。并且让第一个客户只支付开发的一部分,以便我可以重用代码而无需担心吗?

我希望我能阐明我的情况。我期待着您的答案。


您是否已经与客户建立了正式合同?
Thomas Owens

不,目前我正在筹划阶段。到目前为止,我仅与客户讨论了要求。
2012年

5
@Flo-编写解决所有这些问题的合同。默认情况下,版权归作者所有。当然,如果您同意一份另有规定的合同。
Ramhound 2012年

8
您应该咨询律师,而不要依靠一群不了解您的情况和当地法律细节的程序员的猜测。
Paul Tomblin,2012年

Answers:


26

在开始项目之前,您应该决定谁将保留代码的所有权。

如果他们高兴地允许您保留所有权,那么可以在其他项目中使用它。如果他们希望在之后拥有所有权,那就是谈判的重点。


6
建议您可以重用代码的交易,而不是针对客户竞争对手的项目,这可能符合您的利益。从他们的角度来看,这似乎更可口。
Emilio M Bumachar 2012年

4
如果他们反对,通常的选择是引用2rates。如果可以重用现有代码和库,则为1;如果仅为该项目从头重新创建所有内容,则为10倍。在实践中,您只介绍了“重用标准代码和库”只是为了掩盖自己,没有人注意到或关心。
马丁·贝克特

3
+1贝克特(Martin Beckett)。您在任何项目中都应该有两个代码库。一组“通用”库,其中包含带有全局应用程序的代码(您已向客户“许可”)以及客户在完成时实际上将拥有的“自定义”代码。您可以在合同中规定根据该项目的要求开发具有新功能的“通用”库仍需付费。您将根据具体情况与客户协商是否符合“普通”标准;客户可能想要的代码库不完全取决于您的许可代码。
KeithS 2012年

6

由于您还没有合同,因此您需要与客户一起解决这些问题,然后再签署最终合同。根据我的理解,如果客户同意您对时间和成本的估计,就会发生这种情况,因此您现在应该考虑与客户讨论需求。这些都是这些文档中经常包含的内容。包括的物品应与您和购买产品的人都同意,尽管取决于个人或组织,您可能无法获得所需的一切。

如果您没有太多的合同撰写经验,或者您有非常具体的问题,那么最好的人将是专门从事合同和商法的律师-他们会知道您的书面内容是否能在合同中站出来法院应该有问题。您不希望合同中的错误会在以后引起问题。


7
+1我也想补充一点,获得法律咨询或帮助撰写您的第一份合同是一个好主意,以便您能正确解决。通常,大多数交易非常相似,因此很容易将旧合同用作以后为新客户编写的合同的模板。
maple_shaft

4

到目前为止,答案非常好。我完全同意以下建议:

  • 问律师
  • 每次与任何人合作时都要草拟合同
  • 继续与您的律师合作
  • 利润!

在这种情况下,您已经知道“该应用程序的基本功能将可为其他客户重用”,实际上,我确信您(和其他人)已经经历了一些情况,在这些情况下您已经了解了一些基本功能或框架-他们在网络,移动设备,台式机还是其他方式上都将被重用。我的意思是真的,为什么我们不重用我们熟悉的东西呢?我们可能一直都在做。

这可能对您不起作用,但多年来对我有用:

  • 承担您认为将重用,保留所有权并将其许可给客户的任何事情的开发成本。在此过程中,没有外部资金易手,以保持所有权清晰。

在这种情况下,您可以在律师的帮助下清楚地表明,客户正在为基于您提供的基本功能构建的所有东西付费,他们拥有该自定义功能而不是基本功能,并且您可以继续自由地以类似的方式为他人发展。

如果客户要求排他性使用,那么您可以以一定的价格向他们提供使用,以补偿您的时间,精力和将来无法出售给其他任何人的价格。

当然,不利的一面是您正在免费开发某些东西。您必须确定它可以重用,并且其他人可以付钱给您,否则这是一场赌博。但是,如果您打算一段时间后成为一名独立开发人员,并且拥有或至少希望有一个客户群,那么从长远来看,可能需要考虑这种思路。

和律师谈谈!


3

该应用程序的源代码属于谁?当客户为开发付费时,我是否必须将源代码提供给客户?

这取决于合同。通常,您必须向客户询问所谓的排他性。例如,您可以为独家开发收取更多费用(然后客户将拥有代码);或者,您可以告诉他们客户将需要减少付款,但您合法拥有货源。您可以向客户提供/安装仅二进制版本的软件,以便客户可以自行修改。

如果需要,是否仍可以保留它的副本并在以后重用?我是否必须要求客户重用代码?

通常,保留副本不是非法/不道德的。当客户要求更多开发时,您可以使用它。但是,如果交易是排他性的,则将代码分发给其他人是不正确的。

我是否需要在这里使用某种许可模式。并且让第一个客户只支付开发的特定部分,以便我可以重用代码而无需担心吗?

不仅从代码重用的角度出发,还必须在许可过程中定义客户和您所关注的所有项目。因此,即使交易是单方面的,您也必须获得许可。此外,您还应为以后的同一客户提供有关将来开发的规定。


1
-1,没有理由即使您拥有源代码也无法分发。
user606723,2012年

@ user606723您能阅读完整的句子吗?However, distributing code (to someone else) if the deal was exclusive, is not right.也就是说,如果您已经为客户分配给其他人开发了专有代码,则不合适!
Dipan Mehta

“或者,您可以告诉他们客户将不得不减少付款,但是您合法地拥有货源。您只能向客户提供/安装二进制文件。 ” <-这就是我的意思。您可以授予源代码非专有权利。
user606723 2012年

@ user606723也不包括在我的答案中吗?alternatively you can tell them customer will have to pay less but you are legally owning the source-分歧的重点是什么?
Dipan Mehta 2012年

1
@DipanMehta:我同意user606723;而且您的最新编辑并没有解决问题。问题是“ [...]或者,您可以告诉他们客户将需要支付更少的费用,但是您合法地拥有来源。您可以向客户提供/安装仅二进制版本的软件”。听起来,如果您仍想拥有它,就好像无法将其提供给客户。事实是,您仍然可以出于特定目的将源代码许可给他们,而无需放弃所有权和/或放弃所有权利。
ruakh 2012年

-1

您始终可以在代码中使用其他库,例如开源。显然,客户将没有版权。在特殊情况下,您可以使用自己编写的库。客户为定制付费-这部分是为他和他的业务需求而设计的。不是特定于用户的,而是要在多个项目中使用的所有内容都可以是您自己的库。我在那里没问题。

问题是如果您重用接口或业务逻辑,或者甚至将同一项目转售给其他人。客户端通常不知道也不在乎实用程序代码。


1
当然,这一切都必须向客户披露。
user606723,2012年

1
不,不会。Apache或MIT之类的许可证允许商业使用。
Danubian Sailor'Jan

-1

其他答案过于简单。我并不是要给出完整的答案,只是要指出几件事。

  1. 您可以授予权利,也可以授予专有权。
  2. 如果您授予专有权,则可以维护该协议的一部分,即保留非专有权。(这将允许您亲自使用代码/程序)
  3. 即使您不提供专有权,您仍然可以提供使用,修改和分发源代码的非专有权。两者不是互斥的。

-1您的答案不包含任何其他人以前从未说过的问题!
Dipan Mehta 2012年
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.