软件定制开发合同:源码交付要写清这8项
在软件定制开发合同里,“源码交付”四个字看起来最实在,实际最容易留坑。多数纠纷不是因为乙方不给源码,而是因为合同没写清给什么、怎么验、什么时候给、给不了怎么办。等系统上线两三年、原厂商服务跟不上时,甲方才发现拿到的代码编译不过、缺依赖、少文档,接手成本比重新开发还高。
一、先把“源码”清单化,别写“提供源代码一套”
“源码一套”是纠纷高发词。建议在合同附件里列成可勾选的交付物清单:
- 自研代码:前端、后端、移动端、报表与脚本、存储过程;
- 构建资产:Dockerfile、CI/CD 脚本、依赖锁定文件、环境变量清单、中间件与网关配置;
- 数据资产:数据库 DDL、初始化数据、视图索引、版本升级脚本;
- 接口资产:OpenAPI 文档、第三方对接说明;
- 技术文档:架构说明、数据库字典、部署运维手册、二次开发指南。
同时反向约定:安装包、可执行程序、License 文件不构成源码交付,不能用来冲抵。
二、知识产权:归谁、能做什么、乙方保留什么
只写“源码归甲方”并不够。常见写法是:为本项目定制开发的部分著作权归甲方;乙方的通用框架、基础组件、工具库保留权利,但授予甲方永久、不可撤销、可转授的使用与修改许可。还要明确三件事:甲方能否委托第三方二次开发与运维;能否在多工厂、多仓、多站点部署(超范围是否另计费);软件著作权登记归谁、费用谁出。
三、开源与第三方组件,要许可证清单和 SBOM
MES 系统、跨境物流系统这类项目,往往集成大量开源组件与商业 SDK。合同中应要求交付软件物料清单(SBOM)与许可证清单,写明 GPL/AGPL 等传染性许可证的处理方式、商业授权费用由谁承担。地图、OCR、电子签章、税控、设备驱动这类不可转授的第三方组件,要约定替代方案或托管方式,否则源码交付了也跑不起来。
四、交付标准要可验证、可复现
建议把标准写成一句话:“在甲方或第三方提供的干净环境中,依据交付文档一次性构建成功并可部署运行。”配套约定:编译通过、关键单元测试通过率、无硬编码密钥与账号、构建日志留档。验收清单逐项签字,避免后期各说各话。
五、交付时点与触发式托管
交付与付款的先后顺序要在合同里定死:可以约定验收合格且尾款支付后若干工作日内交付;也可以先交付再付款,但同步签署源码托管协议(escrow)。托管的核心是触发条件——乙方停业、破产、连续一定期限不履行维保义务时,由托管机构向甲方释放源码。维护期内升级版本是否同步交付,也要单独写一条。
六、违约、侵权担保与知识转移
- 逾期交付按日计违约金,拒不交付的赔偿方式与源码作价要事先约定;
- 第三方主张知识产权时,由乙方承担侵权担保与替换义务;
- 开源合规违约的赔偿与整改期限;
- 约定知识转移:不少于若干小时的架构与部署讲解,核心开发人员签署权属声明,避免外包人员代码权属链断裂。
七、制造业与跨境物流场景的三个特殊点
第一,MES 系统的 PLC 数据采集通常依赖 OPC UA、Modbus、S7 等协议库和设备厂商驱动,这些多为商业授权且不可转授,合同要区分“随源码移交的自研采集服务”和“需甲方另行采购的驱动授权”。第二,中俄跨境物流系统对接口岸、铁路、海关及俄方系统,源码交付不等于接口授权转移,接口凭证管理与代理服务的运维责任要单独约定。第三,出口退税系统涉及税局接口、CA 证书与签章组件,其绑定关系、更新责任同样要落到条款里。
八、给甲方的一句话判断标准
拿到源码后,让一个没参与项目的内部工程师或第三方团队,仅凭交付文档在两周内把测试环境跑起来——能做到,说明条款写到位了;做不到,说明合同里缺的不是“交付”两个字,而是交付的边界与验证方式。智能制造与工业互联网项目生命周期长,源码交付条款本质上是为未来五到十年的自主权买单。
← 返回资讯列表