软件开发源码归谁?交付清单与著作权归属6问
从询价谈到签约,甲方问得最多的两个问题之一就是「源码到底归不归我」。这个问题的答案不是「看你谈得怎么样」——法律有默认规则,合同写不清,就按默认走。聚辉软件做了十年外包,见过不少甲方在交付半年后才发现,自己手里只有一堆能跑起来的代码,处置权却不在自己名下。
一、先看默认规则:没写清楚,著作权归开发方
《计算机软件保护条例》第十一条规定:接受他人委托开发的软件,其著作权的归属由委托人与受托人签订书面合同约定;无书面合同或者合同未作明确约定的,其著作权由受托人享有。这句话有两层意思需要分开看:一是必须有书面约定,口头承诺不算;二是「交付源代码」和「取得著作权」是两件不同的事——前者是交付了文件,后者是转让了权利。合同里只写「交付源码」而不写归属,甲方拿到的是能编译的代码,但复制、修改、再许可、登记软著这些权利可能仍不在自己手里。
二、源码交接的6项交付物清单
源码归属谈定之后,交接本身也有标准动作。只给一个压缩包的项目,接手方往往要花两到四周才把环境跑通,这笔时间最终仍然由甲方买单。完整的交接应当包含以下六项:
- 完整代码仓库,含主干与开发分支的提交历史,不是最终版本的压缩包;
- 构建与部署脚本,能在一台干净服务器上从零跑起来;
- 数据库结构脚本与初始数据说明;
- 第三方依赖清单与版本锁定文件,如 package.json、pom.xml、requirements.txt;
- 接口文档与环境配置说明,含测试与生产环境地址、密钥的交接方式;
- 账号与资产移交:域名、服务器、云平台、应用商店开发者账号、支付商户号。
六项里最容易被漏掉的是构建脚本和依赖清单。没有这两项,源码只是一堆需要重新考古的文本。
三、三种常见的归属约定,以及它们对价格的影响
第一种,著作权全部归甲方。最常见,也最贵:开发方要让渡后续复用这套代码的权利,报价通常比「仅授权使用」高5%到15%。
第二种,著作权归甲方,开发方保留自有通用组件与框架的权利。折中方案,价格接近第一种,但必须在合同附件里逐项列明哪些属于通用组件,否则日后容易起争议。
第三种,著作权归开发方,甲方获得永久、不可撤销、可自行修改的使用许可。价格最低,适合内部管理系统这类不需要对外处分代码的项目。但许可条款里必须写清「可自行修改」以及「可委托第三方修改」,否则换人接手时会被卡住。
四、开源组件与第三方 SDK 的许可风险
交付的代码里通常有三成以上是开源组件,这里有两个真实风险。一是强著佐权许可证,比如 GPL 家族,要求衍生作品同样开源,闭源商用项目用了就构成违约;二是部分商业 SDK 按调用量或设备数计费,源码交付后甲方自行扩容,费用会落到甲方头上。签约时让开发方出一份第三方组件清单,标注许可证类型和计费方式,这一页纸能省掉后面很多麻烦。
五、软著登记:由谁办、登记在谁名下
软件著作权登记不是取得权利的前提,但它是维权、申请补贴、参与投标时的凭证。登记主体应当与合同约定的著作权人一致,这一点在源码归属条款里最好一并写明。常见错误是开发方顺手以自己的名义登记,甲方后知后觉。约定方式可以写成:验收后30日内由开发方配合提供登记所需材料,包括源码前后各30页、说明书、申请表,登记在甲方名下,登记费用由甲方承担。
六、可以直接抄进合同的5句话
本项目产生的全部源代码、设计稿、文档及其著作权(署名权以外的全部财产权利)自甲方支付全部价款之日起归甲方所有。乙方应于验收通过后10个工作日内移交上述六项交付物,并配合甲方在新环境中完成一次完整部署。乙方保证交付物不含侵犯第三方知识产权的代码,如产生争议由乙方负责解决并承担赔偿。第三方开源组件与商业 SDK 清单见附件,许可证类型与计费方式由乙方书面披露。乙方不得将本项目代码用于同行业其他客户的同类产品,期限为交付后24个月。
源码归属这件事,谈的时候是一句话,出事的时候是一场官司。它本质上不是技术条款,而是价格条款——先想清楚要哪些权利,再回头看报价是否合理。