供应商称“源代码已交付”:企业验收怎样核对版本、构建结果与合同范围
这是一篇百家号稿件。为便于检索、归档与阅读,收录于“公开发声”。
供应商称“源代码已交付”时,企业不能只收一个压缩包。应先以合同成果和交付范围为基准,再核对源码版本与提交记录,并以约定的构建或运行验收事实确认本次交付能否对应约定成果。
供应商交了压缩包,不等于已完成源代码交付验收
供应商称“源代码已交付”时,企业不应只确认收到一个压缩包。更可核对的结论是:先看合同约定交付的到底是哪些成果、对应哪些版本和资料;再看收到的源码能否对应版本与提交记录;最后才按合同约定核验构建结果或运行事实。合同履行、代码权属和侵权主张是不同问题,不能由同一份材料一并替代。
《中华人民共和国民法典》关于技术合同的规则提示,技术合同通常应明确标的内容、范围和要求、履行方式、技术资料保密、成果归属和收益分配、验收标准及术语解释。对软件项目而言,这些约定决定“交付了什么”的起点;没有把约定范围落到具体对象,后续即使拿到源码,也难以判断它是不是本次应交付的成果。
判断一:先把合同成果范围对应到交付对象,别把“源码”当成唯一答案
验收先应定位合同及补充文件中写明的成果:是全部约定源码,还是某个模块、接口、部署资料、设计文档,抑或仅限可运行的软件制品。还要核对约定的版本、交付批次、交付方式和验收标准。合同中如果使用了“完整源码”“可部署版本”“项目成果”等术语,也应回看是否已有定义及其适用范围。
这一步改变的不是文件数量,而是验收对象。若合同约定的交付范围包含特定模块和部署资料,供应商只给出一份未说明范围的压缩包,就仍存在“包内内容与合同成果是否对应”的事实缺口;反之,合同只约定交付某一版本的软件制品,也不能当然推定应同时交付全部研发历史。
判断二:源码版本要能说明与提交记录的对应关系,不能只看文件创建日期
确认范围后,应要求供应商说明本次交付源码对应的版本标识、提交记录或其他能够回溯版本演进的材料,并把它们与合同约定的里程碑、变更确认和交付批次核对。重点不是追求某种固定技术格式,而是确认“这份代码为何能被认定为约定版本”的事实链是否闭合。
仅看压缩包中的文件时间、目录名称或邮件附件名,通常不能单独解决版本对应问题。付款记录可以说明交易中曾发生付款;软件著作权登记可以反映登记事项;它们都不能替代对本次交付源码、版本和提交记录的分别核对。涉及开发主体时,还应查明实际开发者、受托开发关系及授权链,避免把项目名称相同误当作权利来源已经一致。
判断三:构建成功或运行通过,要回到合同标准和现场事实,而不是预设源码必然可复现
若合同将可构建、可部署或特定功能运行作为验收要求,企业应保留本次环境、依赖资料、操作步骤、构建输出或运行结果,以及双方确认记录,使验收结果能回到约定的版本和交付范围。若合同约定的是功能或服务验收,则应根据约定核对对应的使用、测试或交付事实。
这里要保留一个关键边界:没有合同约定可复现构建,或者缺少构建所需环境、依赖资料和操作条件时,不能因为源码未能构建就直接认定“未交付源码”;同样,也不能因为能够运行就直接认定代码权属或侵权与否已经确定。知产民事诉讼中的电子证据、证据保全等规则可支持对相关材料进行留存和审查,但不能据此预先判断具体案件的侵权或成果归属。
验收单应写成“合同范围—版本材料—验收事实”的对应记录
企业下一步可为本次交付形成一份对应记录:合同及变更文件中约定的成果、范围和验收标准;实际收到的源码、资料和制品;每项对应的版本与提交记录;构建、部署、测试或使用的事实及双方确认;以及开发主体、授权或受托开发材料。对缺失的版本说明、构建条件或授权材料,应明确写为待补事实,而不要用“已经交付”四个字替代验收结论。
吕箐翎律师提示:软件交付验收的核心不是证明收到了多少文件,而是让合同成果范围、特定版本的源码材料和实际验收结果能够相互对应。