中华人民共和国最高人民法院 民 事 判 决 书 （2019）最高法知民终603号 上诉人（原审原告、反诉被告）：沃航（武汉）科技股份有限公司。住所地：湖北省武汉市东湖新技术开发区东信路光谷创业街10栋（原3）1单元2层01号2188室。 法定代表人：马作伟，该公司董事长。 委托诉讼代理人：周长生，北京盈科（武汉）律师事务所律师。 委托诉讼代理人：张亚玲，北京盈科（武汉）律师事务所律师。 被上诉人（原审被告、反诉原告）：武汉威利达喷码技术有限公司。住所地：湖北省武汉市江汉区常青路67号（佳兴苑甲栋商网夹层101室）。 法定代表人：江小青，该公司总经理。 委托诉讼代理人：张建平，男，该公司职员。 委托诉讼代理人：周舒，男，该公司职员。 上诉人沃航（武汉）科技股份有限公司（以下简称沃航公司）因与被上诉人武汉威利达喷码技术有限公司（以下简称威利达公司）计算机软件开发合同纠纷一案，不服湖北省武汉市中级人民法院于2019年7月13日作出的（2019）鄂01民初796号民事判决，向本院提起上诉。本院于2019年10月21日立案后，依法组成合议庭，并于2019年11月21日公开开庭审理了本案，上诉人沃航公司的法定代表人马作伟及委托诉讼代理人周长生、张亚玲，被上诉人威利达公司的委托诉讼代理人张建平、周舒到庭参加诉讼。本案现已审理终结。 沃航公司上诉请求：1.撤销原审判决，并依法改判驳回威利达公司的反诉请求，支持沃航公司的诉讼请求；2.本案一审、二审诉讼费由威利达公司承担。事实与理由：（一）原审判决认定事实错误。1.原审法院对双方约定的开发流程、开发阶段认定事实错误。原审法院因测试阶段进行的调试工作，而认定沃航公司未完成全部功能开发，混淆了双方约定的开发阶段，将系统设计开发阶段和测试阶段混为一谈。2.原审法院对开发周期认定不清。沃航公司于2017年9月27日向威利达公司提出需要DS2431芯片信息，但威利达公司直至2017年10月25日才交付，因为延迟交付，导致沃航公司前期运用安卓系统搭建的系统不能用，需改换为LINUX系统，由此导致的工期延误责任，应由威利达公司承担。故开发周期应调整为2017年10月26日至2018年1月6日左右。3.原审法院对威利达公司知悉系统变更时间的认定错误。2017年10月20日，沃航公司告知原设计方案存在无法克服的技术障碍，在沃航公司与威利达公司沟通之后，威利达公司同意该替代方式重新开发软件，故双方已经就变更设计方案达成了一致意见。4.原审法院对沃航公司提交的阶段性工作成果认定不清。沃航公司在2018年1月5日完成了全部功能的开发。2018年1月5日至2018年1月22日期间，威利达公司未提出任何修改意见，因此应视为已全部验收通过。故2018年1月8日至2018年4月8日左右为合同约定的测试期。按照合同约定，测试期为BUG修复期，威利达公司在此期间提出的修改意见，沃航公司都已经修复完成。5.威利达公司在收到开发成果后未按约完成测试和验收，构成违约。威利达公司收到开发成果后拒不验收。2018年1月至4月期间，沃航公司与威利达公司就软件的功能、修改事宜多次沟通，但威利达公司始终未按照合同约定测试和验收并告知结果，故本案系因威利达公司的违约行为导致合同未能按约履行。6.沃航公司交付的成果和质量均符合合同约定。沃航公司在2018年1月交付的代码量有8000多行，而非不足100行，并且代码还在持续根据客户要求更新升级。同时，沃航公司将前端操作部分开发完成后，该部分的功能占整个软件功能的90%以上，绝非占比20%。此外，沃航公司已经开发的软件功能完成量也达到了90%以上。（二）原审判决适用法律错误。1.威利达公司系合同的违约方，没有合同解除权。在合同履行过程中，沃航公司不存在违约行为，威利达公司系因自身原因不想接收沃航公司的软件，故意不验收项目软件，导致合同履行迟延。其2019年1月17日提出解除合同，并不能导致合同解除。2.涉案合同有继续履行的条件和必要。双方基本上履行了合同的绝大部分内容，仅剩余小部分内容未履行，涉案合同应当继续履行。3.沃航公司不应当支付违约金。威利达公司因自身逾期验收行为单方解除合同，不仅违反合同约定，而且违背了法律规定。而沃航公司自始至终均是按照合同约定履行义务，故不应由沃航公司承担违约责任。（三）原审法院程序违法。原审法院关于沃航公司开发完成情况依据的是威利达公司庭后补充提交的说明，该证据未经质证，不能作为认定本案事实的依据。 威利达公司答辩称：原审法院认定事实清楚、适用法律正确、程序合法，请求维持原判，驳回沃航公司的上诉请求。事实与理由：（一）根据涉案合同的约定，第二期费用应当在沃航公司完成所有功能开发并经威利达公司验收合格后支付。沃航公司并未完成全部工作，违约在先。（二）根据双方的聊天记录，2018年4月沃航公司才完成GPS，严重超出了双方约定的合同期限。（三）根据喷码设备项目需求分析，DS2431应由沃航公司提供。沃航公司提交的开发完成演示截图不能证明后台部分已完成，也不能证明是在合同期限内完成的。 沃航公司向原审法院提起本诉，原审法院于2019年2月12日立案受理。沃航公司起诉请求：1.威利达公司继续履行与沃航公司签订的喷码设备项目合同，验收系统，并立即向沃航公司支付合同剩余款项5.6万元；2.威利达公司承担本案诉讼费用。事实和理由：2017年9月20日，沃航公司与威利达公司签订一份喷码设备项目合同，约定：威利达公司委托沃航公司设计、开发系统，为威利达公司喷码设备进行安装，威利达公司向沃航公司支付研发经费8万元，首期款项2.4万元在合同签订后3个工作日内支付，第二期、第三期款项各2.4万元，分别在威利达公司验收系统合格之日1日内、威利达公司测试3个月内，经由沃航公司整改威利达公司验收合格1个工作日内支付，尾款8000元于威利达公司验收上线运营6个月后支付。此外，合同还对违约责任及合同解除等事项作出具体约定。合同签订后，沃航公司安排技术人员设计、开发涉案系统软件，依约完成系统开发事宜，但威利达公司支付首期款项2.4万元后拒不履行合同后期义务，且拒付合同剩余价款5.6万元（包括第二期、第三期及尾款）。经沃航公司多次催要，威利达公司至今未付，构成违约。 威利达公司答辩称：1.根据双方约定开发项目进度表，沃航公司应在合同签订日起45个工作日内完成系统软件全部功能开发任务。但时至今日，沃航公司都未能完成开发任务，更谈不上系统软件交付和验收，履约行为严重逾期；2.沃航公司开发的涉案软件项目所依赖的操作系统与合同约定的不符。合同要求沃航公司依据ANDROID系统（安卓系统）开发涉案软件系统功能，但是，沃航公司实际开发依托的是DEBIAN9系统（LINUX操作系统的一种），与合同约定严重不符，基于不同的操作系统开发的产品与合同约定的开发产品存在本质区别；3.沃航公司提交的部分软件存在严重BUG，直接导致系统经常性的崩溃、死机，威利达公司将该种情形及时反馈给沃航公司后，沃航公司确认系统存在严重BUG，但无法改进、优化，质量问题严重；4.沃航公司开发的部分软件功能存在重大设计缺陷，根本无法投入实际产品中运行，特别是界面操作存在严重的迟滞、卡顿，对威利达公司喷码设备的工作效率影响极大，威利达公司反馈沃航公司后，沃航公司拿不出行之有效的更改方案，导致合同履行不能，威利达公司只能依据合同约定，提出解除与沃航公司签订的涉案项目合同。沃航公司本身履约行为严重违约，威利达公司有权拒绝继续履行合同。威利达公司请求驳回沃航公司全部本诉请求。 威利达公司向原审法院提出反诉，请求判令：1.解除双方签订的喷码设备项目合同；2.沃航公司返还威利达公司已付合同首款2.4万元，并承担违约金5万元；3.沃航公司承担本案反诉费用。事实和理由：2017年9月20日，双方签订了一份喷码设备项目合同，约定沃航公司为威利达公司研发设计系统，为威利达公司喷码设备进行安装，合同总金额8万元。2017年9月29日，威利达公司按照合同约定，支付首期合同款项2.4万元。但是，合同签订后，沃航公司没有在合同约定的期限内开发完整体软件系统功能，所交付的部分软件及测试用软件只占整体功能的很少一部分，且部分开发成果与合同约定技术标准及质量要求严重不符，导致合同无法继续，合同目的不能实现。沃航公司应承担解除与威利达公司之间的涉案项目合同、退还威利达公司已付合同款项、向威利达公司支付合同约定的违约金的违约责任。 沃航公司答辩称：1.沃航公司按照合同约定交付系统软件，没有逾期。2018年1月至4月，双方反复沟通系统软件开发事宜，未超过合同约定的开发期限；2.已经交付的部分系统是否达到合同约定的标准，威利达公司应提供验收报告，威利达公司没有提供验收报告就没有理由说沃航公司的交付质量没有达标；3.关于部分交付问题，合同约定款项支付为分期付款，最后一期款项交付后，沃航公司会将完整系统交付威利达公司，威利达公司主张只交付部分，是因为全部合同时间还没有届满。威利达公司对沃航公司提出的违约指控没有事实依据。沃航公司请求驳回威利达公司的全部反诉请求。 原审法院认定事实：2017年9月20日，沃航公司与威利达公司签订一份喷码设备项目合同，约定：威利达公司为合同甲方，沃航公司为合同乙方，甲方委托乙方为其喷码设备系统软件进行设计、开发、安装，开发内容包括需要开发的终端软件、通信协议、环境搭建、PC管理后台、硬件接口等项目和无需开发的APP客户端、微信公众号及无需对接的第三方接口。开发计划包括立项、项目需求分析、系统设计开发和测试、合同交付和验收等五个环节。开发时间为乙方收到甲方支付的首款2.4万元后45个工作日内完成，开发完成后再由甲方测试3个月，最终完成项目验收。如因甲方提供接口等产生延期其开发时间顺延。本项目研发经费和总报酬为8万元，首款按总款30%即2.4万元由合同签订之日起3日内支付，第二期款项2.4万元于乙方完成项目所有功能开发并经甲方验收合格之日起1个工作日内支付，第三期款项2.4万元于甲方测试3个月由乙方整改甲方验收合格之日起1个工作日内支付，此阶段最长不得超过3.5个月，尾款8000元于验收上线运营6个月后支付。甲方提出需求变更的，需以甲方签字、盖章书面需求变更单为准，需求变更累计超过合同原有工作量的，需要甲、乙两方签订补充协议对变更的内容、研发工期、相关费用进行明确约定。其他内容变更，双方协商一致后签订补充协议进行明确。合同执行过程中，甲方对乙方提供的阶段性工作成果应在乙方提交后3个工作日内及时评审和验收。验收方式采取经甲方确认盖章的项目进度表所有条目内容和项目需求分析功能为准。乙方应遵循软件开发规范工作流程，按照合同第二条约定项目计划及进度表按时完成各项工作，并按时向甲方交付，项目计划及进度表需设立不少于2个里程碑，每达一个里程碑，乙方需将里程碑源代码提交甲方，供甲方检查、测试。乙方在收到第三期价款之日起3个工作日内将项目所有程序源代码、可执行文件、程序文档以及其他相关技术文件和信息完整交付甲方。甲方为本项目安排的核心项目人员为周舒（该项目的对接人），乙方项目对接人为马作伟。对接人代表合同各方，对接方式为电子邮件，对甲、乙双方有效。验收标准以设备项目进度表所有条目内容和需求分析功能为准。BUG级别区分为严重级别和一般级别，严重级别BUG数为零，一般级别BUG数少于4个（含）。乙方向甲方发出验收申请后，甲方应在3个工作日内完成验收，验收合格后，由甲方签署验收证明。若3个工作日内，甲方未完成验收，同时在此时间段内未提出任何修改意见，则视为甲方无任何异议。甲、乙两方应全面履行合同，若一方违约，导致合同目的不能实现的，守约方有权解除合同，并要求违约方按照合同总价款10%支付违约金。如上述违约金不足以弥补守约方损失的，有关违约责任在本合同的其他条款另有约定的从其约定。项目需求分析（附件一）、项目进度表（附件二）、项目开发解决方案（附件三）、项目预备选型方案（附件四）为合同附件，系合同有效组成部分。该合同已由甲、乙两方授权代表签字并加盖各自印章。其中，附件一为需求分析，主要内容：涉案系统软件搭建包括设备端交互软件和后台管理软件系统。其中，设备端软件主要工作包括：前端操作、警报系统、外围设备、操作提示和底层驱动（与FPGA通信、ANDROID搭建、高清触摸屏控制、DS2431驱动等）五个部分。后台管理软件包括：权限管理、设备管理、设备日志、系统升级四个部分。 2017年9月29日，威利达公司按约向沃航公司支付首期合同款项2.4万元。同年10月20日，沃航公司通过电邮，要求威利达公司将其墨盒存储芯片资料发送沃航公司。上述资料发送后，沃航公司发现GOOGLE官方推出的ANDROIDTHINGS系统没有给出1-WIRE驱动，告知威利达公司其开发系统可能会改用RASPBIAN系统。威利达公司对此并不了解，询问沃航公司有无其它备选方案。 2018年1月5日，沃航公司将GIT仓地址、账号、密码发送威利达公司。同年1月7日，沃航公司询问树莓派3.3v（控制板）是否悬空。威利达公司回复树莓派没有连接。同年2月26日，沃航公司联系威利达公司搭建运行环境，威利达公司同意。同年2月28日，沃航公司向威利达公司发送腾讯云COS服务器控制台地址，要求威利达公司开通远程云存储功能，并首先创建一个BUCKET进行实名认证。同年3月2日，威利达公司测试发现，沃航公司开发用操作系统并非合同约定的ANDROID系统，而是DEBIAN9系统（LINUX操作系统的一种）。同年3月6日，威利达公司接入GIT仓代码系统，发现沃航公司开发的系统编辑功能只有ASCⅡ字符正常，若选用其他字体则存在BUG。同年4月11日，威利达公司再次测试发现，沃航公司编辑软件部分存在严重BUG等问题。沃航公司回复该系统软件存在严重的BUG问题属实。此后，威利达公司经测试，还发现编辑软件编辑文本确定后稍微拖动就直接卡死。沃航公司接到上述问题反映后修复了文件无法编辑问题，但卡顿问题无法找到优化处理办法，并称“优化多少也不确定”。同年4月20日，双方中止合同履行方面的信息沟通，该合同处于实际中止履行状态。 2019年1月16日，沃航公司向威利达公司书面发函称，沃航公司已于2018年4月完成全部功能开发任务，曾多次申请威利达公司验收。但是，威利达公司并未按照合同约定进行验收，也未支付合同剩余价款4.6万元，未向沃航公司说明理由。沃航公司要求威利达公司收到函件后五个工作日内给沃航公司书面回复，并声明停止书面及电子邮件以外的履约沟通。 2019年1月17日，威利达公司书面致函沃航公司，并称：双方签订前述2017年喷码项目合同后，长期以来，威利达公司并没有收到沃航公司正式验收申请，沃航公司严重延期违约，也未向威利达公司说明理由。威利达公司提出：1.终止合同；2.退回已付款项；3.按照合同要求赔偿延期违约金，并要求沃航公司书面回复。2019年1月30日，沃航公司向原审法院提起本案诉讼。 原审法院认为： （一）关于涉案项目合同性质及效力的认定 根据双方签署的喷码设备项目合同约定内容，沃航公司受威利达公司委托，为其喷码设备研发配套软件，商定喷码设备需求分析、解决方案、开发进度表及选型等附件内容，并由双方签署。这些附件明确作为项目合同附件。该协议及其附件内容具有喷码设备软件系统技术开发的法律特征，应认定为软件技术开发合同。该协议及附件已经双方签字、盖章，代表双方真实意思表示，协议条款内容不违反我国法律、法规的规定。故协议及其附件合法、有效，受法律保护。 （二）关于涉案项目合同履行违约行为的认定 1.对沃航公司违约责任的分析与认定。首先，沃航公司逾期履行软件系统功能的开发义务，构成逾期违约。合同约定的交付期限为首款支付后45个工作日内。本案证据显示，威利达公司首款支付时间为2017年9月29日，按照双方拟定的工作进度表，沃航公司交付系统软件时间应在同年12月10日左右。涉案合同履行期间，双方为其系统软件开发的操作系统、字体识别、控制板连接、树莓派设计等功能项目进行多次协商，对部分项目作过相应的设计更改，导致开发时间超过合同及开发进度表中指定的项目履约期限。双方对接人员微信聊天记录显示，迟至2018年4月20日，沃航公司还在对环境搭建、系统崩溃、字体识别、软件系统BUG、严重BUG消除等项目内容进行调整、修改，表明沃航公司未在合同约定期限内完成系统软件功能开发，与合同约定开发进度明显滞后。即使扣除设计方案调整、变更等因素，沃航公司也未在合理期限内完成涉案系统软件全部功能开发义务，且也无证据证明沃航公司诉称的项目变更设计履行了合同约定的书面提出的变更确认的事实。故威利达公司答辩及反诉指控沃航公司履行系统开发义务明显逾期违约成立。其次，沃航公司不能按照合同约定交付合同约定开发成果，构成不能交付违约。根据涉案项目开发合同附件所列“喷码设备解决方案”第一条约定，涉案系统软件架构为后台管理系统、服务器、树莓派、FPGA、相关设备等五个部分；同时，根据开发协议第一条约定，沃航公司应该完成的开发内容包括终端软件、通信协议、环境搭建、PC管理后台、硬件接口等五个部分。但在合同实际履行中，沃航公司仅完成设备端交互软件第5部分的底层驱动项目中的FPGA接口函数功能部分，并交付该部分的源代码。但该部分完工部分在函数接口中所占比例很小，实际代码量不足100行，而该部分的主要功能部分还需威利达公司自行编写。沃航公司完成设备端的前端操作部分开发任务后，交由威利达公司测试，该部分内容主要包括信息编辑、参数设置等功能，整个占比20%。威利达公司经测试，发现该部分存在严重BUG，又难以优化、修改；且该部分项目只能用于测试，沃航公司并未履行功能软件源代码的交付义务。对于电脑端后台管理部分，沃航公司完成了设备基本信息记录功能，该部分在该项功能中占比5%，实际完成量不足50%，该部分的其他功能项目，如设备动态记录、设备查询等均未完成，也未交付测试。涉案项目合同第二条关于合同交付和验收条款约定，系统开发完成，进行全系统稳定性测试、BUG测试及修改，最终达到系统验收条件。合同第四条款项进度支付第二项约定，自乙方在完成项目所有功能开发并经甲方验收合格之日起1个工作日内支付第二期合同款项2.4万元。上述合同约定项目交付条件是整体系统软件功能全部开发完成，并具备交验条件。合同实际履行过程中，沃航公司已经开发的软件功能仅涉及终端设备端的底层驱动部分、前端操作部分、后台管理系统的设备基本信息记录部分的部分功能开发，而该部分功能的其他部分功能及前述五项内容以外的其他功能部分均无开发、交付记录或测试记录，已完项目的完工量不到合同约定内容的50%，与合同约定的完工量及整体功能交验条件明显不符。特别是迟至2018年4月底双方中断履约联络之日，并无证据证明沃航公司已经完成整体功能开发任务，沃航公司函告威利达公司至2018年4月已全部完成开发内容与事实不符。威利达公司抗辩及反诉理由成立。据此，可以认定沃航公司履行合同标的物的交付义务的行为构成不能交付的违约。 2.对威利达公司违约责任的分析与认定。威利达公司作为项目合同开发款项支付的义务人，其履约行为并不违约。根据项目开发合同开发款项支付条款的约定，涉案系统软件开发项目总价款为8万元，分四期支付。其中，首款应于协议签订后3个工作日内支付。协议签订后，威利达公司向沃航公司支付首款2.4万元，该款沃航公司也已收妥，双方协议如约生效。因此，威利达公司履行合同约定的首款支付义务符合合同约定，威利达公司行为并不构成违约。对于沃航公司指控威利达公司未按期支付第二期、第三期及合同尾款构成违约的问题，原审法院审查认为，根据前述认定，沃航公司并未按期履行合同约定的整体项目软件功能的开发义务，且履约部分不能达到合同约定的交验条件，其履行标的物交付的在先义务行为构成违约，故无权要求威利达公司履行第二期合同款项及经测试、修改合格后的第三期、尾款等在后义务履行。威利达公司拒付该部分合同款项符合合同的约定，其付款行为并不违约。沃航公司对威利达公司的该项指控无法律依据。 （三）合同违约责任的承担 1.关于合同解除问题。根据前述认定，沃航公司不能履行交付义务，构成违约，且由此导致威利达公司合同目的落空，继续履行已无必要。故威利达公司于2019年1月17日正式向沃航公司提出解除涉案项目合同的请求符合法律规定。沃航公司提请判令涉案合同继续履行及威利达公司履行验收义务的本诉请求，与本案事实不符，且无法律依据。 2.关于已付合同款项返还问题。本案中，涉案项目合同签署后，威利达公司按照合同约定，向沃航公司支付合同首款2.4万元。沃航公司未按约履约合同标的物的交付义务，导致合同不能继续履行，其应将所收威利达公司该合同首款予以退还。沃航公司作为合同违约方，除退还已收合同首款外，还应向威利达公司承担违约责任。对于违约金数额，本案违约情形应适用涉案合同第十三条第（三）项的约定，由沃航公司按照合同约定的总价款的10%向威利达公司支付违约金。沃航公司违约为根本性违约，由此导致威利达公司不能通过合同获得涉案系统软件功能，威利达公司因违约造成的损失数额等同于合同约定的对价数额，且约定的违约金数额在《中华人民共和国合同法》（以下简称合同法）规定的范围之内，该项约定为有效约定。沃航公司应按合同总价款8万元的10%向威利达公司支付违约金。 综上，双方因喷码设备系统开发形成软件技术开发合同法律关系。沃航公司作为合同项目的开发者，未按合同约定履行项目开发及交付义务，构成不能交付的违约，为合同的违约方。威利达公司作为合同付款人，其付款义务履行行为符合合同约定，为合同守约方。沃航公司作为合同违约方，无权要求威利达公司履行在后合同义务，且沃航公司违约为根本性违约，威利达公司提请解除双方的合同符合法律的规定，沃航公司要求威利达公司继续履行验收义务及合同付款义务无法律依据。沃航公司本诉请求均不能成立。威利达公司作为合同守约方，合同中止履行后，向沃航公司提请解除合同、返还已付款项、承担违约责任的反诉请求符合法律的规定，对其反诉请求予以支持。 原审法院判决：（一）自2019年1月18日起，沃航公司与威利达公司之间于2017年9月20日签订的喷码设备项目合同予以解除；（二）沃航公司返还威利达公司已付合同款项24000元；（三）沃航公司支付威利达公司违约金8000元；（四）驳回沃航公司的全部本诉请求；（五）驳回威利达公司的其他反诉请求。如沃航公司未履行判决指定的金钱给付义务，则按《中华人民共和国民事诉讼法》第二百五十三条的规定，向威利达公司支付未履行部分的迟延履行金。一审案件受理费1312元，反诉费1650元，均由沃航公司负担。 本案二审期间，沃航公司为了证明其主张，向本院提交了五组证据： 第一组：威利达公司迟延交付DS2431的聊天记录及邮件，用以证明威利达公司迟延交付DS2431驱动导致前期约定的安卓系统不能使用，需改换为LINUX系统。因此，双方的开发周期应当顺延至2018年1月6日左右。2017年9月27日微信聊天记录记载：马作伟：我这边可以先拿到打印用的墨盒吗？因为可以先尝试通信。周舒：你是指耗材校验用到的DS2431么。马作伟：嗯啊。周舒：可以啊，只用拿芯片就可以了。随后，威利达公司于2017年10月25日向沃航公司邮件发送了该驱动。 第二组：沃航公司已完成所有功能开发的演示截图及光盘，用以证明沃航公司已按时完成了喷码系统的所有功能开发。该证据显示：第一阶段开发阶段，完成了设备端交互软件（前端操作、警报系统、外围设备、操作提示、底层驱动）和后台管理系统（权限管理、设备管理、设备日志、系统升级）。第二阶段测试阶段，完成对全系统稳定性测试、BUG测试及修改，最终达到系统验收条件。 第三组：沃航公司完成全部功能开发进入测试阶段的聊天记录，用以证明2018年1月3日，沃航公司已完成全部功能开发去威利达公司安装设备并提交发票；2018年1月5日，沃航公司已将GIT仓地址、账号、密码发送给威利达公司，代码共计8000多行。 第四组：威利达公司同意沃航公司变更软件开发系统的微信记录，用以证明沃航公司已于2017年10月20日通知威利达公司安卓系统不能使用，威利达公司直接同意变更。2017年10月20日微信聊天记录记载：马作伟：说明一下，GOOGLE官方推出的ANDROIDTHINGS没有给出1-WIRE驱动，我方可能要改用RASPBIAN系统做开发了。周舒：嗯，这个我也不可解，结果能出来就行。马作伟：还是要说一下，毕竟一开始说是要用ANDROID，但是目前GOOGLE确实没有提供ANDROID的1-WIRE驱动接口……马作伟：为什么你们的那个墨盒要用1-WIRE驱动的芯片，如果不用这个，我就可以使用ANDROID了，到那个时候，搜狗输入法、中文支持都是自带的了。周舒：那像这种做耗材加密，还有没有别的方案可选。 第五组：测试期沃航公司修复反馈BUG的微信记录，用以证明沃航公司已按威利达公司的要求对BUG进行修复。威利达公司不配合测试，构成违约。2018年1月23日微信聊天记录记载：周舒：是的，那不然还有更好的办法么？没做出来的字体加进去也没用啊。马作伟：办法有几个，就看你用不用。1.使用系统自带的矢量图片生成字库。2.使用GB2312中有的字库。反正都是所见即所得，如果用户看着不喜欢，可以更换。周舒：这样也可以，保证我给的几种字体是正常的情况下，其他的字体用你之前做的那种方式。2018年4月13日聊天记录。马作伟：对了，我这边做了一些优化，目前可以看到班时码的预览效果了。GPS完成了，你这边可以从网上重新下载然后导入一下新的C代码。 威利达公司质证意见：对第一组证据的真实性认可，但不认可证明目的。根据喷码设备项目需求分析，DS2431驱动应由沃航公司提供。关于第二组证据，由于沃航公司交付的工作成果不完整，且完成时间无法证明，故拒绝对第二组证据的光盘进行质证。对第三组证据的真实性认可，但不认可证明目的。开发票不代表已经完成了全部合同内容，且8000多行的代码威利达公司没有收到。对第四组证据的真实性认可，但不认可证明目的，因为涉案合同约定开发用安卓系统，第五条约定变更合同需要书面变更。对第五组证据的真实性认可，但不认可证明目的，因为沃航公司已经逾期完成工作任务。 本院认证意见：因威利达公司对第一组、第三组、第四组、第五组证据的真实性予以认可，且相关聊天记录基本反映了案件事实，故本院对上诉证据的真实性予以确认，其关联性将结合案件的争议焦点予以阐述。经本院审查，第二组证据基本反映了涉案软件的开发情况，虽然威利达公司否认该工作成果并且拒绝质证，但是未提交相反证据，故本院对该证据的真实性予以确认。 本院另查明，喷码设备产品说明系威利达公司应原审法院要求于原审庭审后提交，该证据未送达沃航公司，亦未经沃航公司质证。 本院认为，本案的争议焦点问题是：沃航公司主张的合同付款条件是否成就；涉案合同是否应当继续履行；原审法院是否程序违法。 （一）关于沃航公司主张的合同付款条件是否成就的问题 沃航公司主张，其已经依照合同约定完成了所有功能开发和修复，威利达公司在收到开发成果后未按约完成测试和验收工作，构成违约，故威利达公司应当向其支付剩余的第二、第三期及尾款费用。对此，本院分析如下： 首先，双方以实际行为一致同意变更设计方案。虽然喷码设备项目合同约定由沃航公司依据安卓系统开发涉案软件系统功能，但是根据双方2017年10月20日的微信聊天记录，由于GOOGLE官方推出的ANDROIDTHINGS没有给出1-WIRE驱动，沃航公司向威利达公司提出要更换系统，对此威利达公司表示只要结果能出来就行。故可以认定，虽然双方原本约定了开发系统，但由于系统兼容的原因，双方以实际行为做出了变更。而且，从2018年1月以后双方的沟通协调主要围绕软件功能、字体、属性等，也可以从侧面证明威利达公司对于更换系统一事是明知而且同意的。因此，原审法院关于威利达公司2018年3月才发现沃航公司开发的操作系统不符合合同约定的事实认定错误，本院予以纠正。 其次，双方以自身行为变更了合同履行期限。2017年9月27日，沃航公司向威利达公司提出需要DS2431芯片信息，威利达公司表示同意，但其直至2017年10月25日才通过邮件交付，这一迟延交付行为不可避免会对开发进度产生影响。而且，双方在2018年1月3日前，一直处于密切沟通协调，并未因沃航公司未在合同约定时间内完成开发工作而终止合同的履行。以上事实可以说明，双方以自己的行为，变更了合同履行的期限。沃航公司关于原审法院对开发周期认定不清的上诉理由于法有据，本院予以支持。关于威利达公司主张需求分析由沃航公司制作，DS2431驱动应由沃航公司提供，沃航公司已构成逾期的问题，本院认为，需求分析对于相关需求细节由谁提供并无约定，涉案合同属于计算机软件开发合同，而非买卖合同，沃航公司系接受威利达公司的委托为其喷码设备系统软件进行设计、开发和安装。该软件实质上是为威利达公司的产品量身定制的软件，由其提供相关需求细节既可以节省合同开发时间，也可以避免开发的软件不符合该公司产品需求，特别是在该公司项目对接人已明确同意提供的情况下，更应尽到及时提供和诚实守信等勤勉义务，以实现双方合同目的。故虽然沃航公司超出合同约定时间完成开发工作，但属于合同履行过程中双方一致同意的变更。而且，如前所述，由于操作系统的更换，给予沃航公司增加合理的调整时间也符合常理。故对威利达公司的相关抗辩，本院不予支持。 再次，第二期开发费用的支付条件已经成就。根据双方的聊天记录，2017年12月22日，双方已经在探讨对接的工作及发票的开取问题。2018年1月5日，沃航公司将GIT仓地址、账号、密码发送给威利达公司，并告知其可以通过该地址下载C语言的代码。再结合沃航公司二审提交的第二组证据以及2018年1月5日后双方的聊天记录主要围绕软件的测试、整改和优化，可以证明沃航公司已经初步完成了第二期的功能开发任务。虽然威利达公司对此予以否认，但未提交相反证据，故对威利达公司的抗辩，本院不予支持。而威利达公司关于沃航公司GPS功能的开发直至2018年4月才完成的主张，本院认为，虽然GPS功能未在合同约定的第二期阶段内开发完成，但如前所述，威利达公司事实上已经以自身行为接受了沃航公司的软件，并进入到第三期的修复测试阶段。因此，沃航公司已经完成了第二期开发任务。由于威利达公司未在3个工作日内提出修改意见，则应视为威利达公司对于沃航公司完成的第二期工作成果没有异议。根据合同的约定，威利达公司应当及时向沃航公司支付第二期开发费用2.4万元，威利达公司未依约向沃航公司支付该笔款项，构成违约。沃航公司的相关上诉请求成立，本院予以支持。原审法院关于迟至2018年4月，沃航公司才完成系统软件功能开发的认定与事实不符，本院予以纠正。 最后，第三期整改费用的支付条件未完全成就。2018年1月至4月，威利达公司针对交付的喷码设备系统提出了各种整改和优化意见，对此，沃航公司予以及时回复，并针对修改意见对涉案软件进行了完善和优化。在此期间，双方团队均在密切沟通，沃航公司并未消极履行合同义务。即使威利达公司测试后发现涉案软件部分存在严重BUG问题，沃航公司亦从未予以否认，始终积极修复和完善。但沃航公司提交的现有证据无法证明其已就字体、卡顿等问题全部修复完毕，且其在修复完成后亦未依照合同约定正式向威利达公司提出书面验收申请，故本院认为，沃航公司虽然积极履行了合同第三期整改测试工作，但履行行为存在瑕疵。与此同时，在第三期整改阶段，威利达公司也存在严重的违约行为，表现在双方已就涉案软件的整改和优化反复沟通数月之后，2018年4月威利达公司突然中止与沃航公司沟通，并且未向沃航公司说明理由，由此直接导致双方合同的履行陷入停止状态，也导致本院已无法继续查清涉案软件是否已全部修复完毕，故威利达公司违反了合同法严格履行义务及诚实信用原则，应对涉案项目的停止履行负主要责任。综上，本院对沃航公司要求威利达公司支付第三期费用的上诉请求予以部分支持。综合考虑双方的违约行为及涉案合同的性质等因素，本院酌情确定威利达公司向沃航公司支付第三期合同费用2万元。依照合同约定，沃航公司自收到前述第三期价款后亦应在3个工作日内将项目所有程序源代码、可执行文件、程序文档以及其他相关技术文件和信息完整交付威利达公司。原审法院对此未加以考虑和处理，有所不当，本院予以纠正。 由于第三期合同费用的支付条件未完全成就，沃航公司关于要求威利达公司支付第四期费用的主张，本院不予支持。 （二）关于涉案合同是否应当继续履行的问题 合同法第九十四条规定：“有下列情形之一的，当事人可以解除合同：（一）因不可抗力致使不能实现合同目的；（二）在履行期限届满之前，当事人一方明确表示或者以自己的行为表明不履行主要债务；（三）当事人一方迟延履行主要债务，经催告后在合理期限内仍未履行；（四）当事人一方迟延履行债务或者有其他违约行为致使不能实现合同目的；（五）法律规定的其他情形。”如前所述，本案涉案项目不能继续履行的主要原因是威利达公司未依约向沃航公司支付合同款项并且停止合同履行构成违约，故其于2019年1月17日向沃航公司提出解除涉案合同的请求于法无据，不能导致合同的解除。其应依照合同法第一百零七条的规定，承担继续履行的违约责任。沃航公司作为涉案软件的开发方，已经基本完成了涉案软件的开发和整改工作，可以依约交付，本院对其继续履行合同的上诉请求，予以支持。 （三）关于原审法院是否程序违法的问题 《中华人民共和国民事诉讼法》第六十三条规定：“证据包括：（一）当事人的陈述；（二）书证；（三）物证；（四）视听资料；（五）电子数据；（六）证人证言；（七）鉴定意见；（八）勘验笔录。证据必须查证属实，才能作为认定事实的根据。”沃航公司主张原审法院认定其未全部完成整体功能开发依据的是威利达公司庭后补充提交的喷码设备产品说明，该证据未经质证，不能作为认定本案事实的依据，程序违法。本院认为，威利达公司于原审提交的喷码设备产品说明，是其依据原审法院要求，于庭后提交的针对涉案项目所作的说明，属于当事人的陈述。对于该证据，必须按照法定程序，进行全面地、客观地审查，只有查证属实，才能作为认定事实的根据。经过本院二审查明，威利达公司提交的喷码设备产品说明未经沃航公司质证，且与事实不符，不能作为认定事实的根据，原审法院程序违法，本院予以纠正。 综上，沃航公司的上诉请求部分成立，依照《中华人民共和国合同法》第八条、第四十四条第一款、第六十条第一款、第九十四条、第一百零七条，《中华人民共和国民事诉讼法》第六十三条、第一百七十条第一款第二项，判决如下： 一、撤销湖北省武汉市中级人民法院（2019）鄂01民初796号民事判决； 二、武汉威利达喷码技术有限公司于本判决生效之日起十日内向沃航（武汉）科技股份有限公司支付合同款项44000元； 三、沃航（武汉）科技股份有限公司于本判决生效之日起十日内向武汉威利达喷码技术有限公司交付涉案项目所有程序源代码、可执行文件、程序文档以及其他相关技术文件和信息； 四、驳回沃航（武汉）科技股份有限公司的其他诉讼请求； 五、驳回武汉威利达喷码技术有限公司的全部反诉请求。 如果未按本判决指定的期间履行给付金钱义务，应当依照《中华人民共和国民事诉讼法》第二百五十三条规定，加倍支付迟延履行期间的债务利息。 一审本诉案件受理费1200元，由武汉威利达喷码技术有限公司负担900元，由沃航（武汉）科技股份有限公司负担300元。一审反诉案件受理费1650元，由武汉威利达喷码技术有限公司负担。二审案件受理费1200元，由武汉威利达喷码技术有限公司负担900元，由沃航（武汉）科技股份有限公司负担300元。 本判决为终审判决。 审判长 朱 理 审判员 原晓爽 审判员 傅 蕾 二〇二〇年一月二十日 法官助理宾岳成 书记员谢思琳 裁判要点                            案  号                       (2019)最高法知民终603号                               案  由                       计算机软件开发合同纠纷                               合 议 庭                       审判长：朱理             审判员：原晓爽、傅蕾                                                     法官助理：宾岳成                       书记员：谢思琳                               裁判日期                       2020年1月20日                               关 键 词                       技术开发；合同履行；价款支付；合同解除                               当 事 人                       上诉人（原审原告、反诉被告）：沃航（武汉）科技股份有限公司；             被上诉人（原审被告、反诉原告）：武汉威利达喷码技术有限公司。                               裁判结果                       判决：一、撤销湖北省武汉市中级人民法院（2019）鄂01民初796号民事判决；二、武汉威利达喷码技术有限公司于本判决生效之日起十日内向沃航（武汉）科技股份有限公司支付合同款项44000元；三、沃航（武汉）科技股份有限公司于本判决生效之日起十日内向武汉威利达喷码技术有限公司交付涉案项目所有程序源代码、可执行文件、程序文档以及其他相关技术文件和信息；四、驳回沃航（武汉）科技股份有限公司的其他诉讼请求；五、驳回武汉威利达喷码技术有限公司的全部反诉请求。             原判决主文：（一）自2019年1月18日起，沃航（武汉）科技股份有限公司与武汉威利达喷码技术有限公司之间于2017年9月20日签订的喷码设备项目合同予以解除；（二）沃航（武汉）科技股份有限公司返还武汉威利达喷码技术有限公司已付合同款项24000元；（三）沃航（武汉）科技股份有限公司支付武汉威利达喷码技术有限公司违约金8000元；（四）驳回沃航（武汉）科技股份有限公司的全部本诉请求；（五）驳回武汉威利达喷码技术有限公司的其他反诉请求。                               涉案法条                       《中华人民共和国合同法》第八条、第四十四条第一款、第六十条第一款、第九十四条、第一百零七条；             《中华人民共和国民事诉讼法》第六十三条、第一百七十条第一款第二项。                               法律问题                       1. 合同履行的勤勉义务             2. 合同解除的条件             3. 证据的审查和认定                               裁判观点                       1.涉案合同属于计算机软件开发合同，而非买卖合同，沃航公司系接受威利达公司的委托为其喷码设备系统软件进行设计、开发和安装。该软件实质上是为威利达公司的产品量身定制的软件，由其提供相关需求细节既可以节省合同开发时间，也可以避免开发的软件不符合该公司产品需求，特别是在该公司项目对接人已明确同意提供的情况下，更应尽到及时提供和诚实守信等勤勉义务，以实现双方合同目的。             2.涉案项目不能继续履行的主要原因是威利达公司未依约向沃航公司支付合同款项并且停止合同履行构成违约，故其于2019年1月17日向沃航公司提出解除涉案合同的请求于法无据，不能导致合同的解除。其应依照合同法第一百零七条的规定，承担继续履行的违约责任。             3.对于当事人提交的证据，必须按照法定程序，进行全面地、客观地审查，只有查证属实，才能作为认定事实的根据。                               注：本摘要并非判决书之组成部分，不具有法律效力。