外包项目最常见的结局,不是"做不出来",而是做出来了却拿不走、改不动、说不清。这三件事几乎全部由合同决定,而不是由技术决定。很多企业以为"我付了钱,软件自然归我",这与法律默认规则正好相反。本文把 8 个必须写进合同的条款逐条拆开,并给出可直接对照的自查清单。
先记住一条最容易被忽略的法律底线
《计算机软件保护条例》第十一条规定:接受他人委托开发的软件,其著作权的归属由委托人与受托人签订书面合同约定;无书面合同或者合同未作明确约定的,其著作权由受托人享有。
换句话说:你不写,默认就不是你的。 这条是软件外包里最贵的认知差——真到换供应商或自建团队时,源码和著作权不在自己手里,业务连续性就捏在别人手上。签合同前先确认这一条,再谈其他。
三类条款,决定"拿不走、改不动"
工作范围与变更机制(SOW):把《需求规格说明书》或《工作说明书》作为合同附件,写明功能清单、页面清单、集成清单,尤其要写清"不包含项"(如第三方系统改造、硬件采购、内容制作)。约定变更流程:提出 → 评估工作量 → 双方书面确认变更单 → 调整工期与费用。外包纠纷的起点,几乎都是"这个算不算在范围内"。
源码与著作权归属:直接写"著作权归甲方",而不是"提供使用权"。同时约定源码交付形式——完整可编译的源码仓库(含提交历史)、依赖清单、构建与部署文档,以及交付到甲方指定仓库或阶段性同步。若乙方要保留通用组件权利,必须逐项列明清单与授权范围,避免笼统表述。
交付物清单与验收标准:交付物逐项列明,验收标准必须可量化、可复现。用"可执行的动作 + 可观察的结果"描述,例如"用例 1-50 全部执行通过、P0/P1 缺陷为 0、源码可在干净环境按文档构建成功",而不是"系统运行稳定流畅"。
付款、授权、账号:三处最容易埋雷
里程碑与付款节点:付款节点要挂验收,不挂时间。建议结构为:合同签订(预付款)→ 需求与原型验收 → 设计验收 → 开发完成提交测试 → 验收测试通过 → 上线试运行 → 缺陷责任期满(尾款)。尾款比例不宜过低,否则后期响应会失去约束力。
第三方组件与开源许可:附一份《第三方组件清单》,含组件名、版本、许可证类型、是否可商用、由谁承担授权费用。开源许可(如 GPL 类)可能对代码分发产生约束,商业字体与图库未授权使用也会带来法律风险。
数据、账号与服务器归属:域名、服务器/云账号、数据库、第三方服务账号(短信、支付、地图、统计)一律以甲方实名注册,乙方仅有约定范围内的操作权限,项目结束后收回。同时写明数据可完整导出及导出格式,以及项目结束后乙方移交全部账号与数据、删除本地副本的时限。
上线之后:保密、人员与责任期
保密、数据安全与人员更换:约定保密义务范围与期限、核心人员名单与更换需提前告知、数据安全责任。外包团队人员流动是常态,"关键岗位更换需提前通知并完成交接"能显著降低项目风险。
缺陷责任期与运维 SLA:用可考核的表述,例如"P0 级故障 2 小时内响应、24 小时内恢复"(具体时限由双方商定),而不是"尽快处理"。超出范围的服务如何计费,也要提前写明。
签合同前,对照这 8 条自查
- 需求规格与最终交付版本一致,差异项有书面变更记录
- 源码可在干净环境按文档完成构建与部署
- 交付物清单逐项签收,无缺项
- 测试用例全部执行,P0/P1 缺陷清零
- 域名、服务器、数据库、第三方账号均以甲方实名,权限已交接
- 数据可完整导出,导出文件已验证可打开
- 第三方组件清单与授权文件齐备
- 运维手册、部署文档、接口文档已交付并做过一次交接讲解
常见误区:写了"归甲方"就够了吗?
不够。条款里写清归属只是第一步,交付形式与时间点同样要写:
- 只写"著作权归甲方"、没写源码交付形式,拿到的可能只是一个不含提交历史的压缩包,接手的人要从零理解代码;
- 只写"交付源码"、没写环境配置说明,换一台机器就构建失败,等于交付了一份跑不起来的代码;
- 只写"项目结束后交付",没写具体时限与触发条件,拖上几个月也无从追责。
建议把"归属 + 形式 + 时限"三件套一起写进合同:归谁、以什么形态交付、什么条件下多久内交付。权利写在纸上、物在手里,才叫真的交付。另外提醒一句,合同里凡是出现"另行协商""友好协商解决"的地方,尽量补上协商不成时的处理方式——没有兜底条款的协商,往往等于没有约定。
一张表:8 个条款分别解决什么问题
| 条款 | 解决的问题 | 不写的后果 |
|---|---|---|
| 范围与变更 | 什么算在范围内 | 需求无限加价 |
| 源码与著作权 | 成果归谁 | 拿不走、被锁定 |
| 交付物与验收 | 交付什么、怎么算完成 | 验收靠感觉 |
| 里程碑与付款 | 什么时候付、付多少 | 付款与成果脱钩 |
| 第三方授权 | 授权谁买、谁负责 | 法律风险与续费纠纷 |
| 数据与账号 | 控制权在谁手上 | 业务连续性受制于人 |
| 保密与人员 | 信息与人员怎么管 | 泄露与交接断档 |
| 缺陷与 SLA | 上线后怎么保障 | 出问题无人响应 |
把这张表放在合同起草的桌面上,逐行确认,比逐条通读条款更容易发现遗漏。 每一行都对应一类真实发生过的纠纷,缺哪一行,风险就留在哪一行。
软件外包的坑大多不在技术,而在合同。把这 8 条对照一遍再签字,比事后扯皮省下的时间与费用多得多。合同条款的具体表述,建议由法务确认后定稿。









