中华人民共和国最高人民法院 民 事 裁 定 书 （2020）最高法民申342号 再审申请人（一审被告、反诉原告，二审上诉人）：北斗卫星数字新媒体（北京）有限公司。 法定代表人：冯山泉。 委托诉讼代理人：李中。 被申请人（一审原告、反诉被告，二审被上诉人）：博彦科技广州有限公司。 法定代表人：马强。 委托诉讼代理人：池俊斌。 再审申请人北斗卫星数字新媒体（北京）有限公司（以下简称北斗公司）因与被申请人博彦科技广州有限公司（以下简称博彦公司）计算机软件开发合同纠纷一案，不服广东省高级人民法院（以下简称二审法院）（2018）粤民终1900号民事判决，向本院申请再审。本院依法组成合议庭进行了审查，现已审查终结。 北斗公司申请再审称，委托方北斗公司与研究开发方博彦公司于2014年9月就“KTV娱乐汇中央播控管理平台项目”签订了《技术开发合同书》（以下简称涉案合同）。博彦公司未依照合同的约定提交软件开发成果，且未完成系统测试、系统集成、发布试运行上线版本、提交技术文档等义务，构成根本违约。二审法院认定事实错误，具体理由如下：1.二审法院认定涉案合同约定的核心文档《项目需求说明书》已被博彦公司于2014年10月8日发出的电子邮件所变更错误。2.二审法院认定双方当事人于2015年7月10日签订的《项目阶段性工作完成确认函》（以下简称《确认函》）变更了部分合同义务，且该变更内容不属于涉案合同的开发范围错误。3.二审法院认定博彦公司所主张的手机APP软件已变更为微信应用软件，但在《确认函》中仍存在手机APP开发的表述，且二审法院认定博彦公司曾开发过手机APP软件，上述认定存在矛盾。4.双方技术人员往来电子邮件中工作简报与《确认函》的内容一致，涉案合同中约定的开发、测试、集成等均在进行中，二审法院认定涉案软件已经履行完毕错误。5.博彦公司未完成中央播控软件系统中各软件模块的集成工作，二审法院却认定因负责该项工作的案外人未完成任务故博彦公司不构成违约错误。6.试运行上线版必须在开发、测试、集成全部完成后才能发布，需要部署到卡拉OK店家的服务器中试运行，二审法院认定博彦公司已履行发布试运行上线版本的义务错误。7.博彦公司提交的技术文档不符合涉案合同的要求，且博彦公司提交的过期文档链接无法打开，二审法院认定博彦公司已经提出技术文档错误。此外，北斗公司向二审法院申请对博彦公司开发完成的软件进行司法鉴定，二审法院未组织鉴定错误。综上，博彦公司不能证明其已经依据涉案合同履行其主要义务，应当承担违约责任，请求法院：撤销二审判决；改判驳回博彦公司全部诉讼请求并支持北斗公司的反诉请求；本案全部诉讼费用由博彦公司负担。 博彦公司提交意见称，博彦公司与北斗公司签订涉案合同时达成了分期开发软件的共识。涉案合同仅约定了第一期软件开发的范围，博彦公司最终完成了涉案合同的全部开发范围并开发了第二期的大部分软件功能。《项目需求说明书》《项目实施集成方案》《系统操作界面设计》未能编写由双方造成，且未影响涉案合同的正常履行。博彦公司已通过电子邮件以PPT的形式对涉案合同约定软件的各项功能进行了说明，已完成《项目需求说明书》中需实现的功能。《确认函》和北斗公司于2015年4月27日发出的《会议纪要》及北斗公司在网页上对相关软件的详细介绍，足以证明博彦公司已完成涉案合同约定的软件需求分析、设计、调试、安装、部署集成等全部工作。北斗公司对博彦公司完成的软件开发工作不进行书面确认、审计、评估及验收，构成违约。请求法院驳回北斗公司的再审申请。 本院经审查认为，本案双方当事人再审审查期间的争议焦点为，二审法院认定博彦公司已履行涉案合同的主要义务是否存在错误的问题。 《中华人民共和国合同法》第六十条第一款规定：“当事人应当按照约定全面履行自己的义务。”本案中，北斗公司与博彦公司自愿签订涉案合同，该合同内容未违反法律规定的效力性强制性规定，合法有效，双方均应按照涉案合同的约定全面履行合同义务。涉案合同约定：“……本合同附加文件。附件一：北斗卫星数字新媒体KTV娱乐汇中央播控管理平台项目工作说明书V1.1为本合同不可分割的部分，如果和本合同有冲突以本合同描述为准。……《项目需求说明书》《项目实施集成方案》《系统操作界面设计》将作为本合同执行不可分割的部分。……4.若需求发生变化，变更后的需求同样需要双方签字确认，以需求变更补充文件的形式，同样作为本合同执行不可分割的部分。”二审法院认定博彦公司已按涉案合同的约定完成其主要合同义务，北斗公司再审主张二审法院认定事实存在七个方面的错误，本院逐一分析如下： （一）关于《项目需求说明书》是否已被变更的问题 2014年10月8日，博彦公司员工给北斗公司员工发送了一份主题为“答复：中央播控管理平台关键设计和项目计划评审会议纪要(20140928)”的电子邮件，该邮件的附件名称为《中央播控管理平台核心业务功能设计初稿（用户、内容、分发、数据）》。该附件内容即为博彦公司所称的系统软件架构图PPT。该PPT的大标题为“北数KTV娱乐汇平台项目中央播控管理平台功能设计”，分成“平台功能总体设计”“平台业务功能”两大部分，其中“平台业务功能”又被细分为“用户管理”等六项管理模块以及“播控界面”“系统底层服务”等功能模块。该PPT对各功能模块的设计进行了详细说明。上述文档的内容、用途与《项目需求说明书》接近，且北斗公司未提交证据证明其在收到该文档后向博彦公司要求提交《项目需求说明书》，结合《确认函》中确认博彦公司已经完成“业务需求分析”工作的事实，二审法院认定《项目需求说明书》已变更为系统软件架构图PPT并无不当。北斗公司关于二审法院认定《项目需求说明书》已被变更错误的再审理由缺乏事实依据，本院不予支持。 （二）关于《确认函》是否变更部分合同义务的问题 《确认函》中载明博彦公司已完成工作清单如下：1.“中央播控管理平台”模块的业务功能分为“云平台构架搭建及基础服务功能”“内容管理”“分发管理”“数据管理”“商家管理”“KTV网点管理”“运营管理”“财务管理”“系统管理”九项，其中，“运营管理”部分的“营运管理第1批功能”与“营运管理第2批功能”所属范围标注为“变更或二期”，除此之外“中央播控管理平台”的其他业务功能的所属范围均标注为“项目一期”。“内容管理”中的“广告管理”备注“制定开发计划中”。2.没有手机APP软件模块，而博彦公司主张用于替代该模块的微信应用模块的业务功能包括“注册/绑定、绑定包厢、手机点歌、遥控器、包厢互动、包厢服务、个人信息、手机APP下载、我的订单、私人歌库、KTV会员卡绑定、限时秒杀、最新优惠、预定KTV、在线支付”，标注的所属范围为“变更”。北斗公司与博彦公司在《确认函》上签字确认，应当视为双方当事人对涉案合同实际履行情况予以确认。从《确认函》的内容来看，中央播控管理平台“运营管理”的“营运管理第1批功能”与“营运管理第2批功能”的所述范围为“变更或二期”。根据“变更”或“二期”的通常含义，结合涉案合同“在本期开发完成之后，博彦公司可为北斗公司提供新的开发服务”、工作说明书的架构图左上角关于一、二、三期项目的注释，以及2015年4月27日《会议纪要》关于“第一期需求接近完工”的表述等事实，二审法院认定双方当事人对上述模块的开发作了变更约定并无不当。 2015年7月13日，北斗公司员工通过电子邮件将名为“平台管理系统”的开发计划发送给了博彦公司，并称若之前的方案与本方案有冲突，以本方案为准。该方案与之前系统软件架构图对“广告管理”模块的功能需求描述不一致，可以视为北斗公司通过该邮件变更了“广告管理”模块功能需求的约定。结合该邮件的内容，二审法院认定《确认函》的“制定开发计划中”可理解为双方当事人对“广告管理”模块开发予以变更亦无不当。 （三）关于手机APP软件是否变更为微信应用软件的问题 虽然《确认函》中并没有直接说明手机APP软件被微信应用软件替代，但《确认函》中的“微信应用”软件是系统软件架构图中未包含的软件，《确认函》对其所属范围描述为“变更”。微信应用软件与涉案合同附件约定的手机APP软件业务功能近似。结合博彦公司于2014年12月26日发给北斗公司员工的电子邮件以及北斗公司于2015年4月27日向博彦公司发送的《会议纪要》的内容看，北斗公司与博彦公司及案外人准备对中央播控管理平台及手机APP软件等进行内侧，可以证明博彦公司曾开发过手机APP软件；在博彦公司汇报“新功能开发”并将其作为下一阶段的工作计划时，北斗公司未提出异议。综上，二审法院认为博彦公司关于手机APP软件已变更为微信应用软件具有高度可能性并无不妥。 （四）关于博彦公司是否履行软件开发、测试义务的问题 2014年12月底，北斗公司、博彦公司以及案外人搜娱科技等就已准备对包括中央播控管理平台以及手机APP软件在内的软件进行内测；2015年4月17日，博彦公司在北斗公司主持的“北斗娱星”业务矩阵图讨论会议中，称中央播控管理平台等软件的安装部署工作已经完成，内测进展为：除数据库外，平台各大板块都进行了部分测试，下一阶段的工作包括落实平台内测；2015年6月26日与7月3日，博彦公司分别将更新的中央播控管理平台软件发送给北斗公司。《确认函》已确认博彦公司已经完成“平台功能设计、平台功能开发、平台功能测试”等基本工作。《确认函》所附的“工作完成清单”显示，中央播控管理平台软件的“云平台架构搭建及基础服务功能”与“系统管理”两项业务功能为“已完成”。剩余的业务功能中，除“广告管理”“游戏管理”“KTV会员管理”“营运管理第2批功能”“统计报表”之外，其他的基本均标注为“已实现，正在内测及优化完善”；微信应用软件除“我的订单、私人歌库，KTV会员卡绑定”与“限时秒杀、最新优惠、预定KTV、在先支付”两项之外，其他的标注为“已实现，正在内测及优化完善”。而“游戏管理”“KTV会员管理”“统计报表”三项业务功能的备注均为“业务模式尚未确定基本功能已实现，待后续业务模式确定后进行扩展及优化”。北斗公司未证明其此后将确定的业务模式告知博彦公司。博彦公司于2015年8月21日向北斗公司更新发布了包含“广告管理”模块的新版本，北斗公司亦未对该模块提出新的反馈意见。结合双方当事人对博彦公司已通过远程控制方式安装部署可执行程序、在《确认函》签署之后博彦公司在相当长的一段时间内继续进行“内测”工作并发布新的软件版本的情况下，博彦公司对于由其负责开发的两款软件，已完成除“营运管理第2批功能”“我的订单、私人歌库、KTV会员卡绑定”“限时秒杀、最新优惠、预定KTV、在先支付”业务功能模块之外的软件开发与测试工作。对于上述三项未完成的工作，“各业务功能模块阶段性工作完成清单”注明其“所属范围”为“变更或二期”或者“变更”，可视为上述三项工作已不属于博彦公司的合同义务，即“工作完成清单”所列模块属于涉案合同约定开发的模块。因此，二审法院认定博彦公司在《确认函》签署之际已履行涉案合同约定的软件开发及测试义务，并无不当。 （五）关于博彦公司是否履行系统集成义务的问题 涉案合同的附件《北斗卫星数字新媒体KTV娱乐汇中央播控管理平台工作说明书》约定，博彦公司的职责包括制定总体实施计划及方案、主导管理项目实施过程，协调案外人搜娱科技、优视按计划完成项目的设计、实施、集成和交付；作为主要施工方，协调各硬件设备、各软件系统的安装、配置、测试及整体集成工作。《确认函》确认博彦公司已完成平台集成的基本工作，但是在接下来的工作中还需“配合完成平台与店家系统的集成、打包等工作”。《确认函》所附的“工作完成清单”显示“店家MiniPC/VOD应用系统打包”业务功能已实现。因此，二审法院认定博彦公司已完成除中央播控管理平台与店家MiniPC/VOD应用系统集成之外的系统集成工作并无不当。对于中央播控管理平台与店家MiniPC/VOD应用系统集成部分的义务，二审法院已经认定博彦公司尚未履行，但是博彦公司完成该项义务需建立在店家MiniPC/VOD应用开发完毕的基础上，北斗公司未举证证明店家MiniPC/VOD应用开发完毕，博彦公司客观上无法完成系统集成工作，故二审法院认定博彦公司未完成该部分系统集成不构成违约，亦无不当。 （六）关于博彦公司是否履行试运行上线版本义务的问题 涉案合同第五部分“研究开发计划”约定“乙方应于上述项目需求说明书、项目实施集成方案、系统操作界面签字确认后3个月内完成……并发布试运行上线版本，即开始试点，同时甲方在试运行版本发布后5个工作日内签字书面上线试运行（试点）版本交付报告”。第六部分“费用、报酬及其支付方式”第二项第2点约定：“系统开发测试完毕并交付上线试运行（试点）版本后10个工作日内，甲方向乙方支付合同开发总费用的30%作为试点上线款，即1,173,000元（人民币壹佰壹拾柒万叁仟元整）。”《确认函》确认博彦公司已按要求将中央播控管理平台系统调试版本发布部署到北斗公司的平台内测环境中、店家的MiniPC/VOD系统的调试版本已部署到模拟店家测试服务器中。《会议纪要》中载明北斗公司员工于2015年4月17日的工作沟通中称“软件开发方面，第一期需求接近完工”。博彦公司于2015年7月13日向北斗公司开具了117.3万元的增值税发票，北斗公司当时未提出付款条件未成就的主张。直到博彦公司于2016年7月发出《催款函》后，北斗公司才提出此项异议。博彦公司完成调试版的部署之后，仍在继续开发与完善涉案软件的“广告管理”模块。二审法院认定虽然发布调试版不等于完成试运行上线版本的发布义务，但在2015年8月21日博彦公司对调试版欠缺的功能模块进行弥补之后，博彦公司的该项义务可视为得到履行，并无不当。 （七）关于博彦公司是否履行提出文档义务的问题 涉案合同第五部分“研究开发计划”约定“需求确认和规划架构及开发准备同时进行的，项目启动后30个工作日内完成项目需求说明书、项目实施集成方案、系统操作界面设计文档签字确认”。如前所述，博彦公司在2014年10月8日已以提交系统软件架构图PPT的方式替代完成提交项目需求说明书的义务。博彦公司至今未证明其已向北斗公司提交项目实施集成方案、系统操作界面设计文档两项文档，二审法院据此认定博彦公司未提出上述两项文档构成违约，且对一审法院关于博彦公司已经全面履行涉案合同义务的认定予以纠正，并无不当。 关于《系统架构设计说明书》《数据库设计说明书》《系统功能设计说明书》《系统集成部署配置手册》《用户操作手册》《测试报告》六项技术文档。2015年7月1日-7月3日，博彦公司向北斗公司发送了《北新娱乐星体验项目中央播控管理平台用户操作手册》；2015年7月7日，博彦公司向北斗公司发送了《北新娱乐星体验项目中央播控管理平台直播节目操作说明》；2015年11月7日，博彦公司通过百度云盘方式，向北斗公司提交了名称为“MiniPC和VOD部署文档”“点歌系统截图”“系统操作说明文档”等三份文档。其中，“系统操作说明文档”的子文档为“业务流程操作手册汇总”“业务模块功能操作手册汇总”；“MiniPC和VOD部署文档”的子文档为“MiniPC和VOD环境部署”“部署程序”“PHP程序部署说明”“python程序部署说明”等。北斗公司在收到文档之后一直未向博彦公司提交反馈意见，也未及时下载接收文档，导致文档因超过百度云的保存期限无法打开核实。同时，北斗公司未提交相反证据证明文档内容与要求不符。因此，二审法院推定博彦公司已向北斗公司提交前述六项技术文档并无不当。 此外，关于北斗公司申请对涉案的“KTV娱乐汇中央播控管理平台项目”软件进行司法鉴定的问题。在案证据能证明博彦公司通过远程控制方式为北斗公司安装部署过软件执行程序，因已超过保存期限无法打开百度云供验证。北斗公司在接收该执行程序后未及时提出异议，结合案件事实，二审法院认为本案既不具备进行该项司法鉴定的客观条件，亦不具备进行该项司法鉴定的必要性，并无不当。本院对北斗公司的司法鉴定申请不予采纳。 综上，博彦公司已完成软件开发、测试、安装部署以及发布上线试运行版本等主要合同义务，但其未按合同约定履行提出两项文档、提交软件源代码等义务，北斗公司未按合同约定的期限履行向博彦公司支付开发费用，双方当事人均存在违约行为。博彦公司未履行涉案合同部分义务不构成根本违约，二审法院根据博彦公司已经履行合同主要义务的情况，酌定北斗公司在已经预付博彦公司156.4万元开发报酬的基础上，再向博彦公司支付涉案合同约定的二期开发报酬中的110万元，免除北斗公司支付二期开发报酬7.3万元及三期开发报酬117.3万元，并无不当。北斗公司关于博彦公司未履行涉案合同主要义务、二审法院认定事实错误的再审主张缺乏事实依据，本院不予支持。 依照《中华人民共和国民事诉讼法》第二百零四条第一款、《最高人民法院关于适用的解释》第三百九十五条第二款之规定，裁定如下： 驳回北斗卫星数字新媒体（北京）有限公司的再审申请。 审判长  钱小红 审判员  李 嵘 审判员  戴怡婷 二〇二〇年七月三十日 法官助理刘海珠 书记员丁烨