源代码、数据所有权与交接

By Manboo Studio4 min read
请求项目估算WhatsApp
源代码、数据所有权与交接

“我们付了钱,所以它归我们所有”是常见的假设。这个假设是否成立,完全取决于合同中的约定;而在没有相关条款的情况下,许多司法管辖区的默认规则更有利于开发者。

所有权应涵盖哪些内容

一份妥善处理此问题的合同,应分别涉及以下四项内容:

  • 定制源代码:专门为本项目编写的代码。
  • 设计资产:界面、图标、插图以及可编辑的源文件,而不仅是导出的图片。
  • 数据:应用程序存储的全部内容,且应明确无歧义地归客户所有。
  • 文档:规格说明、架构说明和部署指南。

需要关注的条款是:在客户支付最终款项后,将定制工作的所有权转让给客户。这里有两点很重要:转让应在付款时生效,而不是等到某个更晚的事件发生;同时应明确包含设计源文件,因为这些文件经常被遗漏,事后再获取也很麻烦。

哪些内容不能归你所有

有些组件是获得许可使用,而不是转让所有权,这很正常:

  • 开源库。现代应用程序都会使用许多开源库。它们各自附带许可协议,其中大多数都允许自由进行商业使用。关键在于这些许可是否与你的使用方式兼容——要求提供一份许可清单是合理的。
  • 商业组件:付费图表库、获得授权的字体、购买的模板。这些组件的许可可能按项目、按开发者或按部署计算,许可需要转让给你,或者重新购买。
  • 开发者预先存在的框架代码。许多代理机构会在不同项目之间复用内部工具。这种做法合法,通常也有益,但这些代码应以永久许可的方式授权给你,而不是任其处于未定义状态——否则,你的应用程序有一部分就属于其他人。

图库图片是一个反复出现的问题。获准用于原型图的图片,有时并未获准用于生产环境;等到上线后才发现这一点,代价会很高。花五分钟询问每张图片的来源,是值得的。

交接包

检验交接是否充分很简单:一名从未接触过该项目的合格开发者,能否接手它?这需要具备:

  1. 包含完整历史记录的代码仓库,并转移到由客户控制的账户中。提交历史很重要——新开发者正是通过它来理解事情为何如此。
  2. 部署指南,详细到足以从零开始重建环境。
  3. 环境配置:有哪些设置、各自的作用,以及哪些属于机密信息。
  4. 所有账户凭据:托管、域名、数据库、第三方服务和商店账户,均转移至客户名下。
  5. 数据库架构及所有迁移脚本。
  6. 第三方服务清单,包括每项服务的用途和费用。
  7. 设计源文件。
  8. 已知问题和延期事项,并如实记录。

最后一项尤其值得明确提出要求。每个项目都有已知的妥协之处,而愿意将这些问题记录下来的开发者,实际上是在为客户提供真正有价值的东西。

验证交接是否有效

最有力的验证方式,是让独立人员仅凭交接包,将应用程序部署到全新的环境中,且不向原开发者询问任何问题。如果能够成功,说明交接是真实有效的。

在双方关系仍然良好时完成这项工作,要比关系结束后再做容易得多。将最终款项中的一小部分设为以此项验证通过为支付条件,是合理的做法。

代码托管

如果开发者保留代码——基于平台或订阅的安排有时会出现这种情况——源代码托管会将一份副本交给第三方,并在预先约定的条件下释放给客户,例如开发者停止经营。

这会产生费用并增加管理工作,主要适用于应用程序对业务至关重要且开发者规模较小的情况。对于大多数小型项目而言,直接转让所有权并完成经过验证的交接,以更低成本实现的效果更多。

在开始之前达成一致

  • 谁拥有定制代码,以及从何时开始拥有。
  • 是否包含设计源文件。
  • 预先存在的开发者代码如何授权。
  • 数据明确无歧义地归客户所有,并以可导出的形式提供。
  • 交接包包含哪些内容。
  • 账户从一开始就以客户名义创建。

Manboo 相关服务

提交项目需求

把产品目标、当前流程、目标平台、约束条件和决策时间告诉我们。我们会先评估范围,再给出可执行的下一步建议。

源代码、数据所有权与交接

补充项目需求(选填,便于评估范围与费用)
我们仅将上述信息用于评估与响应您的项目需求。阅读完整隐私政策。请勿在表单中提交密码或 API 密钥等敏感凭证。