问题是:我有多年以来创建的代码库,并用作大多数代码的模板我编写的应用程序。它远远超出了项目范围。
我还打算将其用于产品,所以我真的不希望为相对较小的项目提供它。
我猜这不是这个行业第一次发生这种情况。规避此问题的最佳方法是什么?我猜想共享库之类的东西可能会有所帮助。
#1 楼
首先要记住的是,源代码的价值与二进制代码不同。拒绝签订需要交付源代码的合同,或者坚持为交付源代码支付额外费用是完全合理的。合同是双向文件。不要让另一部分仅仅因为它们是“大公司”并“一直做这件事”而决定需要什么。首先,决定您愿意提供什么以及如何获得补偿。然后将他们的合同交给律师,并确定需要更改的内容。然后,您进行谈判。当年轻人开始承包合同时,不要做很多事情。不要仅仅因为他们似乎有很多经验而签字,而您却没有。这是被窃取的好方法。
调查他们为什么想要来源。他们可能会想要,因此以后可以选择使用其他开发人员。或者他们可能只是因为害怕您会被公共汽车撞倒而突然想要留下无法改进的二进制文件,所以才想要这样做。如果是第二种情况,请查看软件代码托管服务。如果您破产或无法维护该软件,这些服务将保留源代码。这既可以满足您保留自己的代码专有权以服务其他客户的需求,又可以满足他们的愿望,即在发生某些不良情况时不要随便携带一套不可维护的二进制文件。
评论
如果软件代码托管服务破产怎么办?
–user11153
2015年4月7日在10:04
然后,该代码的所有者-希望-仍然存在,并且可以将其代码传递给另一个托管服务。该服务旨在删除单点故障。
–亚历山大
2015年4月7日在11:54
软件代码托管服务是否使用软件代码托管服务?
– FreeAsInBeer
2015年4月7日在16:28
@FreeAsInBeer:不,他们使用软件代码托管服务。明显。
–nneonneo
2015年4月8日在6:09
@Alexander,仅在重新签订合同为合同义务时。否则,开发商将再次收取第二次托管费用。
–起搏器
17年6月21日在16:12
#2 楼
“否”是一个很好的答案,实际上,这是一个非常有用的答案,由于某种原因我无法理解它被低估了。”“嗨,我们突然决定我们也只想要源代码,是免费的。“
”嗨,没有。“
确实没有那么困难。
然后,如果他们希望支付巨额的款项他们已经欠您的钱,您可以给他们一个简化的应用程序版本,其中仅包括他们实际需要的资源,并小心他们获得了绝对非排他性的权利。
不要使简单复杂化东西。
评论
简明扼要的答案。
–西藏沿海
17年2月3日,14:20
#3 楼
您的问题是,“解决此问题的最佳方法是什么?”但是您认为什么是问题?其他人正确地指出,这是谈判的问题:一切都有价值,这取决于您给客户提供所需价格的价格。但是您还必须仔细考虑并编写合同中—提供代码的含义。只是这样客户才能看到吗?客户可以修改吗?尤其是,您是否考虑授予客户多年以来创建的代码库的专有权限,并将其用作大多数应用程序的模板,这样您以后就永远不会再使用它了?
您需要确保合同明确说明谁有权使用代码以及以何种方式使用代码。
#4 楼
请记住,任何源代码都需要许可证。如果您移交源代码,则公司可以使用源代码来执行许可证允许的任何操作,以及超出版权限制的任何操作。因此,如果您移交源代码,您将拥有一份合同,该合同绝对清楚地表明您保留源代码的专有版权,并且确切地允许使用源代码。当然,源代码+许可证也不是免费的。一家大公司不太可能侵犯您的版权,因为被抓住会给他们的声誉造成重大损害,除了经济损失。另一方面,客户无法接受无法保证将来可以解决任何问题的软件付款。
评论
但是也认为检测源代码滥用非常困难,尤其是在您不搜索源代码的情况下。不要盲目地信任许可证:对于某些人来说,这只是一张纸。
– o0'。
2015年4月5日14:52
@Lohoris,但是,如果您怀疑应用程序正在使用您的代码,则很容易分辨,无论它只是二进制文件。您需要确定的是基本的逆向工程技能。
–rev
2015年4月5日在23:16
-1,因为我认为您的“一家主要公司...”声明没有任何证据,这只是一个猜测。
–djechlin
2015年4月6日,下午3:34
@Lohoris:如果发生这种情况,对您造成的损害是什么?最佳案例:海报提供者为另一家公司提供服务,并且发现他们已经拥有他为此感到自豪的图书馆。主要发薪日!
– gnasher729
2015年4月7日下午13:54
#5 楼
之前,我通常将MIT许可下的源代码(库和所有)提供给客户端。如果您的库组织良好,则只为该特定客户端提供所需的文件/资源,仅此而已。我认为这对我和客户都是公平的。但是,总有一个问题,那就是以前不属于库的一部分,根据合同为该特定客户编写了新代码。因此,在开始项目之前,我开始与客户讨论此问题。有些客户想要该代码的所有权,有些则不需要(我总是给予负面奖励,例如对那些这样做的人收取更高的价格)。但是,确实,对于某些客户来说,讨论非常混乱,有时我为了让项目获得批准而和3或5个不同的人(包括他们的律师)交谈,所以现在我所有的图书馆都是我一直用来开发定制框架的说明,并向客户解释我将使用此框架,但是该框架是具有不同许可证的其他产品。 (有时我在解释时会使用“软件组件”,因为“框架”可能对他们来说是未知的)。我总是根据MIT许可提供使用过的文件的代码,并且(因为所有代码都组织得很好)低级代码(甚至是新代码)仍保留在框架中(供我和他们重用),但相关代码对他们的应用程序来说,仅仅是让他们遵守自己的条款(对于我来说,该代码很可能在另一个项目中重用)。当然,所有这些都正确地写在合同中。我认为这也很公平。
关键是:“这些组件是不同的产品”,所有组件在开始之前都写在合同中。
所以,您知道关于使用共享库可能是正确的。但是,我问你,为什么不根据允许他们降低风险的许可,不向他们提供您使用的源代码?我认为那很公平。
评论
我认为这是一个不错的答案。 OP显然不应该只是过渡而已,但是,另一方面,为自定义项目索要源代码似乎非常合理(而且我已经看到足够多的承包项目完全脱离正常轨道,需要被某人救出)否则,如果我正在寻找的话,我可能不会考虑拒绝提供货源的承包商)。
–卡西
15年4月7日在15:38
#6 楼
解决此问题的方法是协商。如果他们想要源代码,那么他们应该准备为此付出代价,并且由您决定应支付多少。
/>
另一方面...如果他们不准备支付您想要的价格,他们可能会决定“将业务转移到其他地方”。
欢迎来到商业世界: -)
当您将来与潜在客户交流时,请务必尽早提及此问题,以避免浪费大家的时间。
还值得一提的是,您所做的就是对开源开发人员以及正在寻找开源解决方案的(受过教育的)客户的厌恶。
评论
首先,获得许可证的可能性远远超过“他们想要的”。其次,我认为怪怪OP不能“尽早提出”而不是公司是不公平的。这有点编辑。第三,我不明白为什么开放源代码开发人员如果希望在一个封闭源代码项目上工作,就会面对麻烦。第四,如果公司正在寻找开放源代码解决方案,那么他们将要求这样做,而不是出于其目的而不是私有复制源代码。
–djechlin
2015年4月6日在3:37
@djechlin-1)我没有怪OP。但是,如果他不准备就这一点进行谈判……那么他>>应该<<提早提出。对于熟悉软件的客户来说,这显然是合理的要求。 2)“ anathema”将是OP正在做的……试图保留源代码。 3)虽然没有迹象表明客户要求开源(也许他们并不真正了解开源的好处),但显然>> do <<想要源代码,这是OSS的主要优势之一。
– Stephen C
2015年4月6日10:52
这个评论是当场。作为我自己的软件开发人员,我所有的客户都获得使用和修改软件的专有许可,并且我为他们提供了源代码。除此之外,我保留重用我在其他项目中编写的代码以及重用该项目中其他项目中的代码的权利。这为他们节省了金钱,也为我们俩节省了时间。没有人对此有任何疑问。
– dotancohen
2015年4月7日在8:39
@dotancohen:我希望他们获得“非专有”许可证。如果他们拥有专有许可证,则无法为下一个客户重复使用该代码。您不能有两个拥有相同代码“独家”许可证的客户。
– gnasher729
2015年4月7日13:57
许可证允许他们使用和修改代码,但不能共享,出售或分发代码。由于大多数PHP在VPS上运行,因此如果代码“泄漏”了,我几乎无能为力。在我从事的领域中,我认为这没什么大不了的。
– dotancohen
15年4月7日在15:18
#7 楼
这对您来说可能为时已晚,因为您可能已经通过合同达成协议,并且可能已经与不同的客户达成了相互不兼容的条款。您可以通过两种方式提供您的客户以及您的源代码。版权和许可的所有权。
一些客户将需要源代码的所有权。这意味着,在此过程的最后,他们将向您付款,而您作为交换,将为您为其创建的代码提供版权。原因之一是他们是否在源代码中看到了巨大的知识产权潜力,并且可能希望在其公司资产负债表上对其进行估值。在这种情况下,除非您还从客户那里获得了授予该许可证的许可,否则您将无权继续将该源代码用于其他项目。
如果您的客户正在购买货架产品本身,他们希望获得使用该软件的许可,而不是源代码的所有权。他们应该期望您正在向许多其他组织出售相同(或类似)的软件,并且他们希望从更广泛的客户群中受益于较低的购买成本。
这个问题的情况是两者的混搭。
这就是我想要做的。我会向您的客户授予使用(和修改)您的共享代码的许可证。如果客户询问,我将指出这是您已在多个项目中使用的共享代码,并且根据您继续使用这项工作的需要,为将来的工作制定了当前的出价。指出,这为您的客户减少了在该项目上的时间,因此他们付出了更低的价格。像该项目使用的其他共享代码库一样,它们具有使用该代码的许可,并允许其他开发团队开发此代码以及基于此库的其他项目。但是,如果他们愿意拥有所有代码,则愿意创建一个替换,但这将是额外的费用。
根据您已经承诺的内容,您可能会免费编写替换功能或提供源代码。
请记住,有不同类型的库。 C ++中的标准模板库是一个很好的例子,该库包含在源代码级别,并被编译成项目可执行文件,该文件与您使用通用代码的方式非常相似。
评论
基于这样的评论:“他们同意,合同没有最终确定,没有签署,然后又回到了这一条款。” -就在两天前,我认为谈判仍在进行中。
–user40980
2015年4月7日下午13:51
评论
他们需要什么?很有可能他们只是想确保拥有代码,以防您破产。您可能可以添加限制许可使用的许可。一次我在一家公司工作过的公司的代码(对吗?)是由一家律师公司提供的源代码,以确保这种情况的安全。定制软件应随附源代码。否则,它是零售产品。我认为他们不需要冷冻产品,以防您/您的企业以后发生任何事情。但是要相应地收费。还可以考虑将您的库代码放入已编译的库中(如果您的语言支持),以便他们可以修改软件,对其进行编译,但不容易自己重用您的库。
@CodeAngry“应该”吗?不。只有他们支付正确的金额。
@CodeAngry不。是你的,除非另有协议...
面对现实吧-不管您将框架投入多少年,它对您来说都没有任何价值。不管您认为有多好,都不会有人基于没有文档证明,不受支持且通常未知的框架来创建新的应用程序。向他们提供完整的源代码,确保您保留应用程序非定制部分的版权,并获得满意的客户。